寫在前面
前段時間一直在學習架構設計的相關知識,對架構的演化有了一點點自己的理解,本篇是我的架構入門總結,21年年初應該會接觸一些專案拆分的作業,也希望學到的內容可以應用于實踐,本文未來還會補充更多細節,
架構是什么
這是我讀阿里技術博客的一篇文章總結的:

為什么需要架構設計呢?或者說架構設計為什么這么重要呢?
架構設計的主要目的不是為了拆分任務,不是為了實作業務需求,甚至不是為了實作高性能和高可靠的系統,
架構設計的主要目的是為了解決系統復雜度帶來的問題,
架構的一般需求
高性能,高可用,可擴展
架構的演化流程
單機部署->動靜分離->集群化->讀寫分離->分庫分表->垂直拆分->微服務->引入訊息佇列
架構設計原則
李運華大佬總結的原則:

縱觀淘寶的發展,也能看到類似的架構設計原則,過早優化是萬惡之源,架構設計是門取舍的藝術,
架構設計方法論
我自己設計的架構設計方法論:先頭腦風暴,再權衡利弊,再挑best one,詳細來說,就是包含如下幾個流程:
1.看下公司體量,理解清除業務(領域驅動),理清楚業務的復雜度,
2.根據業務抽象出架構的框架,弄清楚為了實作業務帶來的系統復雜度,
3.找到公司里已經使用的技術,包括自研技術和開源技術,
4.根據每個技術的特點進行設計,以及綜合根據業務的場景和未來半年時間可能達到的量等考量,進行設計,
5.設計三個方案,進行優劣分析,然后綜合別人的意見選出最棒的方案,
對架構師的要求
李運華說,架構師的內功主要包括判斷力(準確判斷系統復雜度),執行力(用合適的方案解決問題),創新力(創造新的方案解決復雜問題),
因此在成長為架構師的程序中,要不斷積累經驗(10000小時理論),拓寬視野(泡腦子的程序),深度思考(歸納總結,舉一反三),(PS:學習成長也是這個道理,貼一張今天技術群剛剛討論的結論)

此外,要成為架構師,還需要這十二項修煉Java程式員必備的12項軟技能
參考資料
《大型網站技術架構》
《從0開始學架構》
《淘寶技術這十年》
《架構設計:大型互聯網架構演化簡史》
《軟體架構師12項修煉》
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/241987.html
標籤:其他
