全棧工程師15年經(jīng)驗(yàn)分享:40個改變編程技能的小技巧
本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。
編程如何節(jié)省更多的時間,犯更少的錯誤?
最近,這樣一份「心得」火了。這位名叫Kesk Noren的軟件工程師在Medium上分享了一篇博文——「40 Tips that will change your coding skills forever」,獲得3.5k點(diǎn)贊。
40個將永久改變你編程技能的小技巧,你值得擁有~
除了軟件工程師以外,Kesk Noren還是一位全棧工程師。他用15年的工作經(jīng)驗(yàn),總結(jié)出來一些對職業(yè)生涯有幫助的東西。
還提到,
這篇文章雖然讀起來很快,但是真正能夠應(yīng)用好它,就需要一生的時間。
話不多說,我們就來一睹為快!
40個改變編程技能的小技巧
1、將大塊代碼分解成小函數(shù)
2、今日事今日畢,如果沒畢,就留到明天。
如果下班之前還沒有解決的問題,那么你需要做的,就是關(guān)閉電腦,把它留到明天。
中途不要再想著問題了!
3、YAGNI原則
「You aren’t gonna need it!」
你自以為有用的功能,實(shí)際上是用不到的。除了要求的核心功能,其他功能一概不要部署。
這一原則的核心思想是,盡可能快、盡可能簡單的將軟件運(yùn)行起來。
4、不必全知全能,但基礎(chǔ)一定要扎實(shí)
比如學(xué)習(xí)一些基礎(chǔ)知識,SOLID原則,如何寫干凈的代碼等等。
5、KISS原則
「Keep it simple,stupid.」or「Keep it stupid simple.」,一種程序設(shè)計(jì)原則。
大多數(shù)系統(tǒng)往往「最簡單」,運(yùn)行效率最高,但實(shí)際操作起來并不簡單。
6、別想太多
7、被問題/Bug卡住時,walk away!
不過還是要記得回來。
當(dāng)你走在去上班、去廁所、去散步的時候,也許就能想到解決方法。
尤其是在與客戶、同事生氣時,甚至關(guān)乎你工作去留的時候,效率會更高。
8、學(xué)會寫測試代碼TDD
TDD是一個軟件開發(fā)過程,它依賴于重復(fù)一個很短的開發(fā)周期:寫一個測試,運(yùn)行所有的測試,看看新的測試是否失敗,寫一些代碼,運(yùn)行測試,重構(gòu)代碼,重復(fù)。
9、先分解問題再開始寫代碼
不要不知道怎么做就開始寫代碼。
10、代碼不要死記硬背
要理解邏輯。
11、學(xué)好用好Stack Overflow
如果你復(fù)制粘貼一個Stack Overflow解決方案,請一定要確保已經(jīng)理解了它。
12、不要「光學(xué)不練」
如果你想學(xué)點(diǎn)什么,就去練習(xí),光學(xué)是不夠的。
13、與小伙伴互相審查代碼
研究別人的代碼,讓別人時常研究你的代碼。
互幫互助,共同進(jìn)步。
14、Don’t Reinvent The Wheel
「不要重新發(fā)明輪子?!?/p>
充分利用已有的經(jīng)驗(yàn)和成果,避免不必要的投入和浪費(fèi)。
15、你的代碼是最好的文檔
16、懂得如何搜索
對于這一點(diǎn),你需要有經(jīng)驗(yàn)以及讀很多書,才知道要找什么東西。
17、寫代碼時要之后維護(hù)考慮
你的代碼將來需要你自己或者別人來維護(hù)。
所以,寫代碼的時候要考慮到讀者,而不是想成為最聰明的人,讓它讀起來就像在讀一個故事。
18、復(fù)制粘貼
用谷歌、百度解決錯誤的最好方式就是「復(fù)制粘貼」。
19、不要放棄
到最后,不管用什么方式,問題肯定會解決。
20、休息、休息再休息
解決問題的最好方法是有一個安穩(wěn)的心態(tài)。
21、學(xué)習(xí)軟件設(shè)計(jì)模式
設(shè)計(jì)模式是軟件設(shè)計(jì)中常見問題的解決方案。每一種模式就像一個藍(lán)圖,你可以自定義來解決代碼中常見的設(shè)計(jì)問題。(不要重復(fù)發(fā)明輪子。)
22、使用集成工具
盡可能實(shí)現(xiàn)自動化。
23、Do code katas.
「Code kata」是編程中的一種練習(xí),可以幫助程序員通過練習(xí)和重復(fù)來提高他們的技能。
24、依賴注入是一個要求
編程到一個接口,而不是implementation。
所謂依賴注入,就是組件之間的依賴關(guān)系由容器在應(yīng)用系統(tǒng)運(yùn)行期來決定,也就是由容器動態(tài)地將某種依賴關(guān)系的目標(biāo)對象實(shí)例注入到應(yīng)用系統(tǒng)中的各個關(guān)聯(lián)的組件之中。
25、重構(gòu)-測試-重構(gòu)
重構(gòu)是一種對現(xiàn)有代碼進(jìn)行重組的技術(shù),在不改變其外部行為的前提下,改變和改進(jìn)其內(nèi)部結(jié)構(gòu)。
26、及時尋求幫助
不要浪費(fèi)時間。
27、Practice makes perfect.
熟能生巧。
28、不必太在意評論
雖然有時評論可以幫到你,但不要太過在意。他們可能已經(jīng)過時了。
29、了解你的開發(fā)環(huán)境
了解你的開發(fā)環(huán)境,并invest一個足夠強(qiáng)大的環(huán)境,如,IntelliJ。
30、重復(fù)使用組件
31、考慮相關(guān)限制
在開發(fā)網(wǎng)絡(luò)應(yīng)用時,要考慮到移動優(yōu)先以及相關(guān)的功率和帶寬限制。
32、不要過早優(yōu)化或重構(gòu)
更重要的是盡快擁有一個最低限度可行的產(chǎn)品。
33、不要投機(jī)取巧
千萬不要為了節(jié)省幾分鐘的時間而選擇效率低下的捷徑方式。
「Every time you code, give your best!」
34、遵循規(guī)定的標(biāo)準(zhǔn)
35、用戶不是技術(shù)人員
當(dāng)你開發(fā)你的UI時,需要考慮到這一點(diǎn)。
36、堅(jiān)持使用Github或bitbucket
可以進(jìn)行小規(guī)模、頻繁的git提交。
37、記錄所有關(guān)鍵部分
記錄系統(tǒng)日志比調(diào)試代碼更好。
38、風(fēng)格保持一致
如果你使用一種風(fēng)格,請總是使用相同的風(fēng)格。
如果你和更多的人一起工作,對所有的團(tuán)隊(duì)都使用相同的風(fēng)格。
39、Don’t stop learning
但比起學(xué)習(xí)新語言或框架,更要注重學(xué)習(xí)軟件開發(fā)的基礎(chǔ)知識。
40、patience and love
最后,對你正在做的事情保有足夠的耐心和熱愛。
好了,這就是40個改變你編程技能的小技巧,希望能對你有所幫助~