2016.4.25
業務是目的: 取火
技術是方法: 鑽木取火
架構師 協調業務和技術的關係,把主要業務(目的/問題)分拆成具體的技術實現方案
軟體公司裡頭:
架構師要懂很多技術,還要有商業頭腦
所謂「架構」 就是把乙個大的系統給拆分,拆散後又能順利的組裝起來。
軟體架構包括了:**架構以及承載**執行的硬體部署架構
軟體開發是需要成本的,要考慮專案難度和開發周期。
技術複雜度太高,掌握這項技術的時間成本和後期維護的難度(後期維護也需要訓練新員工來進行維護)就會大大增加。
所以小專案用高技術肯定是划不來的。
實現乙個僅僅只是解決當下問題的方案可能成本更低。
所以往往我們會發現,一些小的專案,即時專案 或者是 要馬上上線的專案 很多就是走 面向過程的開發路線,採用邊做邊改(build and fix model)的軟體開發模型。
記住,任何需求的變更,功能的拓展都是需要成本的。
參考:架構漫談(九):理清技術、業務和架構的關係
所有設計模式都是為了**後期維護和增加功能帶來方便的,
其實如果只是為了解決當下問題,用面向過程設計思想更快捷直接,因為修改的地方少,在主函式的大迴圈裡增加功能的實現**即可
1.松耦合
——分離檢視和資料模型,方便後期維護和擴充套件功能
——分離操作,把每乙個操作(如計算器的加減乘除)都單獨封裝成類,單獨編寫和修改
2.物件導向的程式設計 是通過封裝、繼承、多型把程式的耦合度降低(解耦:緊耦合 -> 松耦合),
實現程式的:
可維護 —— 只要改要改的字
可復用 —— 這次用了下次還可以用
可擴充套件 —— 如需新增字(新增功能),只需另刻字加入即可
靈活性好 —— 活字的位置可以隨意移動
3.簡單工廠類(物件生成工廠) —— 解決物件的建立問題
專門用來(有選擇性地)例項化物件的類
4.策略模式—— 用來封裝演算法,簡化了單元測試,因為每個演算法都有自己的類,可以通過自己的介面作單獨測試。
5.策略模式 + 簡單工廠
策略模式是用來封裝演算法的,
簡單工廠是用來生成物件的,
當需要在不同條件下使用不同策略(演算法)的時候,採用 策略模式 + 簡單工廠 來做,可以大大簡化客戶端的**量(表現上是使用類的數量減少了) ,
plus:
這種設計模式實際上也是貫穿了mvc思想:
將1.具體的演算法實現(資料模型)operationadd,
2.呼叫(控制器)operationfactory
3.客戶端(檢視)operationmain
相分離,降低了耦合度,利於每個模組的單獨測試,以及今後的功能拓展
參考:《大話設計模式》 程杰
設計模式學習筆記(1)
概述部分 一 設計模式的概念 1 設計模式包括4個基本要素 模式名稱 問題 解決方案 效果。2 如何描述設計模式 模式名和分類 意圖 該設計模式是做什麼的,它的基本原理和意圖是什麼,它解決的是什麼樣的特定設計問題 別名 其它名稱 動機 提出乙個設計問題,並且用該模式中的類 物件來描述如何解決此問題 ...
設計模式學習筆記 1
針對介面程式設計,而不是針對實現程式設計 優先使用物件組合,而不是類繼承 分裝變化點 使用重構得到模式 不要把設計模式當成技巧 單一職責原則 乙個類應該僅有乙個引起它變化的原因。file fileinfo 開發封閉原則 類模組應該是可擴充套件的,但不可修改的 對擴充套件開放,對更改封閉 為什麼不可修...
設計模式筆記1 簡單工廠模式
1.複製和復用 已經完成了專案a,還需要完成專案b,並且專案a和專案b所實現的功能有很多想同之處時,如果直接將專案a的 複製到專案b去是非常不妥的行為,隨著工程量的加大,維護時將會成為一場災難。正確的做法應該是將專案a的功能分離開來,降低專案a的耦合性,然後可以在專案b中使用一部分專案a中的功能,差...