軟體架構師如何工作(即架構漫談讀後感)
讀完王概凱老師的架構漫談,感覺自己對軟體架構方面的知識了解了一點點。以前都只是聽說軟體架構師特別的厲害,高薪,但是具體說軟體架構師是什麼,具體是做什麼的,自己並沒有多大的乙個觀念。現在看王概凱老師的專欄,希望能讓自己有一些收穫。
1.什麼是架構,為什麼需要架構?
按文章中所說,架構是規劃、設計和建造建築物和其他物理結構的過程和產物。人們完成一項任務,因為每個人的能力不同,所擅長的方向不同,所以如果自己去完成一項任務一般要花費很長的時間,效率很低,但是人們對目標有更高的要求,所以需要提高效率,所以需要將任務進行分割,然後將每一部分交給擅長的人去做,並且並行進行工作,然後再將每一部分進行合併,形成乙個整體,可以大大減少完成任務所需要的時間,並且可以將任務完成地很好,所以需要架構,架構可以提高工作的效率。我覺得架構就是將整體工作按某種原則分為幾個小部分,有不同的角色完成不同的部分,而且每乙個部分之間都能聯絡起來,通過完成每個部分的工作,每個部分配合,完成整體所有的工作。就像乙個家庭一樣,家裡的工作很多,每一位家庭成員都成大 不同的事情,每一位家庭成員之間相互配合,完成乙個家庭的所有事情。完成一件事情需要人的參與,而且想要讓這件事情完成的更好更高效,所以會產生架構。
2. 軟體架構師是個什麼樣的人?
軟體架構師最終目標是解決別人的問題,只專注與解決自己工作的問題沒辦法稱為軟體架構師,為別人的利益服務是架構師的義務。義務與權力是相輔相成的,有為別人利益著想的架構師也必須有領導權力的架構師,架構師作為組織領導,組織內部每個人的權力與義務會得到均等的劃分,每個人都會得到發展。而要做好架構,首先需要識別需要解決的問題,識別出問題了,那麼目標就不難實現,而識別問題的前提就是找出這個問題是誰的,找到這個問題的主題,這樣才可以知道問題的邊界,從而了解真正需要實現的目標是什麼,才能真正的認識到問題是什麼,然後是實現目標。發現問題要比解決問題更重要,如果一味的解決問題,但是並沒有弄清楚問題是誰的,真正的目標是什麼,那麼解決問題只是空談,而架構師的能力很大程度就體現在發現問題源頭上面。
3.架構師需要做好架構切分
需要架構的原因我在前面已經敘述過了,這裡就不多贅述了,做架構切分也是很重要的,按乙個原則去將目標進行切分,然後將每乙個部分都交給擅長的人去做,每乙個部分都是有聯絡的,然後進行整合,從而形成乙個整體。
4. 在硬體上編寫的程式就是軟體,用來控制硬體的行為,而控制硬體使以最初的二進位制編碼實現的,成本非常高,隨著半導體的誕生,程式語言的出現,軟體編寫成本越來越低,人們開始意識到軟體可以節省大量的勞動力,提高成倍的效率,軟體也越來越複雜,開發難度越來越高。讓複雜的軟體開發過程有層次有分工,讓軟體模擬人的大腦去工作提高效率成了軟體架構師的基本工作,有分工就有漸漸地有了分工的標準,然後演變成了架構。
5. 技術、架構以及業務之間的關係:技術在解決業務問題中產生,為了解決業務問題,人們會想出更好的技術來,目的就是獲得更大的利益,業務要解決的問題越來越多越來越複雜,一種技術已經不能滿足解決問題的需要了,需要把多種技術拼接在一起,多個技術共同工作來獲得更大的利益。這裡業務和技術的高效銜接就成為了架構師的主要問題,因為技術不會和業務有直接的關係(一種技術可以適應多種業務),架構師的作用也在這裡體現,架構師有意識的組織和識別不同的技術,來實現業務的目標。
6. 軟體功能越來越多,開發過程越來越複雜,**的編寫也要用架構的思想對部署單元進行責任切分,切分標準就是有無業務邏輯,有業務邏輯的分為一組,無業務邏輯的分為一組,因為含有業務邏輯的部分是業務的核心,所以再對業務邏輯進行細緻的劃分。這樣每個單元相對系統都成了獨立的一部分,使業務的擴充套件和修改成本在可控範圍內。
讀《架構漫談》有感之軟體架構師如何工作
首先,架構師需要根據要解決的問題,對目標系統的邊界進行界定,對目標系統按某個原則進行切分。切分的原則要便於不同的角色,對切分出來的部分並行或者序列展開工作,並對這些切分出來的部分設計溝通的機智,使得這些部分之間進行有機的聯絡,合併組裝成為乙個整體,來完成目標系統的所有工作。作為乙個架構師,應該要學會...
讀軟體漫談,簡述軟體架構師如何工作
軟體架構師如何工作 最近拜讀了王概凱老師的架構漫談分享,自認為對架構的設計有了一點點的小小心得。在這裡談一談對軟體架構師的認識過程 在第一次聽到這個職業名稱的時候,感覺很是高大上,和自己沒有多大的關係,感覺高攀不起,但是在讀了老師的架構漫談之後,感覺軟體架構師神秘不在,觸手可及。架構是人類發展過程中...
漫談架構有感 軟體架構師如何工作
軟體架構師是軟體行業中一種新興職業,工作職責是在乙個軟體專案開發過程中,將客戶的需求轉換為規範的開發計畫及文字,並制定這個專案的總體架構,指導整個開發團隊完成這個計畫。主導系統全域性分析設計和實施 負責軟體構架和關鍵技術決策的人員。架構師的主要任務不是從事具體的軟體程式的編寫,而是從事更高層次的開發...