高內聚、低耦合是什麼?

g隨着PMTalk版本的不斷迭代,到如今咱們已經迭代到5.0了,上線了3年班,在這漫長的時間裏,一個產品會在研發中、產品設計有什麼問題呢?前端

這裏的問題主要是包含三類react

1.技術人員不斷變換,代碼規範層次不齊小程序

不管是在大廠仍是在小團隊,項目早期以快、業務實現爲要求,好比高併發、數據倉庫、風控控制都不會接入。後端

而互聯網團隊的開發人員、產品經理通常在職時間1-2年會正常生命週期,在系統尚未變現下、或探索期人員經歷大量的變更。數組

因此代碼的可維護性就愈來愈差,好比在PMalk咱們早期採用的JS、後續才使用react框架。微信

在項目早期團隊爲了快,使用開源系統作二次開發,但卻爲後面的迭代、優化埋下了定時炸彈。markdown

以致於如今的前端開發同窗找到我,常常會說需求能夠先放下,咱們優先作重構吧,如今的代碼看着太費時間了,先別說改。數據結構

2.業務發展的不明確,產品結構的混論架構

在早期PMTalk還只是一個提問發佈的論壇,咱們也沒有想到最終會作成一個視頻、兼職工做、體驗報告於一體的互聯網社區。併發

但其實中間咱們至少花了半年的時間作新功能探索、業務的定型、以及數據驗證。

關注個人朋友應該知道,我一直敲強調產品是業務的承載形態,而業務沒有定型天然就會致使產品框架亂改。

好比曾經咱們定位本身不作活動報名系統,只作第三方活動跳轉。在產品框架上就只容許運營、用戶經過平臺跳轉到第三方進行報名。

後續由於活動人數與用戶可控性等方面緣由,本身作活動報名系統就要求作用戶管理、活動管理的升級。

3.業務逐漸定型,產品規劃逐漸傾向於T型發展

一個互聯網產品在3年之後,其實算得上「高齡」了。所以此時產品框架已經造成了用戶主要使用的路徑,在此時的版本重構上會要求嚴格保留前期核心功能,針對邊緣化優

在用戶體驗要素裏,就提到最底層、抽象的戰略層其實就是T型發展的依據。針對肯定的業務不大改

**
產品上線時間越久,越要高內聚、低耦合**

回答開篇提到的問題:

「若是一個產品上線了3年,須要解決什麼問題?」

其方向就是不斷的內聚核型功能作成通功能,將個性化的業務進行邊緣化拆解,作成非通用的能力。

同時一個產品正常運營3年,首先他的業務也在不斷髮展、內部員工也在增加,在高增加的背後天然就會出現開頭前面2類的問題。

互聯網產品也屬於軟件工程,在其高內聚、低耦合是咱們開發過程當中要求緊密遵照的。

每一個模塊相互聯繫越緊密,則耦合性越高,模塊的獨立性就越差,反之同理;

再舉個案例:

一個項目中有20個方法調用良好,可是要修改了其中一個,另外的19個都要進行修改,這就是高耦合。若是修改了其中一個,只須要再改2個,則屬於低耦合。

從這個案例能夠看出,保持這樣的軟件方法能夠大大減小時間成本。

3年時間,產品不斷迭代,也會從一個小應用演變到高級階段就是一個大工程,從頭至尾由一我的實現是不可能的,因而就要分工模塊化完成。

好比PMTalk早期經過後端服務端渲染,如今變成了先後端分離就是逐步演變分工。

即便是由一人完成的程序,內部按照MVC模式的話,也會由subroutine來完成各項功能。因而,對於模塊化的開發,就有了這樣的要求:高內聚低耦合。

MVC 模式(Model-View-Controller)是軟件工程中的一種軟件架構模式,把軟件系統分爲三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。

**
軟件設計的耦合的8種狀態**

在這裏我收集到了經常使用的耦合關係,包含數據、功能、業務等3個維度。能夠以此判斷是否爲耦合

1.無直接耦合

指的是兩個模塊之間沒有直接關係,它們之間的聯繫徹底是經過主模塊的控制和調用來實現的。

2.數據耦合:

指兩個模塊之間有函數調用關係,傳遞簡單的數據值,至關於高級語言的值傳遞;

3 標記耦合:

指兩個模塊之間傳遞是數據結構,如數組名、記錄名、文件名等這些名字即標記,其實傳遞的是這個數據結構的地址;

4.控制耦合:

指一個模塊調用另外一個模塊時,傳遞的是控制變量(如開關、標誌等),被調模塊經過該變量的值有選擇地執行塊內一功能;

5,外部耦合:

一組模塊都訪問同一全局簡單變量,並且不經過參數表傳遞該全局變量的信息,則稱之爲外部耦合,外部耦合和公共耦合很像,區別就是一個是簡單變量,一個是複雜數據結構。

6.公共耦合:

指經過一個公共數據環境相互做用的那些模塊間的耦合。公共耦合的複雜程序隨耦合模塊的個數增長而增長。

7 內容耦合:

這是最高程度的耦合,也是最差的耦合。當一個模塊直接使用另外一個模塊的內部數據,或經過非正常入口而轉入另外一個模塊內部。

或許在年夜前還能在保持原創作內容,實際上已經不是一種任務了。而是變成一了一種定時輸出。

趁着春節假期,咱們團隊也在發佈弱小版本,尤爲是移動端的小程序預計在春節也會上線。

關注個人我的微信:574319420,多交流

相關文章
相關標籤/搜索