《架構整潔之道》有感
最近,朋友圈都在晒 Uncle Bob 的新書《Clean Architecture》(中文名《架構整潔之道》)的相關內容,書架上也因此新增了一本書。閱讀了之後,倒是產生了一些想法,便想寫篇文章記錄一下。
程式設計的年限
與書本身的架構部分的內容相比,這本書最吸、啟發我的地方,怕是結尾的 《架構設計考古》相關的故事 。程式設計年限時間越長,經常思考更好的解決方式,能收穫到的知識也就越多。如果我們不能決定一個系統的架構,那麼就思考、實踐如何把它變好。過程中,大抵也是能收穫更多的東西,對下一個系統有更多的啟發。
不同的程式設計時期,對於軟體架構的看法是不一樣的。過去,我們要面對的是,一行行程式碼構成的麵條式程式碼,系統處於混沌架構的形式。提取、整理、總結出 MVC 架構之後,應用的架構變得明朗。但是,隨著時間的增長,又變成臃腫的單體應用。按業務(領域)拆分出程式碼,拆分出業務模組,變成一個個的服務。到了今天,我們開始提及演進式架構,以變化的心態,應對軟體架構帶來的變化。
軟體架構總是要變的,重要的不是設計出好的架構,而是讓架構和開發人員適應變化 。
從結尾的考古故事裡,可以看出:國外的技術人員到底和國內的技術人員,還是有上那麼一些差距——對外輸出上的差距。90 年代的中國程式員,沒能為國內的開發者留下多少經驗,這一點倒是頗為遺憾的。一來可能是沒有記錄下來,很多故事只能從內部知道;二來則是不能持續地記錄,隨著時間的推移,便被潮流覆蓋。Robert C·Martin、Martin Fowler、Joel Spolsky、Jeff Atwood 等知名的程式設計師,寫了大量的技術文章。從這點上來,倒是可以和國內的技術氛圍形成了對比。
可一如村上春樹在《我的職業是小說家》所講述的故事,有些富有才華的年輕人,總是 “消逝” 得非常快——是他/她們在這一領域的時間太短了,曇花一現般的職業生涯。若能在一個行業裡,持續地提升自己,早晚得是有發光的時候。程式設計亦是哪些,那些做得最好的,往往是做得最久的。
書評
再回到這本書上,架構也是這樣循序漸進出來的。底層的程式碼,影響了頂層的建築,便需要一點一滴慢慢從底層關注系統。大體上,我是將這本書分成了兩部分:
第一、二部分,資深程式的程式設計師都會有一定的瞭解、實踐。第三部分,是他最為人所知的 SOLID 原則,他最早出現 15 年前的《敏捷軟體開發》等書上。而作為一個接受過 ThoughtWorks OO Bootcamp 訓練的學員,我大抵還是能相當熟悉的運用它們。
第四部分,在講述元件化架構,都是能以 UI 專案,而非後端服務談論元件化架構,那倒能多得幾分。終於在第五部分,開始總結性地介紹軟體架構??然後,剩餘的部分都在講程式碼故事,Uncle Bob 講述故事的能力,大概是我的好幾個數量級。
說到底,還是因為我太年輕了,沒能讀懂這本書的精髓。看上去像可有可無的大道理,在落地上倒是得自己花時間去考慮。遇到一個架構方面的難題,帶上這本書,加上所謂的悟性,或許我的問題就能迎刃而解。要是一看,本書倒是不適合初學者 。可是,這本書的敘述方式,又相當的適合初學者。
要是各位對這本書有興趣,又有些不是甚懂,建議去看看《程式碼整潔之道》。