日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
資深碼農(nóng)應(yīng)采納的九種好習(xí)慣

常言道:臺(tái)上一分鐘,臺(tái)下十年功。如果您想在實(shí)際的軟件項(xiàng)目中,能夠得心應(yīng)手地開(kāi)發(fā)出令客戶(hù)滿(mǎn)意、且愿意為之買(mǎi)單的應(yīng)用產(chǎn)品,那么您就有必要通過(guò)刻意練習(xí)和反復(fù)實(shí)踐,來(lái)養(yǎng)成一些良好的編程習(xí)慣。據(jù)此,您在“實(shí)戰(zhàn)”中,只需投入較少的精力,便可完成簡(jiǎn)潔易讀,且易于維護(hù)的程序代碼。下面,我們來(lái)一起討論九種值得資深碼農(nóng)采用的編程習(xí)慣吧!

目前成都創(chuàng)新互聯(lián)已為數(shù)千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、墊江網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

1.編寫(xiě)友好的代碼

請(qǐng)永遠(yuǎn)記住:您不僅僅是在為機(jī)器編寫(xiě)代碼,而且也是在為自己將來(lái)的“讀者”編寫(xiě)代碼。因此,編寫(xiě)出具有可讀性的代碼是尤為重要的。有人曾經(jīng)把編程比喻成撰寫(xiě)出一首好詩(shī),我們除了要在格式上應(yīng)保持一致,還應(yīng)當(dāng)讓代碼段在縮進(jìn),以及命名規(guī)則等方面保持井井有條。以下是一些方便您能夠快速領(lǐng)會(huì)的小技巧:

遵循一致性的命名規(guī)則(naming conventions)

如果您使用下劃線(xiàn)作為首字母來(lái)命名各種私有變量的話(huà),那么就請(qǐng)您在代碼的其余部分繼續(xù)遵循此類(lèi)命名規(guī)則。而如果您正在開(kāi)展的是團(tuán)隊(duì)協(xié)作式編程活動(dòng),則您請(qǐng)?jiān)谧屓魏稳私佑|此類(lèi)代碼之前,事先討論好這樣的命名規(guī)則。

值得注意的是,大多數(shù)編程語(yǔ)言可能已經(jīng)具備了由其核心語(yǔ)言本身、或是相應(yīng)的社區(qū)所定義的(如:PHP-FIG,請(qǐng)參見(jiàn)-- https://www.php-fig.org/psr/psr-12/)標(biāo)準(zhǔn)化命名規(guī)則。因此,在大多數(shù)情況下,您不必自行創(chuàng)建另一套命名規(guī)則了。

您可以使用所謂的linter或代碼嗅探器(code sniffer)來(lái)協(xié)助執(zhí)行代碼的規(guī)范化與修正,以使其更符合業(yè)界的常用標(biāo)準(zhǔn)。以下是在各類(lèi)編程語(yǔ)言中常見(jiàn)的主流linter:

  • PHP:PHPCS-- https://github.com/squizlabs/PHP_CodeSniffer
  • Ruby:RuboCop-- https://docs.rubocop.org/en/stable/
  • Shell或Bash:ShellCheck-- https://www.shellcheck.net/
  • JavaScript:ESLint-- https://eslint.org/,以及JSHint-- https://jshint.com/
  • Swift:Tailor-- https://tailor.sh/,以及SwiftLint(https://github.com/realm/SwiftLint)

描述性變量/方法名稱(chēng)

無(wú)論是變量也好,還是方法也罷,它們的名稱(chēng)都應(yīng)當(dāng)能夠準(zhǔn)確地描述其代碼的用途。例如,Sort_PT()之類(lèi)不常用的縮寫(xiě)就很可能會(huì)造成混淆,人們往往不知道PT為何意。因此,為了避免歧義,我們需要將該名稱(chēng)優(yōu)化為:Sort_PostType(),這樣顯然更容易被理解。

當(dāng)然,這里也有一個(gè)例外。大多數(shù)程序員已經(jīng)對(duì)使用“ID”來(lái)代表身份標(biāo)識(shí)比較熟悉了,因此我們完全可以直接使用“ID”的縮寫(xiě)形式來(lái)定義變量。

縮進(jìn)和換行符

縮進(jìn)的神奇之處在于:您只需要使用一些簡(jiǎn)單的Tab鍵,便可以展現(xiàn)代碼的整個(gè)結(jié)構(gòu),以便后續(xù)接手人員能夠在清晰地了解其功能,并繼續(xù)進(jìn)行程序代碼的續(xù)寫(xiě)。

換行符的主要用途是:當(dāng)同一行上的2條代碼執(zhí)行的是不同的操作時(shí),那么我們就可以使用到它了。例如:為了避免復(fù)雜性,請(qǐng)最好不要將不同的CSS屬性鏈接在同一行之中。

2.思考組織結(jié)構(gòu)

除了代碼的整潔性,良好的組織結(jié)構(gòu)也有助于我們解決可讀性的相關(guān)問(wèn)題。如果我們需要頻繁地上下滾動(dòng)多次,才能找到需要修改的代碼部分的話(huà),那么就有必要通過(guò)將代碼分為不同的段與塊,以方便快速定位和按需修改。

此外,請(qǐng)不要將所有的代碼都放置在一個(gè)腳本里。雖然單個(gè)文件原則上可以包含8000行以上的代碼,但是這種“一站式”的組織方式對(duì)于撤回某些頻繁出現(xiàn)的方法名稱(chēng)來(lái)說(shuō),完全是一場(chǎng)噩夢(mèng)。畢竟,我們需要把“易于調(diào)整代碼”作為首要考慮的因素之一。

通常,我們可以借鑒的最佳實(shí)踐是:

  • 根據(jù)代碼的主要功能(例如:管理器、界面、動(dòng)畫(huà)、擴(kuò)展名等),將代碼分成不同的文件。
  • 只要有可能,請(qǐng)確保將特定的編程語(yǔ)言用于特定功能目的。例如:除非您有足夠充分的理由,否則請(qǐng)避免編寫(xiě)jQuery的動(dòng)畫(huà)效果,而采用CSS3來(lái)編寫(xiě)動(dòng)畫(huà)。而且,就算您使用了jQuery,也請(qǐng)?jiān)贑SS文件中注明此類(lèi)非常規(guī)的原因。

3.先計(jì)劃后編程

在為手頭的項(xiàng)目敲下第一個(gè)字母之前,您最好已經(jīng)想好了一定的編程思路和計(jì)劃。例如:編寫(xiě)出一個(gè)固定在頁(yè)面上的導(dǎo)航菜單縱然非常容易,但是如果用戶(hù)要求在向下滾動(dòng)頁(yè)面時(shí),菜單能夠自適應(yīng)地最小化到邊框上的話(huà),那就需要從長(zhǎng)計(jì)議了。

可見(jiàn),為了避免由于盲目動(dòng)手寫(xiě)代碼而造成的無(wú)休止的返工,甚至是“死循環(huán)”,我們需要在如下方面提前規(guī)劃:

事先準(zhǔn)備流程

與其“邊做邊想”式地既要編程又要兼顧解決問(wèn)題,不如事先設(shè)定好代碼將要解決的問(wèn)題和達(dá)到的目的,再列出實(shí)現(xiàn)的過(guò)程和方案。我們以上面提到的菜單為例,梳理一個(gè)典型的流程:

  1. 使用Bootstrap作為響應(yīng)式的框架(請(qǐng)參見(jiàn)--https://www.hongkiat.com/blog/tag/rwd/)。
  2. 創(chuàng)建導(dǎo)航菜單。
  3. 將.navbar-fixed-top添加到菜單中。
  4. 當(dāng)用戶(hù)在頁(yè)面上向下滾動(dòng)超過(guò)200px時(shí),創(chuàng)建一個(gè)jQuery腳本以調(diào)整菜單的大小。
  5. 如果用戶(hù)回滾動(dòng)到頁(yè)面頂部時(shí),再次調(diào)整菜單的大小。

答疑解惑

完成流程的梳理之后,您一定會(huì)發(fā)現(xiàn)各種潛在的問(wèn)題。例如:我們?cè)撊绾胃鶕?jù)菜單的大小,來(lái)調(diào)整網(wǎng)站的logo和菜單標(biāo)題的大小呢?是否需要調(diào)整下拉菜單的大小?是否需要?jiǎng)討B(tài)檢測(cè)而不是靜態(tài)檢測(cè)?一旦掃清了這些“雷和坑”,我們就可以擼起袖子,動(dòng)手編寫(xiě)菜單的相關(guān)代碼了。

4.編寫(xiě)可控的代碼

您一定不想逐行手動(dòng)修改數(shù)百個(gè)變量吧?我當(dāng)年不但經(jīng)歷過(guò)此類(lèi)悲催的過(guò)程,而且持續(xù)了一年。從那時(shí)起,我就發(fā)誓一定要學(xué)會(huì)了編寫(xiě)出盡少需要手動(dòng)修改的代碼。

那么我們?cè)撊绾螌?shí)現(xiàn)這個(gè)目的呢?答案是:請(qǐng)使用數(shù)組(Array,請(qǐng)參見(jiàn)--https://www.w3schools.com/js/js_arrays.asp)。數(shù)組非常適合于存儲(chǔ)多個(gè)變量,而且我們可以使用便捷的for循環(huán)、或for each的方法,來(lái)訪(fǎng)問(wèn)這些變量。

當(dāng)然,目前也有各種編程語(yǔ)言的動(dòng)態(tài)方法可以實(shí)現(xiàn)對(duì)于數(shù)據(jù)的添加、排列和檢索,其中包括:List(請(qǐng)參見(jiàn)--http://www.dotnetperls.com/list)和LINQ for C#(請(qǐng)參見(jiàn)--http://www.dotnetperls.com/linq)。因此,請(qǐng)您對(duì)各種新的功能函數(shù)、庫(kù)或插件保持密切的關(guān)注,以實(shí)現(xiàn)高效的數(shù)據(jù)管理。

此外,為避免反復(fù)修改代碼中的某些內(nèi)容,我們可以編寫(xiě)一些高度獨(dú)立的代碼。當(dāng)其他代碼段的內(nèi)容被修改或更新時(shí),這些代碼既不會(huì)受到影響,也不會(huì)破壞整個(gè)系統(tǒng)。這就是所謂的松耦合(Loose Coupling,請(qǐng)參見(jiàn)--http://social.msdn.microsoft.com/Forums/en-US/c747f40a-7091-4f59-98b1-c637814d275b/cnet-what-is-the-exact-meaning-of-loose-coupling?forum=netfxbcl)。

5.不要過(guò)度開(kāi)發(fā)

隨著技能的成熟和水平的提高,我們會(huì)逐漸接手開(kāi)發(fā)一些更為復(fù)雜的軟件產(chǎn)品,以滿(mǎn)足更廣泛的用戶(hù)需求。不過(guò)值得注意的是,我們要避免陷入另一個(gè)陷阱--過(guò)度開(kāi)發(fā)項(xiàng)目的某個(gè)完全不需要的功能。也就是說(shuō),在開(kāi)發(fā)的過(guò)程中,我們應(yīng)定期提醒自己關(guān)注項(xiàng)目的主要目標(biāo),并僅添加那些滿(mǎn)足該目標(biāo)的基本功能。例如:如果您知道集合的確切大小,就請(qǐng)使用數(shù)組類(lèi)型;如果List的功能函數(shù)能夠按需檢索數(shù)據(jù),就不要使用高級(jí)的LINQ。

套用一句富有哲理的名言:“您可以并不意味著您應(yīng)該”。也就是說(shuō),請(qǐng)不要浪費(fèi)時(shí)間去開(kāi)發(fā)那些在本軟件產(chǎn)品中幾乎用不著的插件或功能。畢竟,您不是在預(yù)研或探索創(chuàng)新階段,您需要交付的是成熟的產(chǎn)品。其中最值得您花時(shí)間去實(shí)現(xiàn)的是項(xiàng)目的主要功能和目標(biāo)。

6.學(xué)習(xí)調(diào)試

正如“有人的地方就有江湖”那樣,有代碼的地方就會(huì)有bug。為了盡量減少代碼中的缺陷,我們應(yīng)當(dāng)不斷學(xué)習(xí)和提高針對(duì)程序的調(diào)試技能,并且需要通過(guò)掌握各種既有的調(diào)試工具,來(lái)節(jié)約交付的時(shí)間并提高效率。

目前,各種瀏覽器都普遍配備了功能強(qiáng)大的開(kāi)發(fā)者工具(Developer Tools簡(jiǎn)稱(chēng)為DevTools,請(qǐng)參見(jiàn)--https://developers.google.com/web/tools/chrome-devtools)。它們通常具有錯(cuò)誤檢測(cè)、斷點(diǎn)設(shè)置、表達(dá)式跟蹤、性能檢查等便利的調(diào)試功能。

同時(shí),諸如Aptana Studio 3(請(qǐng)參見(jiàn)--https://developers.google.com/web/tools/chrome-devtools)和Xamarin Studio(請(qǐng)參見(jiàn)--https://visualstudio.microsoft.com/vs/mac/xamarin/)之類(lèi)的IDE甚至?xí)詭в袕?qiáng)大的內(nèi)置調(diào)試器,方面您隨時(shí)調(diào)用。

當(dāng)然,調(diào)試器不可能做到對(duì)您的代碼完全了解,因此我們也需要將console.log的日志類(lèi)函數(shù)放入代碼中,以確保它能夠與變量進(jìn)行良好的集成。只要您留心搜索,就能在網(wǎng)上找到針對(duì)不同編程語(yǔ)言的高級(jí)、特定的調(diào)試方法(請(qǐng)參見(jiàn)--https://developer.mozilla.org/en/docs/Debugging_JavaScript)。

7.尋找更強(qiáng)大的編輯器

俗話(huà)說(shuō):“工欲善其事,必先利其器”。好的程序編輯器不但能幫助我們提高編程的技能,還能加快項(xiàng)目完成的速度。因此,無(wú)論您在編程方面有多么的熟練,我都強(qiáng)烈建議您選擇一款具有代碼自動(dòng)完成功能的編輯器,例如:Sublime Text(請(qǐng)參見(jiàn)--https://www.sublimetext.com/3)、Visual Studio Code(請(qǐng)參見(jiàn)--https://code.visualstudio.com/)和Aptana Studio 3。

此類(lèi)工具不僅能夠幫助初學(xué)者識(shí)別和學(xué)習(xí)編程語(yǔ)言的語(yǔ)法,而且可以向?qū)I(yè)人員提供更好的代碼建議和解決方案。值得注意的是,大多數(shù)IDE僅支持某一部分語(yǔ)言代碼的自動(dòng)完成,因此您需要事先了解它們所支持的開(kāi)發(fā)語(yǔ)言種類(lèi)。

例如,我非常喜歡MonoDevelop(請(qǐng)參見(jiàn)--http://monodevelop.com/)的代碼模板功能。通過(guò)自定義的快捷鍵,我可以將自定義的代碼模板從通用的switch語(yǔ)句中輸出到成熟的管理器腳本中。該功能對(duì)于大型項(xiàng)目來(lái)說(shuō)十分實(shí)用。此外,您可能還會(huì)用到如下方面的基本功能:

  • 調(diào)試器
  • 正則表達(dá)式替換
  • 版本控制支持
  • 數(shù)據(jù)庫(kù)支持
  • 分割編輯
  • 布局定制器
  • 所見(jiàn)即所得(WYSIWYG)編輯器

8.版本控制

有時(shí)候,您會(huì)因?yàn)楫?dāng)前程序的某個(gè)嚴(yán)重錯(cuò)誤,而需要回滾早期版本的代碼。設(shè)想一下:如果該錯(cuò)誤涉及到代碼庫(kù)中的多個(gè)文件,而且這些文件是在幾天、甚至幾個(gè)月前被修改過(guò)的,我們?cè)撛趺崔k呢?想必,您已經(jīng)意識(shí)到了版本控制系統(tǒng)的重要性。

在業(yè)界常見(jiàn)的版本控制軟件中,當(dāng)屬Git(請(qǐng)參見(jiàn)--http://git-scm.com/)最為流行。它擁有大量的線(xiàn)上資源。通過(guò)Git,您可以按需保留各種修訂版本,將文件進(jìn)行“分支(branch)”以用于代碼實(shí)驗(yàn),跟蹤上一次更改過(guò)的代碼部分,并能夠按需恢復(fù)原來(lái)的版本。

9.總是學(xué)習(xí)新東西

如果您是一名資深碼農(nóng),那么您一定見(jiàn)證了在過(guò)去的10年間,許多種開(kāi)發(fā)方法和編程語(yǔ)言早已被淘汰的歷史。就算是那些從軟件開(kāi)發(fā)領(lǐng)域的頂尖公司跳槽出來(lái)的程序員,也不一定能馬上勝任新的開(kāi)發(fā)領(lǐng)域和任務(wù)。

既然程序員注定需要緊跟最新的開(kāi)發(fā)技術(shù),那么學(xué)習(xí)就成為了必要的職業(yè)生存和發(fā)展之道。我在此處所說(shuō)的學(xué)習(xí),不僅僅是單純的閱讀例程與編程練習(xí),更重要的是通過(guò)一些富有挑戰(zhàn)的實(shí)際項(xiàng)目去不斷地實(shí)踐。只有在游泳中學(xué)會(huì)游泳,您才能學(xué)得更扎實(shí),運(yùn)用得更靈活。

原標(biāo)題:10 Programming Habits Developers Should Adopt ,作者:lvaris Falcon

【譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為.com】


分享名稱(chēng):資深碼農(nóng)應(yīng)采納的九種好習(xí)慣
分享路徑:http://www.5511xx.com/article/cddiccs.html