自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

進(jìn)行架構(gòu)設(shè)計(jì)要了解的幾種思維方式

新聞 架構(gòu)
一個(gè)優(yōu)秀的程序員要想成為一名優(yōu)秀的架構(gòu)設(shè)計(jì)師,就改變編程的思維,學(xué)會(huì)使用架構(gòu)設(shè)計(jì)的思維方式。

 [[386069]]

架構(gòu)設(shè)計(jì)是門藝術(shù)。

一個(gè)優(yōu)秀的程序員要想成為一名優(yōu)秀的架構(gòu)設(shè)計(jì)師,就改變編程的思維,學(xué)會(huì)使用架構(gòu)設(shè)計(jì)的思維方式。

架構(gòu)設(shè)計(jì)的思維方式有以下幾種:

1. 分而治之的思維方式

分而治之,是把一件籠統(tǒng)模糊的事項(xiàng)變得清晰,把復(fù)雜的事項(xiàng)變得簡單的思維方式。而這正是我們進(jìn)行架構(gòu)設(shè)計(jì)首要達(dá)成的目標(biāo)。

架構(gòu)設(shè)計(jì)師必須要學(xué)會(huì)架構(gòu)分解,將軟件的功能和非功能需求在架構(gòu)的多個(gè)層面進(jìn)行分解。

架構(gòu)分解的時(shí)機(jī)要恰當(dāng),不要過早分解、也不要過度分解,通常的分解時(shí)機(jī)就是架構(gòu)構(gòu)造和演變時(shí)。

架構(gòu)分解應(yīng)當(dāng)遵循以下原則:

  • 高內(nèi)聚、低耦合。

  • 層次性。分解的順序一般是系統(tǒng)→子系統(tǒng)→模塊→組件→類。

  • 正交原則。分解出的架構(gòu)元素符合正交原則。

  • 抽象原則。分解出的架構(gòu)元素應(yīng)當(dāng)是架構(gòu)設(shè)計(jì)師抽象的結(jié)果。

  • 穩(wěn)定性原則。應(yīng)當(dāng)將穩(wěn)定架構(gòu)元素和不穩(wěn)定的架構(gòu)元素獨(dú)立。

  • 復(fù)用性原則。架構(gòu)設(shè)計(jì)應(yīng)當(dāng)和軟件一樣,要考慮復(fù)用和可復(fù)用的設(shè)計(jì)。

2. 聚而合之的思維方式

分而治之的目的是降低難度,但軟件的設(shè)計(jì)和實(shí)現(xiàn)最終還是要將分解的各個(gè)元素組合在一起。所以,不能為了分解而分解,在分解的過程中也要考慮將來的集成。畢竟如果分解后的內(nèi)容無法集成在一起,分解得再詳細(xì),再清晰也沒有任何意義。

3. 動(dòng)靜分離的思維方式

動(dòng)靜分離的思維方式要求將系統(tǒng)中的靜態(tài)資源與動(dòng)態(tài)資源分離,同時(shí)又要注意二者結(jié)合的架構(gòu)設(shè)計(jì)。因?yàn)閯?dòng)態(tài)的流程和用例無法離開靜態(tài)的數(shù)據(jù)和類就能自行完成的。

4. 復(fù)用的思維方式

復(fù)用是最佳的軟件工程實(shí)踐,沒有之一。復(fù)用可以給我們帶來以下好處:

  • 較高的生產(chǎn)率。

  • 較高的系統(tǒng)質(zhì)量。

  • 改善系統(tǒng)的可維護(hù)性。

所以,我們?cè)谶M(jìn)行架構(gòu)設(shè)計(jì)時(shí)也需要使用復(fù)用思維,將各個(gè)模塊需要用到的共性功能抽取為可復(fù)用的共性組件。

我們可以將復(fù)用分為常規(guī)復(fù)用和系統(tǒng)層復(fù)用。

其中常規(guī)復(fù)用又可分為代碼復(fù)用、算法復(fù)用、數(shù)據(jù)結(jié)構(gòu)的復(fù)用;系統(tǒng)層復(fù)用又可分為設(shè)計(jì)復(fù)用、分析復(fù)用。

5. 分層的思維方式

分層是將各架構(gòu)元素通過分層重新構(gòu)建的過程,各層之間要保持獨(dú)立設(shè)計(jì)和松耦合。

分層的思維方式可以使軟件架構(gòu)具有如下優(yōu)點(diǎn):

  • 開發(fā)人員可以只關(guān)注某一層。

  • 可以很容易地用新的實(shí)現(xiàn)來替換原有層的實(shí)現(xiàn)。

  • 可以降低層與層之間的依賴。

  • 有利于標(biāo)準(zhǔn)化。

  • 有利于各層邏輯的復(fù)用。

6. 模式的思維方式

架構(gòu)模式是一套成熟的、通用的、可重用的解決方案,在進(jìn)行架構(gòu)設(shè)計(jì)時(shí),架構(gòu)設(shè)計(jì)師要能夠根據(jù)業(yè)務(wù)需求來挑選最適合的架構(gòu)模式。

架構(gòu)模式一般有分層模式、客戶端-服務(wù)器模式、主從設(shè)備模式、管道-過濾器模式、代理模式、P2P模式、事件總線模式、MVC模式、黑板模式和解釋器模式等。

7. 抽象的思維方式

抽象包括兩個(gè)層面的內(nèi)容:一個(gè)層面是將各種類似場(chǎng)景的實(shí)現(xiàn)歸納成一種規(guī)則或方法出來供以后的設(shè)計(jì)用;另一個(gè)層面是將非類似場(chǎng)景中的共性內(nèi)容總結(jié)出來,進(jìn)一步抽象為類似的東西。

8. 結(jié)構(gòu)化的思維方式

結(jié)構(gòu)化是一種注重結(jié)構(gòu)完整性的思維方式,它強(qiáng)調(diào)在分析問題的過程中,要考慮整體性,不要馬上陷入細(xì)節(jié)。結(jié)構(gòu)化思維的核心在于對(duì)問題進(jìn)行正確界定的基礎(chǔ)上(以終為始),對(duì)問題的構(gòu)成要素進(jìn)行合理分類,并對(duì)其中的重點(diǎn)環(huán)節(jié)進(jìn)行分析(要事第一)。

結(jié)構(gòu)化應(yīng)遵循以下原則:

  • 以終為始。

  • 知道設(shè)計(jì)的目標(biāo),根據(jù)目標(biāo)倒推需要完成的工作和任務(wù)。

  • 不要先入為主,避免陷入細(xì)節(jié)。

  • 各架構(gòu)元素相互獨(dú)立。

  • 各架構(gòu)元素?zé)o遺漏。

  1. 迭代的思維方式

沒有最好,只有更好。架構(gòu)設(shè)計(jì)也要隨著業(yè)務(wù)需求的變化不斷迭代和演化。

這正是:

架構(gòu)設(shè)計(jì)不簡單,思維方式數(shù)半天

學(xué)習(xí)前人獲經(jīng)驗(yàn),優(yōu)秀架構(gòu)不再難

 

 

責(zé)任編輯:張燕妮 來源: 軟件工程之思
相關(guān)推薦

2020-10-13 06:56:19

JavaScript異常類型開發(fā)

2022-01-04 10:57:54

網(wǎng)絡(luò)攻擊黑客企業(yè)

2020-12-09 09:30:57

前端開發(fā)技術(shù)

2020-04-23 11:03:09

前端語言開發(fā)

2023-07-03 00:47:23

2010-09-17 08:50:30

Visual Stud

2025-04-15 04:00:00

2018-07-30 08:23:30

微服務(wù)架構(gòu)設(shè)計(jì)

2018-07-09 11:00:56

軟件架構(gòu)設(shè)計(jì)模式

2021-10-27 10:48:49

架構(gòu)運(yùn)維技術(shù)

2020-04-03 09:00:00

微服務(wù)前端架構(gòu)

2013-05-27 10:58:28

Tumblr架構(gòu)設(shè)計(jì)雅虎收購

2023-05-12 08:06:46

Kubernetes多云架構(gòu)

2015-06-02 04:17:44

架構(gòu)設(shè)計(jì)審架構(gòu)設(shè)計(jì)說明書

2016-01-13 10:09:49

自動(dòng)化運(yùn)維運(yùn)維思想

2009-07-06 10:36:41

敏捷開發(fā)

2021-11-08 06:57:35

Redis架構(gòu)設(shè)計(jì)

2024-06-14 16:07:41

2012-06-27 09:11:47

2015-09-16 14:13:53

應(yīng)用集成應(yīng)用開發(fā)企業(yè)架構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)