背景
題目起的有點(diǎn)大织阅,其實(shí)只是想隨便說說。最近工作中遇到一些事兒绎签,發(fā)現(xiàn)很多人其實(shí)迷失在其中枯饿,違背了一個(gè)亙古不變的真理:越簡(jiǎn)單越不容易出錯(cuò)。我來詳細(xì)說說我對(duì)于這個(gè)真理運(yùn)用在程序編寫诡必,產(chǎn)品制作上的一些理解吧奢方。
分層架構(gòu)意義何在搔扁?
很早很早以前,大概是我還在玩泥巴的時(shí)候蟋字,IT圈子中的大牛們就已經(jīng)意識(shí)到彼時(shí)的程序就如果面條般混亂不堪稿蹲。于是乎,由一個(gè)大牛牽頭鹊奖,各方諸侯呼應(yīng)苛聘,探索并制定了一系列軟件開發(fā)的方法論,我們稱之為『軟件工程』忠聚。
從那個(gè)時(shí)候開始设哗,就講究分而治之。從很多的案例以及算法中都能看到這個(gè)思想的影子两蟀。如:快速排序网梢,MVC架構(gòu),各種單一職責(zé)的工具與軟件赂毯。
那么战虏,為什么他們要這么做呢?顯然党涕,一個(gè)工具只用來處理一個(gè)事情烦感,是最不容易出現(xiàn)問題的,也是能夠長(zhǎng)期保證穩(wěn)定的遣鼓。如啸盏,快速排序算法中重贺,一個(gè)步驟用來比較大小骑祟,一個(gè)步驟用來調(diào)度,一個(gè)步驟用來記錄气笙。如果寫在一起次企,那么在比較大小的時(shí)候需要去關(guān)心是否要去調(diào)度,什么場(chǎng)景需要調(diào)度潜圃,大大增加了實(shí)現(xiàn)的難度缸棵,也就使得這個(gè)工具的出錯(cuò)率提高。
這也就是為什么大家都提倡『高內(nèi)聚谭期,低耦合』的原因堵第。在MVC,MVVM隧出,以及Hybrid架構(gòu)中都有非常好的體現(xiàn)踏志,而面向?qū)ο髮⑦@個(gè)理念推向了巔峰。
那么業(yè)務(wù)呢胀瞪?
那么针余,對(duì)于業(yè)務(wù),是否也應(yīng)該講究分而治之?將業(yè)務(wù)部門的職責(zé)規(guī)劃清楚圆雁,部門內(nèi)對(duì)于每個(gè)人的職責(zé)定位清楚忍级,互相補(bǔ)全而不是互相重疊。
很想當(dāng)面問問伪朽,為什么知道在軟件設(shè)計(jì)上要分而治之轴咱,職責(zé)單一。為何在人事安排上就會(huì)出現(xiàn)如此混亂的場(chǎng)面烈涮?
在業(yè)務(wù)上嗦玖,個(gè)人的體會(huì)就是一個(gè)字『拆』。起步階段跃脊,拆除非核心業(yè)務(wù)宇挫。對(duì)于核心業(yè)務(wù),也是一個(gè)字酪术,『拆』器瘪。拆到不可拆為止。如此逐步迭代绘雁,步步為營(yíng)橡疼。方為王道。
當(dāng)然庐舟,這也就要求決策者具有長(zhǎng)遠(yuǎn)的目光欣除,以及拒絕不合適需求的勇氣,甚至承擔(dān)由此帶來的各種非議挪略。