成為架構師是每個程式設計師的夢想,但並不意味著把程式設計做好就能夠自然而然的成為乙個架構師,優秀的程式設計師和架構師之間還有乙個明顯的鴻溝需要跨越,這個鴻溝就是「不確定性」
架構設計並沒有像程式語言那樣的語法約束,更多的時候是面多多種可能時的「選擇」
例如:但存在共性原則:合適原則、簡單原則、演化原則
合適優於業界領先。優秀人才的技術情節導致各種以先進技術主導的創業失敗,原因有:
將軍難打無兵之仗(人數)
羅馬不是一天建成的(積累)
冰山下面才是關鍵(業務)
所以真正的優秀架構都是在企業當前人力、條件、業務等各種約束下設計出來的。bat的架構師到小公司沒有了大公司的資源、平台、積累和業務,只照搬大公司的做法和技術即會失敗!
簡單優於複雜。軟體領域複雜度體現兩個方面:
如果簡單和複雜的都能滿足需求,最好選擇簡單的方案!
演化優於一步到位。軟體架構同建築架構相似,但建築不可變,軟體可變。
例如:windows的演化、android的發展。
軟體架構類似於大自然「設計」的乙個生物,通過演化適應環境,逐步變得強大。
首先滿足當前需要
不斷迭代保留,不斷完善
業務變化時,架構擴充套件、重構、甚至重寫。
不要貪大求全,分析清楚自身業務特點,快速落地,不斷完善演化。
從零開始學架構 李運華 03 架構設計的目的
架構設計的誤區 系統不一定需要架構設計 架構設計不一定能提公升開發效率 好的架構設計能促進業務發展 不是所有系統都需要架構設計 等等 架構設計的真正目的 為了解決軟體複雜度帶來的問題 如何下手架構設計?1.熟悉和理解需求 2.架構設計並不是面面俱到,而是識別問題有針對性的解決 3.理解每個架構方案背...
從零開始學架構 李運華 02 架構設計的歷史背景
機器語言 1940年之前 用0和1來表示機器可識別的指令和資料。太難寫 太難讀 太難改 組合語言 20世紀40年代 符號語言,本質上面對機器,需要程式設計師將現實世界問題按照機器邏輯進行翻譯,編寫複雜!高階語言 20世紀50年代 早期 fortran lisp cobol等 高階語言可以讓程式設計師...
從零開始學架構 李運華 07 低成本 安全 規模
高效能和高可用架構通常都是增加伺服器來滿足要求,但低成本正相反,當然也不是首要目標。往往 創新 才能達到低成本的目標!技術創新 業界創新 小公司引入新技術 大公司可創造新技術。安全舊聞 安全分兩類 例如常見的xss攻擊 csrf攻擊 sql注入 windows漏洞 密碼破解等,本質上都是系統實現有漏...