重構的那些事(一)

以互聯網公司發展的速度,老項目被新項目替代,新需求不知足老的設計原理,是考慮新開一個項目呢,仍是在原有的項目中進行範圍性改造知足現有需求呢框架


若是你選擇新開一個項目,首先須要梳理項目流程,而後抽象業務需求,再基於前人的肩膀上選擇一些適用的框架和技術。異步


在此跟你們多說一句,重構的時候好多前輩都說只有適合的技術纔是重構須要,不要去追尋那些前沿的新奇的還不是很成熟的技術,其實這種話聽着挺有道理的,好比:有A框架和B框架,A簡單易上手輕便,可是相比較B而言,有可能在高可用,熔斷,限流等一些技術上要差一些。有的人可能就要說了若是A能知足現有得業務需求,應該選A,可是做爲一個技術人員相信每個人都想去學習一些新的技術,簡單方便的工具當然能讓大部分人愛上它,可是相比較自行車人們爲啥仍是更愛小轎車。ide


相同的原理每一個技術人都願意將本身的小米步槍換成飛機大炮,在使用B框架的過程當中咱們可以去學習他的複雜原理,瞭解他的熔斷啊,限流啊一些牛逼點的技術,雖然對如今的業務有一種大材小用的感受,可是一切的一切都是值得的。工具


在選定B框架以後咱們須要去調研她,首先要知道在她的基礎上能實現哪些功能,是否知足咱們的需求,知足需求的基礎上咱們還要知道哪些能夠更方便咱們去管理該系統,若是咱們只是用她的最簡單的一些功能又何須辛辛苦苦去研究一個複雜的系統呢。當你要異步發消息的時候會想我要用kafka,由於她比mq更新,她是如今技術的主流,若是你只是用她發一些簡單的配置數據,或者大家的業務流量寥寥無幾,我勸你仍是用rabbitmq吧,何須呢,kafka的高吞吐量根本感受不出來,當你對使用幾個線程去消費信息都不在乎的時候,在你手裏mqkafka毫無二至。既然咱們選擇了kafka 咱們就要去了解她的原理,brokerpartitionoffsetgroup等等難道不能引發咱們的注目禮嘛,這也是我推薦你們用新技術的目的。學習


用只是謀生 的手段,學習纔是咱們進步的階梯spa


若是以上步驟走完了,接下來就是設計開發的事情了。面向對象講了好多年了,正好應該是咱們發揮本身才能的機會,最基本的幾個原則要遵照吧,可維護,可擴展,可開放,OCP。。提及來簡單,作起來比較難,總有你沒有考慮到的地方。人不是上帝,可是是上帝的製造者。那我們一步一步來造上帝吧,抽象業務需求的時候你總會發現他們有着不少的共同點,他們有着重合的屬性,那咱們避免重複性代碼線程

1.避免重複代碼設計

2.減小巨大類和方法orm

3.邏輯控制儘可能簡單對象

4.儘可能抽象,能不暴露的屬性儘可能不要暴露

5.多加一些註釋,不能只寫代碼,而不讓別人看代碼吧~

相關文章
相關標籤/搜索