版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、程序員成長(zhǎng)系列之,從程序員到軟件設(shè)計(jì)師,軟件技術(shù)發(fā)展到今天,分工越來(lái)越細(xì)。程序員作為一 個(gè)通用稱謂已經(jīng)無(wú)法確切定義各種工作的性質(zhì)和特點(diǎn)。因 為軟件開(kāi)發(fā)中各種職責(zé)區(qū)分不清,無(wú)論是剛剛寫(xiě)代碼的新 手還是具有多年經(jīng)驗(yàn)的老手,一概被扣上程序員的通用名 稱,這也使得很多進(jìn)入這個(gè)領(lǐng)域的軟件開(kāi)發(fā)人員無(wú)法制訂 自己未來(lái)的職業(yè)發(fā)展之路。 實(shí)際上,軟件公司也認(rèn)識(shí)到了對(duì)程序員分類的重要性 開(kāi)始將各種職位定義得更加準(zhǔn)確。對(duì)于從事軟件開(kāi)發(fā)的程 序員來(lái)說(shuō),更需要盡快明確自己的發(fā)展方向,并在此方向 上將專業(yè)知識(shí)積累得更深厚,這才能盡快擺脫對(duì)未來(lái)發(fā)展 方向的迷茫。,從程序員到軟件設(shè)計(jì)師,程序員成長(zhǎng)方向,程序員,軟件設(shè)計(jì)師,測(cè)
2、試工程師,文檔工程師,產(chǎn)品經(jīng)理,配置管理員,項(xiàng)目經(jīng)理,軟件設(shè)計(jì)師可以構(gòu)建軟件結(jié) 構(gòu),如同建筑架構(gòu)師一般。 比爾 蓋茨被稱為微軟公司的首席軟件 設(shè)計(jì)師,中國(guó)同樣需要這樣的人 才。 微軟大中國(guó)區(qū)總經(jīng)理黃存義,從程序員到軟件設(shè)計(jì)師,2000年1月13日下午,世界軟件業(yè)巨人、美國(guó)微軟公 司突然在位于華盛頓州雷德蒙德市的總部舉行新聞發(fā)布 會(huì)。比爾蓋茨把微軟CEO寶座拱手讓給長(zhǎng)期伙伴史蒂 夫巴爾默,只保留董事局主席一職,但同時(shí)出任新職務(wù) “首席軟件設(shè)計(jì)師”。比爾蓋茨說(shuō):“今后我將全力設(shè) 計(jì)開(kāi)發(fā)面向未來(lái)的新軟件,同時(shí)研究制定微軟的總體技術(shù) 發(fā)展戰(zhàn)略。”比爾蓋茨的這一舉動(dòng)給軟件設(shè)計(jì)師的稱謂 蒙上了華麗的面紗。
3、從程序員的技術(shù)方向發(fā)展來(lái)看,軟件 設(shè)計(jì)師無(wú)疑是職業(yè)生涯的頂峰。,從程序員到軟件設(shè)計(jì)師,拿破侖說(shuō)過(guò)“不想當(dāng)元帥的士兵不是好士兵”,借用 這句話,不想當(dāng)軟件設(shè)計(jì)師的程序員也不是好程序員。不 過(guò)首先要了解什么是軟件設(shè)計(jì)師,如何才能成為軟件設(shè)計(jì) 師。明了這些,才有可能向軟件設(shè)計(jì)師發(fā)展,創(chuàng)造更輝煌 的程序人生。,從程序員到軟件設(shè)計(jì)師,軟件設(shè)計(jì)師包括軟件系統(tǒng)設(shè)計(jì)師(System Designer)和 軟件架構(gòu)設(shè)計(jì)師(Architect)。,軟件設(shè)計(jì)師的定義,軟件設(shè)計(jì)師,軟件系統(tǒng)設(shè)計(jì)師,軟件架構(gòu)設(shè)計(jì)師,系統(tǒng)設(shè)計(jì)師應(yīng)對(duì)“系統(tǒng)結(jié)構(gòu)”所使用的軟件技術(shù)非常了解,自身具備良好編程技巧,才能成為優(yōu)秀的系統(tǒng)設(shè)計(jì)師。系統(tǒng)設(shè)
4、計(jì)師的職責(zé)是把結(jié)構(gòu)模型對(duì)應(yīng)到實(shí)現(xiàn)模型上,從概念到實(shí)現(xiàn)期間規(guī)劃和組合模型的優(yōu)劣是決定軟件系統(tǒng)設(shè)計(jì)師好壞的標(biāo)準(zhǔn)。 軟件架構(gòu)設(shè)計(jì)師是程序員技術(shù)方向的最終歸屬,也是成長(zhǎng)鏈中最神圣的一環(huán),架構(gòu)設(shè)計(jì)師的貢獻(xiàn)最大。架構(gòu)設(shè)計(jì)師徹底擺脫了語(yǔ)言的束縛,知道軟件發(fā)展趨勢(shì)。他們會(huì)開(kāi)發(fā) 新一代產(chǎn)品或者制定新一代產(chǎn)品的方案。軟件架構(gòu)設(shè)計(jì)是面向未來(lái)的。全球大規(guī)模的軟件公司并不多,很重要的一個(gè)原因是軟件產(chǎn)品的發(fā)展都滯后于市場(chǎng)需求,即有需求后再研發(fā)產(chǎn)品,而不是預(yù)見(jiàn)需求,預(yù)先設(shè)計(jì),因此往往軟件設(shè)計(jì)局部是合理的,但從整體的角度看卻不合理。要解決這些問(wèn)題就要看的能力了。,從程序員到軟件設(shè)計(jì)師,軟件設(shè)計(jì)可以分三個(gè)層次。 第一層屬于標(biāo)準(zhǔn)
5、層,像J2EE、.NET的框架設(shè)計(jì); 第二種屬于系統(tǒng)層的設(shè)計(jì),比如Delphi這樣的開(kāi)發(fā)工具就是工具系統(tǒng)級(jí)的設(shè)計(jì); 而應(yīng)用最廣泛的是第三層:應(yīng)用軟件設(shè)計(jì)?;谥袊?guó)軟件產(chǎn)業(yè)發(fā)展的現(xiàn)狀,大部分設(shè)計(jì)都是這個(gè)層次上的基于應(yīng)用的架構(gòu)設(shè)計(jì),本文非特殊標(biāo)明,提到的軟件設(shè)計(jì)師泛指應(yīng)用軟件系統(tǒng)設(shè)計(jì)師,當(dāng)然有些也是架構(gòu)設(shè)計(jì)師的能力所在。,軟件設(shè)計(jì)的三個(gè)層次,從軟件開(kāi)發(fā)歷史看,軟件設(shè)計(jì)經(jīng)歷了很多階段。最早是結(jié)構(gòu)化設(shè)計(jì),只是把復(fù)雜的問(wèn)題逐層分解,通過(guò)流程圖形式將任務(wù)標(biāo)明,提到的軟件設(shè)計(jì)師泛指應(yīng)用軟件系統(tǒng)設(shè)逐級(jí)細(xì)化;后來(lái)出現(xiàn)面向?qū)ο笤O(shè)計(jì),從底層進(jìn)行對(duì)象封裝、繼承、多態(tài),這時(shí)更多的是考慮代碼重用, 面向的主要是類和對(duì)象。
6、接下來(lái)出現(xiàn)組件設(shè)計(jì),這主要是面向應(yīng)用方面。這三種都是面向功能的設(shè)計(jì)。 從EJB、COBRA技術(shù)出現(xiàn)之后,人們開(kāi)始基于框架進(jìn)行設(shè)計(jì),也就是架構(gòu)設(shè)計(jì)。繼續(xù)發(fā)展,就是基于規(guī)則的設(shè)計(jì)了,比如基于模塊和工作流的設(shè)計(jì),這時(shí)主要將客戶化做的更詳細(xì)以及考慮開(kāi)放性、可擴(kuò)展性、可靠性、效率方面的問(wèn)題。,從程序員到軟件設(shè)計(jì)師,軟件設(shè)計(jì)師的工作 隨著大型軟件開(kāi)發(fā)越來(lái)越多,整體把握軟件架構(gòu)變的 越來(lái)越重要。尤其當(dāng)用戶需求并不明確的情況下,就要開(kāi) 始做軟件,如何防止交付的軟件產(chǎn)品與用戶的要求距離很 遠(yuǎn),這就需要軟件系統(tǒng)設(shè)計(jì)師進(jìn)行恰當(dāng)?shù)脑O(shè)計(jì)。 在應(yīng)用軟件開(kāi)發(fā)中,軟件設(shè)計(jì)師擔(dān)當(dāng)承上啟下的角色 也就是把用戶的需求,基于應(yīng)用的問(wèn)
7、題變成計(jì)算機(jī)系統(tǒng)中 可以解決的問(wèn)題。設(shè)計(jì)可以分為功能上的設(shè)計(jì)和技術(shù)體系 上的設(shè)計(jì),但在實(shí)際工作中,這兩者很難區(qū)分清晰。,從程序員到軟件設(shè)計(jì)師,軟件設(shè)計(jì)師的周圍有很多角色,應(yīng)用專家對(duì)應(yīng)用需求 分析了解的更深。還有技術(shù)平臺(tái)的專家,盡管設(shè)計(jì)師對(duì)技 術(shù)平臺(tái)有一定的了解,但對(duì)于細(xì)節(jié)的內(nèi)容還要請(qǐng)教技術(shù)平 臺(tái)專家。程序員做出原型并進(jìn)行驗(yàn)證也是必不可少的,這 樣才能通過(guò)反饋和評(píng)估不斷完善。,從程序員到軟件設(shè)計(jì)師,做為應(yīng)用軟件開(kāi)發(fā)中最頂層的角色,軟件設(shè)計(jì)師需要各 方面的能力更強(qiáng),除了具備更強(qiáng)的編程技巧能力外,還 需要了解系統(tǒng)結(jié)構(gòu)、主流軟件技術(shù)和軟件趨勢(shì),同時(shí)要 具備相當(dāng)?shù)膶I(yè)知識(shí)。 多年編程經(jīng)驗(yàn) 抽象能力 面向
8、對(duì)象的思想 舍得拋棄 領(lǐng)悟和突破 非軟件知識(shí),軟件設(shè)計(jì)師的要求,多年編程經(jīng)驗(yàn): 既包括在專業(yè)領(lǐng)域的經(jīng)驗(yàn),也包括在軟件工程 領(lǐng)域的經(jīng)驗(yàn)。對(duì)于一個(gè)構(gòu)架團(tuán)隊(duì),這些素質(zhì)要求可 由各團(tuán)隊(duì)成員分別承擔(dān),但其中至少要有一名構(gòu)架 設(shè)計(jì)師能夠把握項(xiàng)目的全局。和任何行業(yè)一樣,經(jīng) 驗(yàn)是最重要的。軟件設(shè)計(jì)不是紙上談兵,一個(gè)軟件 設(shè)計(jì)師首先要是非常好的程序員。軟件設(shè)計(jì)師在編 程的時(shí)候,用的工具和普通程序員沒(méi)有任何差別, 但使用深度是絕對(duì)不一樣的。,從程序員到軟件設(shè)計(jì)師,.,抽象能力: 一個(gè)程序員剛寫(xiě)程序的時(shí)候,無(wú)非就是為了 解決某個(gè)功能而進(jìn)行代碼編寫(xiě)。隨著程序編寫(xiě)越 來(lái)越多,他對(duì)自己所做的應(yīng)用方面的理解也越來(lái) 越多。不
9、同的企業(yè)有不同的需求,但把這些企業(yè) 放在一起來(lái)看,就會(huì)發(fā)現(xiàn)他們的一些共性。將這 些共性提煉出來(lái),這就是抽象的過(guò)程。抽象出來(lái) 的共性形成的模型可以把這些企業(yè)的需求都包含 進(jìn)去,這是做通用軟件必須要走的一步。,從程序員到軟件設(shè)計(jì)師,.,面向?qū)ο蟮乃枷耄?面向?qū)ο笫擒浖_(kāi)發(fā)出現(xiàn)以來(lái)最偉大的創(chuàng)新 之一,這是每個(gè)程序員都追求的,但是否真正掌 握了面向?qū)ο蟮乃枷?,這是需要探討的,面向?qū)?象并不受開(kāi)發(fā)工具和語(yǔ)言的限制。很多程序員在 用C+寫(xiě)面向?qū)ο蟠a時(shí),實(shí)際上還是在寫(xiě)C代碼。 甚至使用C這種完全面向?qū)ο蟮恼Z(yǔ)言寫(xiě)出來(lái)的還 是流程化的程序。面向?qū)ο罂梢詰?yīng)用的領(lǐng)域非常 廣泛。不僅在寫(xiě)代碼的過(guò)程中要考慮到面向?qū)ο?/p>
10、, 在設(shè)計(jì)和分析階段也要用到面向?qū)ο蟮姆椒ā?從程序員到軟件設(shè)計(jì)師,.,舍得拋棄: 軟件設(shè)計(jì)是一個(gè)漸進(jìn)過(guò)程,是通過(guò)不斷碰壁,不斷調(diào)整提高的。要想取得突破,就需要舍得拋棄。 很多人舍不得扔掉自己的代碼,往往是不斷的修改,最后進(jìn)入一個(gè)惡性的循環(huán)。當(dāng)然,這種拋棄 也是有繼承的拋棄,不同時(shí)期產(chǎn)品的架構(gòu)之間也有 連續(xù)性,不是一個(gè)架構(gòu)就會(huì)完全取代前面的架構(gòu), 好的東西還是可以繼承的,像微軟的.NET架構(gòu)就是 從DNA架構(gòu)上發(fā)展來(lái)的。,從程序員到軟件設(shè)計(jì)師,.,領(lǐng)悟和突破: 程序員技術(shù)的成長(zhǎng)可以通過(guò)學(xué)習(xí)技巧而成長(zhǎng), 也可以通過(guò)思想領(lǐng)悟而得到成長(zhǎng),后者更為重要。 如果不能領(lǐng)悟開(kāi)發(fā)的思想,僅僅掌握了技巧,一旦
11、改換了平臺(tái)和語(yǔ)言,又要從頭學(xué)起,所以很多人在 轉(zhuǎn)型過(guò)程中失敗了。而掌握了編程的思想,自動(dòng)就 移過(guò)去了。 即便是很小的軟件,也可以鍛煉突破性的編程 思維。一種基本的設(shè)計(jì)原則和思路就是程序設(shè)計(jì)千 萬(wàn)不要回溯,否則就會(huì)崩潰,這是多少人腦袋碰墻 多少次之后才明白的。,從程序員到軟件設(shè)計(jì)師,.,非軟件知識(shí): 提起軟件設(shè)計(jì)師,人們很喜歡拿建筑師做比較,的確這兩個(gè)行業(yè)有很多相似之處。古羅馬建筑師維特魯威說(shuō)“理想的建筑師應(yīng)該既是文學(xué)家又是數(shù)學(xué)家,他還應(yīng)通曉歷史,熱衷于哲學(xué)研究,精通音樂(lè),懂得醫(yī)藥知識(shí),具有法學(xué)造詣,深諳天文學(xué)及天文計(jì)算。”軟件設(shè)計(jì)同樣如此。,從程序員到軟件設(shè)計(jì)師,.,向軟件設(shè)計(jì)師發(fā)展 當(dāng)然,并不是每一個(gè)程序員都適合向軟件設(shè)計(jì) 師角色發(fā)展的。除了自身的努力之外,還同所處的 環(huán)境有很大的關(guān)系,如果只是幾個(gè)人的小公司,對(duì) 軟件設(shè)計(jì)的要求不明確,自然也就無(wú)法得到鍛煉。 只有早期接觸到比較大的軟件開(kāi)發(fā)環(huán)境才能從中學(xué) 到很多東西。,從程序員到軟件設(shè)計(jì)師,.,不過(guò),即便你是一個(gè)普通的程序
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年電工上崗考試試題及答案(名校卷)
- 2026年湖北工業(yè)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫(kù)附答案
- 2026天津靜慧投資服務(wù)有限公司招聘總成績(jī)筆試模擬試題及答案解析
- 2026年畢節(jié)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)附答案
- 2026山東第一醫(yī)科大學(xué)附屬皮膚病醫(yī)院招聘博士研究生工作人員3人筆試模擬試題及答案解析
- 2026福建省順昌縣國(guó)有林場(chǎng)招聘10人筆試備考試題及答案解析
- 2026福建福州市連江縣融媒體中心招聘3人筆試備考試題及答案解析
- 2025山東濱州市委市政府法律顧問(wèn)選聘20人(公共基礎(chǔ)知識(shí))測(cè)試題附答案
- 2025年馬鞍山和縣經(jīng)濟(jì)開(kāi)發(fā)區(qū)管理委員會(huì)公開(kāi)招聘勞務(wù)派遣制工作人員3名考試歷年真題匯編附答案
- 2026中國(guó)紡織出版社有限公司招聘筆試備考試題及答案解析
- 急性腸系膜淋巴結(jié)炎診療指南(2025年版)
- 體育產(chǎn)業(yè)知識(shí)培訓(xùn)課件
- 2025年高考地理山東卷試卷評(píng)析及備考策略(課件)
- (完整版)設(shè)備安裝工程施工方案
- 2025年電商平臺(tái)運(yùn)營(yíng)總監(jiān)資格認(rèn)證考試試題及答案
- 門(mén)窗質(zhì)量保證措施
- 浙江省2025年初中學(xué)業(yè)水平考試浙真組合·錢(qián)塘甬真卷(含答案)
- 鉆井工程施工進(jìn)度計(jì)劃安排及其保證措施
- (高清版)DB34∕T 5225-2025 風(fēng)景名勝區(qū)擬建項(xiàng)目對(duì)景觀及生態(tài)影響評(píng)價(jià)技術(shù)規(guī)范
- 社區(qū)矯正面試試題及答案
- 《察今》(課件)-【中職專用】高二語(yǔ)文(高教版2023拓展模塊下冊(cè))
評(píng)論
0/150
提交評(píng)論