<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          這樣寫代碼,你的年薪也能翻一倍!

          共 1347字,需瀏覽 3分鐘

           ·

          2022-06-27 17:04

          點擊藍字 關(guān)注我們


          工作時間久了,當我們已經(jīng)能夠熟練掌握日常業(yè)務(wù)的時候,大家就會想去追求更高的層次。這里也總結(jié)了幾條大家在日常工作中經(jīng)常遇到一些問題:


          • 項目經(jīng)過多次迭代,各種代碼都堆砌在一起,定位線上 Bug 的時候,感覺就像在玩“大家來找茬”;

          • 產(chǎn)品經(jīng)理口中的一個小需求,要在無數(shù)地方小心翼翼地進行各種微調(diào),還被產(chǎn)品經(jīng)理嫌棄改得慢

          • 辛辛苦苦寫好的代碼,被別人在其他地方不經(jīng)意地修改,給弄崩潰了;

          其實引發(fā)這些問題的根本原因還是在于軟件設(shè)計。


          如何做出一份完美的軟件設(shè)計?答案是不可能的,因為就不存在所謂的完美設(shè)計,最好的設(shè)計都是結(jié)合業(yè)務(wù)本身設(shè)計的。但遵循以下幾大軟件設(shè)計原則,做出優(yōu)秀的軟件設(shè)計也并非難點。


          單一職責原則


          簡稱SRP,總結(jié)來說,它只負責完成一個職責或者功能。不要設(shè)計大而全的類,要設(shè)計粒度小、功能單一的類。單一職責原則是為了實現(xiàn)代碼高內(nèi)聚、低耦合,提高代碼的復(fù)用性、可讀性、可維護性。


          通俗理解就是:不管干啥,它都只干一件事,你叫它去買菜,它就只買菜,叫它順便去倒個垃圾,它就不干了,脾氣就這么拽。


          開閉原則


          簡稱OCP,當項目需求變動時,在不修改源代碼前提下,通過增加新類/新方法/新模塊等方式滿足新的需求。


          開閉原則可以說是編程中最基本,最重要的設(shè)計原則。大家耳熟能詳?shù)脑O(shè)計模式目的都是為讓程序(架構(gòu))能遵循開閉原則,它是面向?qū)ο蟪绦蛟O(shè)計的終極目標,要求程序(架構(gòu))既要擁有一定的適應(yīng)性和靈活性,又要具備穩(wěn)定性和延續(xù)性。


          里氏代換原則


          簡稱LSP,子類在繼承父類時,不要改變父類原有的功能。


          它的核心是定義了什么是父子,就像游戲規(guī)則一樣。定義后讓大家遵守,會讓大家的程序在后面越來越復(fù)雜的時候也能清晰,而不會越來越亂。


          依賴倒轉(zhuǎn)原則


          簡稱DIP。要面向接口編程,不要面向?qū)崿F(xiàn)編程。總的來說,它可以降低類間的耦合性、提高系統(tǒng)的穩(wěn)定性、減少并行開發(fā)引起的風險以及提高代碼的可讀性和可維護性。


          接口隔離原則


          簡稱ISP,一個類對另外一個類的依賴性應(yīng)當是建立在最小的接口上的;客戶端程序不應(yīng)該依賴它不需要的接口方法(功能)。


          根據(jù)它來拆分接口時,首先必須滿足單一職責原則。使用多個專門的接口,而不使用單一的總接口,即客戶端不應(yīng)該依賴那些它不需要的接口。


          迪米特法則


          簡稱LoD,它的核心觀念就是創(chuàng)建松耦合的類。講究一個軟件實體對其他實體的引用越少越好,或者說如果兩個類不必彼此直接通信,那么這兩個類就不應(yīng)當發(fā)生直接的相互作用,而是通過引入一個第三者發(fā)生間接交互。這樣,當一個模塊修改時,就會盡量少的影響其他的模塊,擴展會相對容易。


          合成復(fù)用原則


          簡稱CRP,它就是指在一個新的對象里通過關(guān)聯(lián)關(guān)系(包括組合關(guān)系和聚合關(guān)系)來使用一些已有的對象,使之成為新對象的一部分;新對象通過委派調(diào)用已有對象的方法達到復(fù)用其已有功能的目的。簡言之:要盡量使用組合/聚合關(guān)系,少用繼承。


          以上7條設(shè)計原則,基本上都是大神們經(jīng)過很多次血的教訓(xùn),總結(jié)出來的一套方法論。可以給大家在實際的軟件設(shè)計過程中,提供一些思路。


          當然在前文就說了,沒有完美的設(shè)計。所以設(shè)計都是在具體應(yīng)用中結(jié)合實際的業(yè)務(wù)場景進一步思考,怎么讓系統(tǒng)變得更加可靠,開發(fā)更加迅速,代碼閱讀起來更加輕松,關(guān)鍵在于靈活運用!


          關(guān)注我們,做好軟件設(shè)計

          瀏覽 41
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲网站免费在线观看 | 成人免费A| 1000部无码操逼视频 | 三及片在线观看 | 黄色小视频免费看 |