軟體架構師是指在軟體專案開發過程中,根據客戶的需求以及行業市場等需求將所開發的軟體,根據客戶的需求以及行業市場的需求將軟體所要實現的需求功能轉換為規範的軟體開發計畫及文字,將將軟體開發過程中所涉及的流傳的流程與架構進行設計和管理,制定專案的總體架構並指導整個開發團隊實施的專業人員。是主導系統全域性分析設計和實施、負責軟體構架和關鍵技術決策的人員。
什麼是架構?
架構是乙個有些抽象的詞彙,但轉到其他行業或許會更容易理解。如古代朝廷的**體系三省六部制、或者公司的部門分工等等,由乙個個部分有機組成整體的概念有點類似架構的概念。比如乙個遠古部落,有男有女。這時候人們需要衣服以及食物,於是人們開始分工,男人出去打獵獲取食物,而女人負責制衣等等形成了鮮明的分工,對每個角色有針對性的進行切分並有聯絡,最後有機的合併成為乙個整體概念,這就形成了最簡單的體系或模擬為架構。若男女沒有分工而是一同打獵,或者說是一同製衣這樣的糟糕安排無疑是一種對人力的浪費,這也是架構需要解決的問題,即提高效率,增強穩定性,並在效率和穩定之中尋找乙個最優的方案。
架構其實就是指人們主動認識、解決問題的乙個過程,對問題進行切分、合併並解決這個問題的實踐活動。
架構實際上解決的是人的問題
作為軟體夠誠實或者架構師,我們大部分時間是要去解決別人的問題。「別人」是誰,是只得好好思考的,這才是問題的主體。明白了主體,這個主體就自然會帶來很多邊界約束,後續問題就能夠出來了。由此可見,找出問題的主體,是做架構的首要問題。我們要解決的問題,一定是人的問題。架構師要解決的,基本都是別人的問題,不是自己的問題。任何找上架構師的問題,絕對都不是真正的問題,因為如果是真正的問題,提問題過來的人肯定能夠自己解決了。對於架構師來說,發現問題永遠都比解決問題來的更加重要。
在識別出事誰的問題之後,會發現大部分情況下,問題都迎刃而解。很多時候問題的產生都是因為溝通的誤解,或者主觀上有很多不必要的利益訴求導致的。但是總是有部分確實是有問題的,需要做調整,那麼就必須要所有動作,做相應的調整。這個調整就是架構的切分。切分調整都是對相關人的利益的調整。因為維護自己的利益,是每乙個人的本性,是在骨子裡面的。社會發展,每個人都希望能夠把自己的利益最大化。對弈乙個人幹所有事,分工可以讓大家都能夠得到更過,也產生了乙個相互依賴的社會,相互之間誰都離不開誰。那麼究竟該怎麼切分呢?
架構的切分
切分是利益的調整,對於古代帝王來說,自己乙個人的權力太大就無法治理好整個天下,因為個人能力有限,因此,如何切分分配權力是歷代帝王頭疼的乙個問題。而軟體架構也是如此,不切分就會冗餘而複雜。
而切分的原則有幾點:
1. 必須在連續時間內發生的乙個活動,不能切分。
2.切分出來的部分的負責人,對這個部分的權利和義務必須是對等的。
3. 切分出來的部分,不應該超出乙個自然人的負載。
4. 切分是內部活動,內部無任怎麼切,對整個系統的外部應該是透明的。
而所有的架構切分整體都應該是乙個樹狀圖,而不是有向圖或者無向圖。由整體切分為乙個個大部分,然後再切分為乙個個小部分。然後大問題就成了乙個個小問題,因此可以分配給能力不同的個人去完成。而切分忌諱人的負載太重,而應使得每個執行者的權責對等,每個人可以對自己的部分負責,而對於乙個總體樹狀圖的架構切分來說,層數越多則必定溝通越多,則效率越低,所以分層越少越好,盡可能的變成平衡樹,才能使效率最大化。
必須要有足夠的自信,且要及時發現是誰的問題,不只是要會溝通,更要有技術。
軟體架構師如何工作
通過閱讀構架漫談,軟體架構師工作需要了解一下幾個方面 首先要理解什麼是架構,為什麼需要架構 架構是規劃 設計和建造建築物和其他物理結構的過程和產物。人們完成一項任務,因為每個人的能力不同,所擅長的方向不同,所以如果自己去完成一項任務一般要花費很長的時間,效率很低,但是人們對目標有更高的要求,所以需要...
軟體架構師如何工作
要理解軟體架構師如何工作,在閱讀了架構漫談九篇部落格後,不妨先來看看架構是什麼。內容如下 1.根據要解決的問題,對目標系統的邊界進行界定。2.並對目標系統按某個原則的進行切分。切分的原則,要便於不同的角色,對切分出來的部分,並行或序列開展工作,一般並行才能減少時間。3.並對這些切分出來的部分,設立溝...
軟體架構師如何工作
軟體架構師如何工作 閱讀了王概凱老師的架構漫談九篇部落格,從中了解到了什麼是架構 什麼是軟體架構師以及軟體架構師應如何工作。軟體架構師首先要搞明白問題的主體,之後把問題進行拆分形成架構,是工作人員的效率更高。架構師還必須要明白,所給出的解決方案 架構的分拆 合併方案,只有讓問題的主體的權責對等,才能...