今天看到一篇題為《從程式員到軟體設計師的過程》的文章,裡面提到軟體設計師的一些要求、如何從程式員變為軟體設計師以及什麼樣的人適合向軟體設計師的角色發展。寫得比較全面,簡要摘錄一下軟體設計師的要求:
1、 多年編程經驗。
對於一個構架團隊,這些素質要求可由各團隊成員來分別承擔,但其中至少要有一名構架設計師能夠把握項目的全域。軟體設計不是紙上談兵,一個軟體設計師首先要是非常好的程式員。做軟體設計的時候,肯定要求是可實施和可測試的,如果沒有做過程式員,就無法保證這個設計是可實施並進行測試。
2、 抽象能力
一個程式員剛寫程式的時候,無非就是為瞭解決某個功能而進行代碼編寫。隨著程式編寫越來越多,他對自己所做的應用方面的理解也越來越多。不同的企業有不同的需求,但把這些企業放在一起來看的話,就會發現他們的一些共性。將這些共性提煉出來,這就是抽象的過程。抽象出來的共性形成的模型可以把這些企業的需求都包含進去,這是做通用軟體必須要走的一步。
3、物件導向的思想:物件導向是軟體開發出現以來最偉大的創新之一,這是每個程式員都追求的,但是否真正掌握了物件導向的思想,這是需要探討的。物件導向並不受開發工具和語言的限制。物件導向可以應用的領域非常廣泛。不僅在寫代碼的過程中要考慮到物件導向,實際上在設計和分析階段也可以用物件導向的方法。
4、捨得拋棄:軟體設計是一個漸進過程,是通過不斷碰壁,不斷調整提高的。要想取得突破,就需要捨得拋棄。很多人不捨得扔掉自己的代碼的,往往是不斷的修改,最後進入一個惡性的迴圈。當然,這種拋棄也是有繼承的拋棄,不同時期產品的架構之間也有連續性,不是一個架構就會完全取代前面的架構,好的東西還是可以繼承的。
5、領悟和突破:程式員技術成長一種是通過學習技巧而成長,一種是通過思想領悟而得到成長,後者更為重要。如果不能領悟開發的思想,僅僅掌握了技巧,一旦改換了平台和語言,又要從頭學起,所以很多人在轉型過程中失敗了。而掌握了編程的思想,自動就移過去了。廖恒毅表示:“語言本身從來不對我產生任何障礙,各種語言沒有任何本質的差別,就象練武一樣,刀背也可以當鎚子用。”
更詳細的內容,請參看作者原文章:
http://sd.csdn.net/n/20060713/92595.html