2020-06-13
1.編寫人性化的代碼
永遠(yuǎn)記住,你不僅僅是在為機(jī)器寫代碼,也是在為你未來的自己寫代碼。因此,編寫可讀的代碼是很重要的。事實(shí)上,編程就像寫一首好詩。語氣要一致,詞語要有描述性,句子要有條理。
下面是一些編寫友好代碼的技巧。
遵循一致的命名約定
例如,如果您使用下劃線作為私有變量的第一個字母,那么您應(yīng)該在代碼的其余部分中堅持下去。
如果您正在協(xié)同工作,請在任何人接觸代碼之前討論命名約定。
然而,大多數(shù)編程語言現(xiàn)在可能已經(jīng)有了自己的標(biāo)準(zhǔn)命名約定,要么是由核心語言本身定義,要么是由社區(qū)定義(例如PHP-FIG)。所以,大多數(shù)情況下,您不必創(chuàng)建自己的命名約定。
相反,您可以使用所謂的linter或代碼嗅探器來幫助執(zhí)行和修復(fù)您的代碼,使之符合這些標(biāo)準(zhǔn)。以下是一些編程語言中常用的索引:
PHP:PHPCS
Ruby:RuboCop
Shell或Bash:ShellCheck
ESLint和JSHint
泰勒:裁縫,還有SwiftLint
描述性變量/方法名
變量和方法名應(yīng)該完美地描述代碼的功能。例如,不常見的縮寫,如Sort_PT()可能會令人困惑:PT是什么意思?如果您不能在第二次檢查時回答這個問題,請將名稱優(yōu)化為Sort_PostType()以便更好地理解。
不過有一個例外。大多數(shù)程序員已經(jīng)熟悉“ID”這個術(shù)語,所以我們總是可以用簡短的形式“ID”定義一個變量。
縮進(jìn)和換行
壓痕是神奇的!使用一些簡單的選項(xiàng)卡鍵,您可以顯示整個代碼結(jié)構(gòu)并編輯代碼,同時清楚地了解代碼的工作方式。
對于換行,當(dāng)同一行的兩個代碼執(zhí)行不同的內(nèi)容時使用它。例如,最好不要將CSS屬性鏈接在一行上——這會使事情變得復(fù)雜。
2.認(rèn)為組織
除了更簡潔的代碼之外,代碼結(jié)構(gòu)和組織也有助于解決可訪問性問題。對代碼進(jìn)行分組以方便修改是很重要的(如果需要多次上下滾動以找到受影響的部分,則需要處理結(jié)構(gòu))
另外,不要把所有代碼都放到一個腳本中。雖然在一個文件中包含8000多行代碼似乎很方便,但是在試圖回憶方法名時,調(diào)試是一場噩夢??偸窍胫淖兊娜菀壮潭?。
最佳實(shí)踐是根據(jù)代碼的主要功能(例如管理器、接口、動畫、擴(kuò)展等)將代碼分離到不同的文件中。
只要有可能,確保該語言只滿足特定的目的。如果你正在用CSS3編寫動畫效果,除非你有足夠的理由,否則不要編寫jQuery動畫效果。如果您這樣做了,請在CSS文件中對異常進(jìn)行注釋。
3.計劃在編碼之前
在按下第一個鍵之前,準(zhǔn)確地知道要做什么是至關(guān)重要的。在編程領(lǐng)域,提前計劃是很重要的。編寫一個固定的導(dǎo)航菜單很容易,但是如果菜單需要響應(yīng),同時能夠在訪問者向下滾動頁面時最小化自己呢?
在頭腦中沒有一個清晰的過程就開始編寫代碼常常會導(dǎo)致重試、失敗和蕭條循環(huán)。
計劃你的代碼
因此,與其用并行方式解決問題和編程,不如先計算出過程,然后再寫一個解決方案。首先列出一般步驟(這里是一個例子):
使用引導(dǎo)作為響應(yīng)框架。
創(chuàng)建導(dǎo)航菜單。
將.navbar-fixed-top添加到菜單中。
當(dāng)用戶向下滾動超過200px時,創(chuàng)建jQuery腳本來調(diào)整菜單大小。
如果用戶滾動到頂部,再次調(diào)整菜單的大小。
進(jìn)行故障排除
此時,您應(yīng)該發(fā)現(xiàn)其他潛在的isse,比如如何根據(jù)菜單大小調(diào)整站點(diǎn)徽標(biāo)和菜單標(biāo)題的大小,或者是否需要同時調(diào)整下拉菜單的大小,或者是否需要動態(tài)而不是固定的檢測。一旦你弄明白了這些,完成菜單就是小菜一碟了。
4.編寫管理代碼
相信我,你不會想一行一行地單獨(dú)改變幾百個變量。我做到了,連續(xù)一年。這是一次令人謙卑的經(jīng)歷,從那以后,我學(xué)會了編寫盡可能少的手工更改的代碼。
如何實(shí)現(xiàn)這一點(diǎn)?使用數(shù)組。它非常適合存儲多個變量,您可以方便地使用for循環(huán)或for每個方法來訪問這些變量。
還有更動態(tài)的方式來添加、安排和檢索特定語言的數(shù)據(jù),比如c#的List和LINQ,所以一定要定期查看更好的特性、庫或插件,以實(shí)現(xiàn)更智能的數(shù)據(jù)管理。
最后,為了避免不斷修改代碼中的內(nèi)容,請編寫高度獨(dú)立的代碼,在應(yīng)用新特性或更改時不會破壞整個系統(tǒng)。這叫做松耦合。優(yōu)化之后,開發(fā)人員只需在一個類中調(diào)整代碼,而不是在三個類中調(diào)整新特性。
5.阻止過分的特性
隨著我們技能的成熟,我們傾向于開發(fā)更復(fù)雜的解決方案,以滿足更廣泛的需求。這是一個良好的增長跡象,但要小心,因?yàn)槟憧赡軙饺肓硪粋€陷阱——過度使用一個對項(xiàng)目來說完全不必要的功能。
在開發(fā)過程中,經(jīng)常提醒自己項(xiàng)目的主要目標(biāo)是很重要的,并且只添加實(shí)現(xiàn)目標(biāo)的功能。如果您知道確切的集合大小,請使用Array。如果List的函數(shù)能夠以您想要的方式檢索數(shù)據(jù),那么就不要使用高級LINQ。
為什么開發(fā)一個插件,當(dāng)你幾乎不使用的功能?你可以,并不意味著你應(yīng)該。不要浪費(fèi)你的時間。記住最耗時的部分,也就是完成項(xiàng)目,是尚未到來!現(xiàn)在,到調(diào)試!
6.學(xué)習(xí)更聰明地調(diào)試
哪里有代碼,哪里就有bug。不可能有一個沒有bug的代碼解決方案,所以調(diào)試技能是非常受歡迎的。這種古老的試錯法可能有效,但速度很慢。太慢了。另外,既然已經(jīng)為你開發(fā)了調(diào)試器,為什么還要折磨自己呢?
調(diào)試工具
瀏覽器現(xiàn)在配備了非常強(qiáng)大的開發(fā)工具或DevTools(簡稱為開發(fā)工具),這些工具帶有錯誤檢測、斷點(diǎn)設(shè)置、表達(dá)式跟蹤、性能檢查,所有這些都是為了方便調(diào)試。
像AptanaStudio3和XamarinStudio這樣的ide甚至發(fā)布了它們自己強(qiáng)大的內(nèi)置調(diào)試器,所以投入時間來學(xué)習(xí)它們可以使您的生活更加輕松。
但是,調(diào)試器不會完全了解您的代碼。如果有疑問,可以將log函數(shù)放入代碼中,比如console.logfor,并確保它適合變量集成(而不是將變量名重新輸入為字符串或簡單地輸入'itworks!')。web上到處都是針對每種語言的更高級、更具體的調(diào)試方法。
7.找一個更強(qiáng)的編輯
正確的編輯可以幫助您增長知識,并加速項(xiàng)目的完成。無論您有多少經(jīng)驗(yàn),強(qiáng)烈建議您使用帶有代碼補(bǔ)全功能的編輯器,如SublimeText、VisualStudio代碼和AptanaStudio3。
該特性不僅對初學(xué)者識別和學(xué)習(xí)語法非常有幫助,而且還可以被專業(yè)人員用來檢查可能更好的代碼或解決方案。請注意,大多數(shù)ide只支持特定語言的代碼補(bǔ)全,所以要尋找正確的代碼補(bǔ)全。
功能過濾
例如,我喜歡MonoDevelop的一點(diǎn)是它的代碼模板特性。使用自定義快捷鍵,您可以將自定義的代碼模板從commonswitch語句輸出到成熟的manager腳本。這對于大型項(xiàng)目非常有用,所以在您尋找編輯器時,請將此功能作為優(yōu)先級。
其他需要注意的基本特征:
調(diào)試器
正則表達(dá)式替換
宏
版本控制的支持
數(shù)據(jù)庫支持
將編輯
布局編輯器
所見即所得編輯器
8.做的版本控制
有時你會犯一個巨大的編程錯誤,想要回到早期版本的代碼?,F(xiàn)在,如果您的錯誤涉及到代碼庫中的多個文件,并且其中一些文件在幾天甚至幾個月前就被修改了,該怎么辦?
恢復(fù)到原來的狀態(tài),并在解決bug的同時一點(diǎn)一點(diǎn)地更新代碼?這是適得其反的,為什么版本控制系統(tǒng)是非常重要的。
版本控制系統(tǒng)
在眾多的版本控制軟件中,Git是最受歡迎的,它提供了大量的在線文檔。使用Git,您可以保留盡可能多的修訂版本,將文件分支出去進(jìn)行一些代碼實(shí)驗(yàn),跟蹤上次更改的代碼部分,并在需要時恢復(fù)到原來的狀態(tài)。
感覺就像過度?也許,因?yàn)樗畛跏菫閳F(tuán)隊編程而開發(fā)的,但是它對于長期的個人項(xiàng)目來說也是完美的。您可能會猶豫不決,因?yàn)镚it本身就有很多東西需要學(xué)習(xí),即使是GUI版本也是如此。但這是遲早的事(所以你最好讓它更快),加上網(wǎng)絡(luò)上有大量的教程和指南,以幫助簡化學(xué)習(xí)過程。
9.沒有額外的原型,完成當(dāng)前的項(xiàng)目
冗長的代碼編寫和調(diào)試會消耗一個人的體力和精力。我們中的一些人甚至傾向于在我們的工作完成之前就做出原型。雖然從長遠(yuǎn)來看,原型設(shè)計是一種有益的行為,但是當(dāng)你這樣做是為了逃避工作時,它并沒有幫助你。
更好的放松方式是在新縣網(wǎng)站建設(shè)享受一些與工作完全無關(guān)的事情,鍛煉,玩游戲,閱讀(也許?)——你必須保持工作生活的平衡。除了原型。
10. 總是學(xué)習(xí)新東西
在這個領(lǐng)域,你很快就會被淘汰。許多開發(fā)方法和編程語言甚至在過去10年內(nèi)就被宣布過時。即使你畢業(yè)于一所頂尖大學(xué),并擁有該學(xué)科的學(xué)位,也不能確保你仍然具備就業(yè)的條件。
生存和發(fā)展的唯一方法就是不斷學(xué)習(xí)。最好的學(xué)習(xí)方法是什么?不要只是閱讀,編程。用需要更高可伸縮性的實(shí)際項(xiàng)目挑戰(zhàn)自己。這迫使你更有效地思考。探索,享受創(chuàng)造的過程。在編程中,實(shí)踐是不可忽視的。你寫的程序越多,你就越能成為一個好的程序員。
2019-11-22
2019-11-23
2019-11-23
2019-11-23
2019-11-23
2019-11-23
2019-11-26
2019-11-26
2019-11-26
2019-11-26
2019-11-26
2019-11-26
2019-11-26
2019-11-26
2019-11-26
2019-12-23
手機(jī)官網(wǎng)