如何進行架構設計(一):制定戰略性指導方案
1. 引言:程式碼未動,架構先行
假如你是一名研發主管,有一個軟體產品的專案派到了你的團隊,你需要調動你的團隊開始攻克這個專案,當專案的啟動計劃書擺在你的面前的時候,立刻就有一大堆問題冒了出來,需要你去解決:
- 如何滿足軟體產品的實際需要;
- 如何合理的調配相關的開發人員;
- 如何保證工期以及軟體質量;
以上這三個問題是你首要必須考慮解決的問題,假如這個專案是一個網際網路應用專案,那麼你還必須要考慮解決如下問題:
- 如何應對產品的快速迭代;
- 如何應對產品使用者的快速增長;
- 如何應對產品規模的快速膨脹;
要想解決這些問題,其中一個必要的手段就是設計良好的軟體架構,當然設計良好的軟體架構不能保證我們解決所有這些問題,但可以幫助我們解決相當一部分問題,並且能夠輔助解決其他依靠軟體架構無法解決的問題。
因此在進行開發之前,先進行架構設計是一個良好的開端,一上來就一頭扎進程式碼中,不但無法解決上述的問題,並且沒有架構約束的開發過程將會不受控制的產生新的問題並且積累下來,這些不斷累積的問題有一個很形象的稱謂:技術債,當然無論多麼優秀的架構都無法完全避免技術債的產生,但是良好的架構可以控制技術債的產生速度、規模以及範圍,同時可以降低我們償還技術債務(通常是通過重構的方式)的成本。
那麼如何進行架構設計呢?接下來,讓我們進入正題,通過一步步制定架構設計的行動方案來講解架構設計的過程。
2. 制定戰略性指導方案
如何進行架構設計呢?首先我們需要制定一個行動方案,在制定方案之前我們先來嘗試著回答一下這個問題:
如何進行架構設計:通過分析應用系統的上下文環境,選擇使用合適的架構模式或者設計新的架構模式一步一步勾劃出整個應用系統的架構模型。
這個答案給出了一個大體的思路,這個思路提供了制定方案的依據,通過這個思路,我們可以初步制定出一個包含三個步驟的行動方案:
行動方案初版:戰略性指導方案
- 分析應用系統的上下文環境;
- 根據具體的上下文環境選擇合適的架構模式或者設計新的架構模式;
- 使用選擇的架構模式逐步勾畫出應用系統的架構模型;
到了這裡,雖然已經有了一個方案,但是我們仍然會感到很困惑:這個方案到底如何執行,架構到底如何設計?這是因為這個方案只是一個初步的方案,具有一定的抽象性、概括性,不夠明確,不夠具體,因此還不具備可行性,只具有戰略性的指導作用,是一個戰略性指導方案。通常情況下,這種方案是老闆交給下屬的方案,個人認為,理想的上下級協作模式就是由上級提供戰略性指導方案給下級,下級明確化、具體化成戰術性可執行方案後交給上級,上級稽核後交由下級執行;當然,能夠遇到一個擅長提供戰略性指導方案的老闆,說明你的運氣還不錯,因為很多老闆在分派任務的時候只是會下達諸如:我要xxx、給我做個xxx之類的指令,他們期望你是那種聽到指令就能立刻明白怎麼做,然後馬上開始執行,很快就做出成果的超人員工。當然在這次學習之旅中,我們就是我們自己的老闆,同時,我們又是自己的下屬,我們給自己下達任務,然後自己執行;我們已經給自己提供了戰略性指導方案了,下面就讓我們將他明確化、具體化成為戰術性可執行方案。
相關文章
- 戰略遊戲設計構思:指揮官機制遊戲設計
- 該如何進行架構設計一個MQ訊息佇列?架構MQ佇列
- 如何進行雲端儲存架構框架設計?架構框架
- 設計和架構:業務開發指導原則架構
- 軟體架構師必讀!什麼是設計?如何進行設計?架構
- 為什麼以及如何要進行架構設計權衡?架構
- session一致性架構設計Session架構
- 如何推進一個“以行動為導向的”事件驅動架構?事件架構
- 如果讓你寫一個訊息佇列,該如何進行架構設計啊?佇列架構
- MYSQL 同步到ES 如何設計架構保持一致性MySql架構
- 如何設計一個好玩的競技遊戲——戰略空間設計遊戲
- 銀行業信創架構設計規劃及實踐 | 架構進階行業架構
- 如何設計一個微型分散式架構?分散式架構
- 制定雲戰略的六個步驟
- [爬蟲架構] 如何設計一個分散式爬蟲架構爬蟲架構分散式
- 大型網站的可伸縮性架構如何設計?網站架構
- 架構設計之一——基礎架構架構
- 架構設計要按照什麼原則進行呢?架構
- 分庫分表架構方案設計架構
- 如何設計一個好玩的競技遊戲——戰略時間軸設計遊戲
- 趙海鵬:如何進行 OpenHarmony 音訊特性架構設計和開發工作音訊架構
- 如何精心設計CDN架構架構
- 設計微服務架構前應該瞭解的 5 項指導原則微服務架構
- 技術架構師如何制定決策 – Mark Greville架構
- 如何設計一個容錯的微服務架構微服務架構
- 關於架構設計的易變性,應該如何理解呢?架構
- NashTech對Knoldus進行戰略收購
- 【解決方案】多租戶技術架構設計入門(一)架構
- 架構設計思想-微服務架構設計模式架構微服務設計模式
- springboot 後臺管理模組架構設計方案Spring Boot架構
- 如何設計一個麻雀般的微型分散式架構?分散式架構
- 《Kafka實戰》之架構和設計邏輯Kafka架構
- 銀行業保險業數字化轉型指導意見下發,IT 基礎架構團隊如何應對挑戰?行業架構
- 如何進行監控設計?
- RocketMQ生產部署架構如何設計MQ架構
- 如何進行直播軟體搭建計劃制定,需要注意那些問題?
- 實戰訓練營:傳統分散式架構如何進行容器化升級分散式架構
- 全域性性謀劃、戰略性佈局、整體性推進智慧技術