干貨!15年經(jīng)驗(yàn)分享:40個改變編程技能的小技巧
點(diǎn)擊上方“菜鳥學(xué)Python”,選擇加"星標(biāo)"或“置頂” 重磅干貨,第一時間送達(dá)?
白交 發(fā)自 凹非寺?
轉(zhuǎn)載自:量子位 報道 | 公眾號 QbitAI
編程如何節(jié)省更多的時間,犯更少的錯誤?
最近,這樣一份「心得」火了。這位名叫Kesk Noren的軟件工程師在Medium上分享了一篇博文——「40 Tips that will change your coding skills forever」,獲得3.5k點(diǎn)贊。
除了軟件工程師以外,Kesk Noren還是一位全棧工程師。他用15年的工作經(jīng)驗(yàn),總結(jié)出來一些對職業(yè)生涯有幫助的東西。
還提到:
這篇文章雖然讀起來很快,但是真正能夠應(yīng)用好它,就需要一生的時間。
話不多說,我們就來一睹為快!
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ā)明輪子。」
充分利用已有的經(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個改變你編程技能的小技巧,希望能對你有所幫助~
當(dāng)然,如果你有什么好的經(jīng)驗(yàn)技巧,也歡迎與我們分享~
博文鏈接:
https://medium.com/swlh/40-tips-that-will-change-your-coding-skills-forever-bf9d6b936ccc
推薦閱讀:
入門:?最全的零基礎(chǔ)學(xué)Python的問題? |?零基礎(chǔ)學(xué)了8個月的Python??|?實(shí)戰(zhàn)項(xiàng)目?|學(xué)Python就是這條捷徑
干貨:爬取豆瓣短評,電影《后來的我們》?|?38年NBA最佳球員分析?|? ?從萬眾期待到口碑撲街!唐探3令人失望? |?笑看新倚天屠龍記?|?燈謎答題王?|用Python做個海量小姐姐素描圖?|碟中諜這么火,我用機(jī)器學(xué)習(xí)做個迷你推薦系統(tǒng)電影
趣味:彈球游戲? |?九宮格? |?漂亮的花?|?兩百行Python《天天酷跑》游戲!
AI:?會做詩的機(jī)器人?|?給圖片上色?|?預(yù)測收入?|?碟中諜這么火,我用機(jī)器學(xué)習(xí)做個迷你推薦系統(tǒng)電影
小工具:?Pdf轉(zhuǎn)Word,輕松搞定表格和水印!?|?一鍵把html網(wǎng)頁保存為pdf!|??再見PDF提取收費(fèi)!?|?用90行代碼打造最強(qiáng)PDF轉(zhuǎn)換器,word、PPT、excel、markdown、html一鍵轉(zhuǎn)換?|?制作一款釘釘?shù)蛢r機(jī)票提示器!?|60行代碼做了一個語音壁紙切換器天天看小姐姐!|
年度爆款文案
6).30個Python奇淫技巧集?
點(diǎn)閱讀原文,看B站我的20個視頻!


