把程序員修煉之道讀薄
這是一篇技術書籍讀后感
早在2014年的時候我就已經購入 《程序員的修煉之道》 .還是由于慵懶一直沒有翻開,最近才把它從書柜里翻出來看完。
老實說這本書相比CodeComplete2來說,還是差那么點味道,但是它依舊是一本好書。本書通篇都在向讀者灌輸一種 做一個注重實效的程序員 的概念,這句話出現了不下幾百次,200頁的書這句話都夠填10頁了Orz。為了闡明作者觀點,書中從以下幾個方面進行了自我論證:
為何要注重實效
作者舉了 溫水煮青蛙
, 曳光彈
等 去論證注重實效在軟件開發中的作用之大。在這過程中 還把如果做好一個程序員等問題 進行了自我解答。更有趣的是,讀完這部分我發現全世界的程序員都應該有一個共性 — 溝通能力普遍不足,因為作者甚至在如何溝通這個問題上 進行了大篇幅的 教學 ,如何和程序員溝通,如何和用戶溝通,如何和產品經理溝通,如何減少溝通 等等。
如果覺得自己工作過程中 無法流暢的和其他人溝通 不妨多讀一讀這本書。
如何注重實效
DRY
這部分的章節,我認為是本書最精華的部分,作者在很多地方都提了 DRY原則-Don`t Respeat Yourself (不要重復自己),翻譯過來 應該就是不要重復造輪子了。關于 DRY原則 推薦一篇反DRY原則的經典文章 – DRY原則的誤區 ,作者是一位有著神奇精力的程序員,做程序員做到他這樣 估計就算到頭了吧?
DRY原則在細微的事情上 并不一定值得推崇,例如我的很多博客分享的小知識點 其實都是重復造輪子,但是我是發現別人造的輪子不夠完美的情況下 才會去重復造。雖然可能我的輪子在你那里也轉動不起來!
DRY原則在比較普通的事情上 是應該遵守的,舉個離大家很近的例子,你在A項目實現了整套更新打包流程工具,難道去到了B項目 你就要重新再實現一套么?但是要遵守DRY原則 對你造輪子的過程中有一定的要求,你不能造一個不可移植 全程硬編碼的輪子。一個依附A項目太深的工具,在你移植到B項目的時候 更多的感受是心力交瘁。
自動化
如何注重實效,本書很大篇幅都在給我們灌輸如何讓項目中的工作更自動化的方法,如何測試自動化,如何review Code自動化,如何文檔自動化,如何代碼自動化。
關于在項目中盡可能自動化 這點我非常認同。就拿一個移動游戲項目來說,目前我做過的自動化工具就有:
- 打包自動化
- 編譯自動化
- 分包自動化
- 更新自動化
- 代碼自動化
自動化真的可以讓工作更少的出錯,讓各位程序都能更注重代碼邏輯上的問題。
誠實
關于程序員的自我誠實,在書中并沒有明確的表述(或者是翻譯不直接的問題),但是我隱約能感受到作者給我灌輸的一個重要概念 那就是程序員自身的誠實,誠實對待每一個BUG 而不是回避,在編碼過程中 誠實對待自己感到不愉快的地方,誠實的去重構 而不欺騙自己,誠實的對待偶然性BUG 而不懷抱僥幸心理。這點很重要 回顧我三年的編碼生涯,有過很多次 我都在發現代碼有問題的時候 祈禱不修改也不會出現問題。罪過罪過。
編程之道
看完這本書之后,以上就是我能想起作者給我的東西,興許不同的人看了會有不同的感悟。我一直都不夠注重實效(承認自己不夠好并不難),一直都存在僥幸心理(雖然不至于看到BUG都不修)。往后 應該引以為戒。
-EOF-