像工匠一樣去編寫代碼
今天是日更第2/7天,每天17:30發(fā)文
上周收到了圖靈新書《Python工匠》
花了幾天的時(shí)間讀完了,即便對(duì)我這種還在寫代碼的”老人"來說,收獲依然不少。例如 “僅限關(guān)鍵字參數(shù)”的幾個(gè)用法就是從這本書上學(xué)到的

如果你是一個(gè)久經(jīng)沙場的“老”程序員,你一定沒少寫過爛代碼,也見過很多爛代碼。爛代碼各有各的爛
有的是代碼結(jié)構(gòu)混亂,有的是隨意的變量名、函數(shù)名, 有的甚至是技術(shù)架構(gòu)爛。
面對(duì)陳年老舊代碼,只要系統(tǒng)還能運(yùn)行,就不要去動(dòng)它,因?yàn)槟阋坏┯|動(dòng)了某些歷史遺留代碼,后果可能會(huì)很嚴(yán)重。

雖然有玩笑的成分,但也的確說明了當(dāng)下很多軟件項(xiàng)目的一個(gè)現(xiàn)狀。
究其原因,可能跟中國的互聯(lián)網(wǎng)軟件還處于高速發(fā)展階段有關(guān),從業(yè)人員水平參差不齊
而大部分富有經(jīng)驗(yàn)的老程序員逐漸離開了編碼一線轉(zhuǎn)做了管理
前段時(shí)間一個(gè)朋友把他的項(xiàng)目發(fā)給我,整個(gè)項(xiàng)目其實(shí)就一兩千行代碼,我發(fā)現(xiàn)代碼全部集中在一個(gè)文件中,而且里面充斥著大量重復(fù)代碼,你根本沒法通過代碼來理解產(chǎn)品的需求是什么。
面對(duì)這種情況,你能怎么辦?肯定是完全重寫一份,也遠(yuǎn)比在原來的基礎(chǔ)上修修補(bǔ)補(bǔ)好。
那么在編碼過程中我們究竟怎么寫代碼才能避免陷入到爛代碼的泥潭中?有哪些編碼的原則可以遵循?
本書作者結(jié)合了他多年的一線編程經(jīng)驗(yàn),給我們展示了大量實(shí)用的最佳實(shí)踐編程技巧。只為解決一個(gè)問題----怎么把代碼寫好,怎么讓代碼變得可維護(hù)。
里面既有和具體語言無關(guān)的通用知識(shí),比如如何取一個(gè)見名知義的變量名,如何寫好一段注釋,面向?qū)ο缶幊淘O(shè)計(jì)原則,也有Python所特有的知識(shí),包括裝飾器、生成器、迭代器這些概念的最佳實(shí)踐場景。
如果你讀過《重構(gòu)》《代碼整潔之道》這類書,你會(huì)發(fā)現(xiàn)這些書的代碼示例都是基于Java寫的,盡管很多編程原則是通用的
但是,每種語言都有自己的語言哲學(xué),Python也不例外,如何充分利用Python的特性寫出一手Pythonic代碼是成為一名優(yōu)秀的python程序員的必備知識(shí)。
這本書最大的特點(diǎn)就是接地氣,正如書名一樣,編程也是一門手藝活,你只有足夠熱愛,反復(fù)練習(xí),臨摹優(yōu)秀代碼,不斷積累才能像工匠一樣。書中涉及的案例、技巧和工程實(shí)踐源于作者在騰訊的工作經(jīng)歷,所以應(yīng)該會(huì)對(duì)你很有幫助。
這本書適合哪些人讀?
個(gè)人認(rèn)為只要你已經(jīng)入門了Python,如果你要立志于成為一名優(yōu)秀的程序員,而不是一年的工作經(jīng)驗(yàn)重復(fù)10年,你就應(yīng)該早點(diǎn)去讀這本書,當(dāng)然,Python領(lǐng)域還有其他不少好書,比如流暢的Python,Effective Python
熟練了基本語法,就相當(dāng)于你可以下水游泳了,而要想游得快游得好,你就需要掌握專業(yè)的技巧,而這些技巧、原則往往已經(jīng)有人幫你總結(jié)好了,你只需要照著去練習(xí)就行。
這本書如果我給個(gè)評(píng)分的話,應(yīng)該是8.5分。推薦給每一位立志成為工匠的程序員。
老規(guī)矩,給大家贈(zèng)送3本書,評(píng)論區(qū)留下你學(xué)Python的故事,我從中抽選3位。
關(guān)注Python之禪,每天學(xué)點(diǎn)Python
