回覆列表
  • 1 # 使用者9686238245148

    主要是管理與技術兩方面的能力,管理與技術兩手都要硬,而技術是基礎。技術不行、退化了,那隻好做 PPT 架構師、首席佈道師之類的。技術能力軟體架構師是一位具有一定技術、產品、專案和團隊等管理能力的高階程式設計師(程式設計高手),通常是一個開發團隊裡面技術最牛(或者比較牛)的少數幾個人之一。架構師自身的技術水平和管理水平不行,常常會把團隊帶溝裡,重要性可想而知。成為架構師需要較長時間的一線開發經驗的積累。單純看工作年限,一般 3-5 年可成為初級架構師,5-8 年可成為中級架構師,8-10 年以上可成為高階軟體架構師,當然這只是大致的估計,具體達到何種水平還要看架構師的實際能力。經年累月,摸爬滾打,一位優秀的軟體架構師需要掌握的技術能力很多,先說幾個最基本的。建模軟體開發領域的建模能力,主要是指抽象的思考能力。普通碼農通常用程式碼思考,負責一個系統中的幾個小模組,所以思維常常侷限在低層(low-level)、戰術(tactic)的層面,考慮的基本上大多是某個功能、某個模組實現的具體細節與技巧。這是應該而且正常的,是團隊合理分工的結果。而架構師,顧名思義,要負責整個系統的架構,尤其是涉及到一個系統(或子系統)全域性的整體設計,所以往往需要高層、上層(high-level)的戰略(strategic)層面的思考,這樣就必然需要架構師經常進行建模(Modeling),對程式碼、模組、子系統和系統中的各種靜態結構、關係和動態行為、互動等等進行抽象。所以,在架構師的日常工作中,經常看到各種各樣的圖表、圖形符號和模型,是很正常的。可以說,不會建模,不習慣於用模型思考的程式設計師,是很難成為一名稱職的軟體架構師的。系統分析與設計前面已經說了,系統分析與設計(System Analysis and Design)的主要技術手段是建模,兩者是高度重合的。程式設計的四門功課上圖畫的是任何軟體開發、軟體工程必然離不開的四門基本功課(四項基本活動或任務):1、需求分析2、設計實現3、測試驗證4、除錯糾錯把這四項活動連起來正好組成一個菱形,所以我也把它們叫作“程式設計之鑽”(The Programming Diamond)。這四門功課既可以看作是一個團隊在整個專案開發過程中所連續從事的必不可少的四項基本活動(團隊層面),也可以看作是一名程式設計師在日常開發中為了實現一個需求而需要完成的必不可少的四項基本任務(個體層面)。從一個功能的需求分析,到程式設計、編碼實現,再到測試確認這個功能的完成,以及發現錯誤後進行除錯定位、程式碼修改、設計重構或最佳化,再次進行測試和確認,通過後再選擇下一個需求進行分析,如此週而復始。。。這四個基本動作正好構成一個功能開發的小迴圈,也是每個程式設計師日常工作的標準核心動作。那麼,為什麼普通碼農的開發不如程式設計高手,總是比別人慢,往往也不如別人的好?可能有許多種原因。有一個比較簡單的辦法能幫你找到開發的瓶頸:評估一下以上這四項任務在你的日常開發中的時間佔比。我這 20 年的觀察是,國內許多碼農的開發效率低、質量不高,是因為他們往往在 Coding、Debugging 上花去了大量時間(人稱 code-and-fix),而在“程式設計之鑽”的需求分析、自動測試、架構設計等其他幾個重要方面往往草草帶過,佔比明顯不平衡。什麼原因?因為許多人不知道怎麼有效率、高質量地去做需求分析、自動測試、架構設計以及除錯除錯,以為只有 Coding(程式語言的語法技巧和框架 API 如何使用等)最重要,忽視了其他的軟體工程關鍵實踐,於是導致個人整體的開發速度和質量降低,老是提不上去。而這又是什麼原因造成的?因為一方面“軟體工程無用論”長期存在,加上浮躁和急功近利的社會風氣,影響了人們的觀念和意識,導致追求短平快、糙快猛;而另一方面僅透過大學短短的四年,常常很難全面、紮實地學到並掌握“程式設計之鑽”的關鍵技術,而工作以後又常常忙於加班應付、各種趕工期,缺少足夠的時間來學習提高自己的開發水平。。。。

  • 中秋節和大豐收的關聯?
  • 感覺自己壓力有些大,該怎麼辦?