讀架構漫談有感--軟件架構師如何工作

  這兩天我讀了王概凱寫的架構漫談,他在文章中詳細介紹了什麼是架構、怎樣做好架構、軟件架構如何落地、如何寫好程序等問題。談起架構師許多人都比較陌生這個名詞。他們主要是一個最終確認和評估系統需求,給出開發規範,搭建系統實現的核心構架,並澄清技術細節、掃清主要難點的技術人員。主要着眼於系統的“技術實現”。而想要做好這一份工作其實並不那麼簡單。

  根據架構的定義,要做好架構所首先必須具備的能力,就是能夠正確的認識概念,能夠發現概念背後所代表的問題,進而才能夠認識目標領域所需要解決的問題,這樣才能夠爲做好架構打好基礎。架構師的能力大部分會體現在問題的識別上。當明白了問題的主體,我們纔可能真正的認識問題是什麼。因爲問題的主體是問題的隱含邊界,邊界不確定下來,問題就是不確定的。一旦確定了主體,剩下的就是去搞明白主體有哪些問題。這個就比較直接了,常用的方式就是直接面對主體進行訪談,深入到主體的工作生活當中,體驗並感受這些問題,甚至通過數據的反饋來定位問題。

  在架構漫談中提到過很多遍概念這個名詞,我相信對很多人說,這是很模糊的東西,對於一個物品的概念,我們大多是在長期的生活中有了潛意識,見到杯子就是用來接水的,在往深的想想就是盛放液體的東西,所以具體應該怎麼定義這個東西,會有很大的差距,這就有件事,我們老師在上課時問什麼什麼是桌子,很多人脫口而出四個腿啊之類的,這也是出於常識對這個東西的理解,仔細想想之後對桌子這個東西也會有個不同的概念,只要滿足某一個需要的一個物體的一個功能,從抽象角度來說,就是算是一類物品。回過頭來,根據架構的定義,要做好架構所首先必須具備的能力,就是能夠正確的認識概念,能夠發現概念背後所代表的問題,進而才能夠認識目標領域所需要解決的問題,這樣才能夠爲做好架構打好基礎。因此對於架構,想要做架構的時候,需要理解所做領域的東西。作爲一名軟件結構師也是這樣,對於一個軟件所屬領域,必須要快速進入並掌握這個領域,然後才能夠正確的解決問題。

  作爲軟件架構師,軟甲當然是重中之重,軟件架構的出現也是同樣的。一開始是懵懵懂懂的去寫軟件,後來慢慢的就有意識的去切分,演變成了不同的架構。這個背後的動力也是一樣的,就是提升參與的人的利益,降低成本。導火索也是軟件工程師的任務太重,我們需要把很多工作拆分出來。拆分的原則也是一樣的,如何讓權責一致。同樣,這個拆分也是需要組織架構的調整,來保證架構的落地。
  軟件的本質,其實就是通過把人類的日常工作生活虛擬化,減少成本,提升單個人員的生產力,提升人類自己的利益。軟件工程師的職責在這個浪潮中,不堪重負,自然而然就分拆爲不同的角色,形成了一個獨特的架構體系。這一切的背後,仍然是爲了提升人類自己的利益,解決人類自己的問題。軟件架構師就是爲了更好地完成這個過程。

  最後總結一下,軟件架構師應該承擔起解決業務問題這個角色、應該具備準確識別採用了什麼技術的能力、能夠分清楚業務邏輯之間的本質、具備過硬的語言和技術能力,而這些也是做好一個軟件架構師的必要條件和前提。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章