程序員之路--項目重構的開發者心態


        最近公司開始着手項目的重構,準確來說,公司半年前就已經開始準備重構。除了客觀因素外,只是有很多工作都是嘴皮子工作,或者寫文檔,畫藍圖去了。沒有真真正正地去做一些切實的事情。分析和設計固然重要,沒有落實,就像是很多零前面沒有1。

        我本人是非常注重項目架構的,好的項目架構,無形中,凝聚了很多智慧,經得起段時間變遷和洗禮。可是,時常也會感覺到,這項目重構這樣的事情中,不同的項目情況,不同的公司團隊,總是會帶來不同的問題。這就帶來了技術思考之外的,我稱之爲理念思考。技術思考解決技術問題,理念思考解決人的思想問題。

        我的從業經驗慢慢地告訴我,有的時候,理念思考上的煩惱和工作量,往往都非常非常,大於n多倍的技術思考。這裏面的原因很多。可能是好高騖遠,可能是追求形式,華麗的綵衣,也可能是設計過度,思考過度。有的時候,要是想着怎麼對接5年後的技術和業務。不如想着,先把手裏落後的3年的項目改到今年。一口喫個胖子,不光是難受,更加是不被接受的工作付出。

        我聽說過,一些開發者說,這個項目是我一個人重構完成的,語氣當中充滿着自豪和驕傲。這是這的肯定的。反過來說,如果有幾個人和你合作,你能重構好嗎?要知道,想法過多,在IT開發中,往往都是一個阻礙。。人,尤其是程序員,是非常偏執的,不願意在主觀上接收別人的想法。而實際上,每個人,對於項目結構優化的思路,都不可能是百分之百完善的。

        這個東西,先說到這裏吧。

        今天要分享一個東西,這個東西應該很早就被移動開發圈子知道。

      點擊鏈接:微信Android模塊化架構重構實踐

        文章很長,講的很細,值的說到事,真的非常值的仔細看看。。我在這裏,提出來一些我個人感覺不錯的句子。也算是我的總結了。當然,我在意的這些句子。都是和技術無關的。

1,“君有疾在腠理,不治將恐深”

      2,模塊邊界破壞、基礎工程中心化,都是代碼持續劣化的幫兇。

      3,目前Android端App整體架設計上,除了聚焦在“大前端”之外,基本上都在“插件化/應用沙盒”上面下功夫。

      4,不被監管的權利一定會發生腐敗” 。如果放到軟件開發的行當來說,就是“不被監管的代碼也一定會發生劣化”。所以代碼應該要接受“監管”。

      5,在一個長期沒有改進的框架下,開發者的習慣可能會逐步變成跟隨式、保守式的開發。這大概可以被描述成“只要別人這樣做,我也這樣做,哪怕這麼樣的設計不好,但也不會錯”。經常能聽到有同學吐槽一些代碼,卻更少看到代碼在被改進。

      6,讓他們可以放心參考。

      7,代碼的邊界就像一堵牆,架構的劣化都是從這堵牆的瓦解開始的。

      8,因爲代碼解耦從來不是問題,糾結的只是解耦行爲能不能讓人理解。我們要盡力避免的,應該是隨意拼湊和單純爲了類型解耦而解耦的情況。

      9,用純粹的模塊化保持後續架構的靈活性和健壯性,重新強調依賴、強調應用狀態和生命週期、強化代碼的邊界。

        最近也有看到另外一個東西。原文來自攜程的一個產品,這麼說的(當然,我是摘錄)。

         ...Controller很容易變成大雜燴,預期的可維護性變得很脆弱,由此導致一方面希望有新框架模式可以解決現在的問題,但同時對框架模式又有些懷疑,新的框架模式是否能真正解決現在的問題?會不會重蹈覆轍?會不會過度設計?會不會掉進一個更深的坑?總之,這些類似“一朝被蛇咬,十年怕井繩”的擔憂顯得不無道理。但不管如何,我們需要仔細耐心的做工作
        ... ...
        通過對MVC、MVP的介紹和研究,我們發現二者的關係並不是相互取代的關係,而是一種演化和改進的關係。經實踐證明,MVC仍然具有強大的生命力,試圖用MVP取代MVC幾乎都會失敗。攜程在MVC模式基礎上,結合MVP思想,加入Interactor元素搭建的MVCPI框架模式,一方面將數據綁定邏輯從Controller(或者View)中分離出去,另一方面將交互模型的控制納入進來,進一步加強了Controller的控制能力。無論從代碼的簡潔性,維護性,擴展性來看,都具有較大優勢,具有一定的實踐推廣價值。
當然,任何框架模式都不是全能的,MVCPI也存在它不足,如果有好的意見和建議,歡迎加入,一起討論推進框架模式的發展。 

        最近又新看了一個東西,美團外賣Android平臺化架構演進實踐,這個東西比較專有,無可拷貝,但是整個過程還是可以瞭解一下的。
    康威定律:
設計系統的組織,其產生的設計等同於組織之內、組織之間的溝通結構。


      這些東西相信都是非常有益的。。如果看到這裏,你想着,"我們現在的項目,也要朝着這個方向去"... ... 。。。what's the fuck !! shit !!!  你們的項目是你一個人說的算嗎?你的項目有三四十五六十人的直接業務團隊嗎?你的項目有上億人的使用量嗎?你的項目會和哪怕微信這樣發展6年了嗎,也許,你的公司都不一定會生存6年,你的項目會向騰訊一下,一直被支持嗎?你的團隊會有年輕積極的正能量嗎?

      so,如果你看了壯的,就想使勁喫,太沒腦子了。很多東西是可以學習的,不是讓你套用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章