從程序員到軟件設(shè)計(jì)師_第1頁(yè)
從程序員到軟件設(shè)計(jì)師_第2頁(yè)
從程序員到軟件設(shè)計(jì)師_第3頁(yè)
從程序員到軟件設(shè)計(jì)師_第4頁(yè)
從程序員到軟件設(shè)計(jì)師_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

.@;從程序員到軟件設(shè)計(jì)師從程序員到軟件設(shè)計(jì)師2010-06-2711:15轉(zhuǎn)載自CSDN從程序員到軟件設(shè)計(jì)師(1)軟件產(chǎn)業(yè)發(fā)展到今天,分工越來(lái)越細(xì)。程序員做為一個(gè)通用的稱(chēng)謂已經(jīng)無(wú)法確切定義各種工作的特點(diǎn)和分類(lèi)。正因?yàn)檐浖_(kāi)發(fā)中各種職責(zé)區(qū)分不清,無(wú)論是剛剛寫(xiě)代碼的新手還是具有多年經(jīng)驗(yàn)的老手,一概被扣上程序員的通用名稱(chēng),這也使得很多進(jìn)入這個(gè)領(lǐng)域的軟件開(kāi)發(fā)人員無(wú)法制定自己未來(lái)的技術(shù)職業(yè)發(fā)展之路。實(shí)際上,軟件公司也逐漸認(rèn)識(shí)到了對(duì)程序員分類(lèi)的重要性,開(kāi)始將各種職位定義的更加準(zhǔn)確。對(duì)于從事軟件開(kāi)發(fā)的程序員來(lái)說(shuō),更需要盡快明確自己的發(fā)展方向,并在此方向上將專(zhuān)業(yè)知識(shí)積累的更深厚,這能讓你盡快逃脫對(duì)未來(lái)發(fā)展方向的迷茫。為此,我們專(zhuān)門(mén)推出程序員成長(zhǎng)系列的特別策劃,將分別深入探討軟件設(shè)計(jì)師、測(cè)試工程師、文檔工程師、項(xiàng)目經(jīng)理、產(chǎn)品經(jīng)理幾種角色的成長(zhǎng)之路。程序員成長(zhǎng)系列之一軟件設(shè)計(jì)師可以預(yù)先構(gòu)建軟件結(jié)構(gòu),如同建筑架構(gòu)師一般。比爾·蓋茨被稱(chēng)為微軟公司的首席軟件設(shè)計(jì)師,首先是因?yàn)樗且粋€(gè)優(yō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ì)師的稱(chēng)謂蒙上了高貴的面紗。從程序員的技術(shù)方向發(fā)展來(lái)看,軟件設(shè)計(jì)師無(wú)疑是職業(yè)生涯的頂峰。拿破侖說(shuō)過(guò)"不想當(dāng)元帥的士兵不是好士兵",我想不想當(dāng)軟件設(shè)計(jì)師的程序員也不是好程序員。但首先要了解什么是軟件設(shè)計(jì)師,如何才能成為軟件設(shè)計(jì)師。明了這些,就有可能向軟件設(shè)計(jì)師發(fā)展,創(chuàng)造更輝煌的程序人生?;谶@些想法,我們采訪了佳軟CTO廖恒毅,用友軟件副總工程師彭六三和U8產(chǎn)品總設(shè)計(jì)師鄧適宜,這些中國(guó)軟件產(chǎn)業(yè)技術(shù)帶頭人從他們的切身體會(huì)談了對(duì)軟件設(shè)計(jì)師的看法。軟件設(shè)計(jì)師的定義軟件設(shè)計(jì)師包括軟件系統(tǒng)設(shè)計(jì)師(SystemDesigner)和軟件架構(gòu)設(shè)計(jì)師(Architect)。系統(tǒng)設(shè)計(jì)師應(yīng)對(duì)"系統(tǒng)結(jié)構(gòu)"所使用的軟件技術(shù)非常了解,自身具備良好編程技巧,才能成為優(yōu)秀的系統(tǒng)設(shè)計(jì)師。系統(tǒng)設(shè)計(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è)原因是因?yàn)檐浖a(chǎn)品的發(fā)展都滯后于市場(chǎng)需求,即有需求后再研發(fā)產(chǎn)品,而不是預(yù)見(jiàn)需求,預(yù)先設(shè)計(jì),因此往往軟件設(shè)計(jì)局部是合理的,但從整體的角度看卻不合理。要解決這些問(wèn)題就要看軟件架構(gòu)設(shè)計(jì)師的能力了。軟件設(shè)計(jì)可以分三個(gè)層次。第一層屬于標(biāo)準(zhǔn)層,像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ì)師的能力所在。從軟件開(kāi)發(fā)歷史看,軟件設(shè)計(jì)經(jīng)歷了很多階段。最早是結(jié)構(gòu)化設(shè)計(jì),只是把復(fù)雜的問(wèn)題逐層分解,通過(guò)流程圖形式將任務(wù)逐級(jí)細(xì)化;后來(lái)出現(xiàn)面向?qū)ο笤O(shè)計(jì),從底層進(jìn)行對(duì)象封裝、繼承、多態(tài),這時(shí)更多的是考慮代碼重用,面向的主要是類(lèi)和對(duì)象。接下來(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ì)以及產(chǎn)品的開(kāi)放性、可擴(kuò)展性、可靠性、效率方面的問(wèn)題。軟件設(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ì)。從程序員到軟件設(shè)計(jì)師(2)在應(yīng)用軟件開(kāi)發(fā)中,軟件設(shè)計(jì)師擔(dān)當(dāng)承上啟下的角色,也就是把用戶的需求,基于應(yīng)用的問(wèn)題變成計(jì)算機(jī)系統(tǒng)中可以解決的問(wèn)題。設(shè)計(jì)可以分為功能上的設(shè)計(jì)和技術(shù)體系上的設(shè)計(jì),但在實(shí)際工作中,這兩者很難區(qū)分清晰。彭六三談到,NC(用友大型ERP系統(tǒng))是通過(guò)總體設(shè)計(jì)組這個(gè)團(tuán)隊(duì)共同完成軟件設(shè)計(jì)的。首先要進(jìn)行產(chǎn)品定義,規(guī)定產(chǎn)品要做什么,以及相關(guān)的市場(chǎng)、產(chǎn)品周期和前景等問(wèn)題,產(chǎn)品所應(yīng)用的技術(shù)方向也會(huì)有一些描述。接下來(lái)是總體設(shè)計(jì),總體設(shè)計(jì)要考慮技術(shù)架構(gòu)以及與應(yīng)用有關(guān)的問(wèn)題。像跨地域的大型產(chǎn)品肯定要選擇慮B/S架構(gòu)。每個(gè)模塊中功能節(jié)點(diǎn)也要定義,應(yīng)用組件和描述的數(shù)據(jù)模型也要做出來(lái),諸如形成哪些標(biāo)準(zhǔn)平臺(tái),軟件如何分布,應(yīng)用環(huán)節(jié)都屬于總體設(shè)計(jì)的范疇??傮w設(shè)計(jì)再向下細(xì)分就是詳細(xì)設(shè)計(jì)。詳細(xì)設(shè)計(jì)完成之后就是編寫(xiě)代碼了。對(duì)于軟件設(shè)計(jì),廖恒毅有自己的觀點(diǎn)。他認(rèn)為軟件設(shè)計(jì)師如果面對(duì)很復(fù)雜的設(shè)計(jì),即便將架構(gòu)設(shè)計(jì)出來(lái),別人如何去實(shí)現(xiàn)也是很困難的。既然自然語(yǔ)言不如程序語(yǔ)言表達(dá)的清晰,他喜歡先用代碼的方式把整個(gè)框架架構(gòu)好,并編寫(xiě)基本的組件和接口代碼。這樣其他的程序員就可以很方便的復(fù)用自己的基礎(chǔ)組件,并利用預(yù)留的接口添寫(xiě)完整的代碼。做為軟件設(shè)計(jì)師,他能夠提供一個(gè)平臺(tái)性的開(kāi)發(fā)環(huán)境,讓其他的程序員方便的進(jìn)行擴(kuò)展開(kāi)發(fā)。這不僅降低了開(kāi)發(fā)難度,而且節(jié)省了大量的重復(fù)勞動(dòng)。復(fù)用模塊也可以提高系統(tǒng)的穩(wěn)定性,因?yàn)檫@是經(jīng)過(guò)多次測(cè)試的代碼。軟件設(shè)計(jì)師的周?chē)灿泻芏嘟巧?,?yīng)用專(zhuān)家對(duì)應(yīng)用需求分析了解的更深。還有技術(shù)平臺(tái)的專(zhuān)家,因?yàn)楸M管設(shè)計(jì)師對(duì)技術(shù)平臺(tái)有一定的了解,但對(duì)于細(xì)節(jié)的內(nèi)容還要請(qǐng)教技術(shù)平臺(tái)專(zhuān)家的,還需要程序員做出原型并進(jìn)行驗(yàn)證,通過(guò)反饋和評(píng)估不斷完善。最終用戶的反饋也是軟件設(shè)計(jì)師非常重視的。軟件設(shè)計(jì)師的要求做為應(yīng)用軟件開(kāi)發(fā)中最頂層的角色,軟件設(shè)計(jì)師的能力要求更強(qiáng),除了具備更強(qiáng)的編程技巧能力外,還需要了解系統(tǒng)結(jié)構(gòu)、主流軟件技術(shù)和軟件趨勢(shì),同時(shí)要具備相當(dāng)?shù)膶?zhuān)業(yè)知識(shí)。多年編程經(jīng)驗(yàn):既包括在專(zhuā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ì)成員來(lái)分別承擔(dān),但其中至少要有一名構(gòu)架設(shè)計(jì)師能夠把握項(xiàng)目的全局。和任何行業(yè)一樣,經(jīng)驗(yàn)是最重要的。軟件設(shè)計(jì)不是紙上談兵,一個(gè)軟件設(shè)計(jì)師首先要是非常好的程序員。軟件設(shè)計(jì)師在編程的時(shí)候,用的工具和普通程序員沒(méi)有任何差別,但使用深度是絕對(duì)不一樣的。廖恒毅花了三天寫(xiě)了個(gè)處理表格的程序,因?yàn)榭紤]的很巧妙,代碼不到一千行左右,但有人寫(xiě)只是畫(huà)表格單元的代碼就有二千多行,這就是經(jīng)驗(yàn)的差距。做軟件設(shè)計(jì)的時(shí)候,肯定要求是可實(shí)施和可測(cè)試的,如果沒(méi)有做過(guò)程序員,就無(wú)法保證這個(gè)設(shè)計(jì)是可實(shí)施并進(jìn)行測(cè)試。抽象能力:一個(gè)程序員剛寫(xiě)程序的時(shí)候,無(wú)非就是為了解決某個(gè)功能而進(jìn)行代碼編寫(xiě)。隨著程序編寫(xiě)越來(lái)越多,他對(duì)自己所做的應(yīng)用方面的理解也越來(lái)越多。不同的企業(yè)有不同的需求,但把這些企業(yè)放在一起來(lái)看的話,就會(huì)發(fā)現(xiàn)他們的一些共性。將這些共性提煉出來(lái),這就是抽象的過(guò)程。抽象出來(lái)的共性形成的模型可以把這些企業(yè)的需求都包含進(jìn)去,這是做通用軟件必須要走的一步。哪些東西是可以抽象的呢?鄧適宜舉例說(shuō):企業(yè)管理軟件內(nèi)部有很多內(nèi)部票據(jù)流程,票據(jù)傳遞有自己的規(guī)則,要把他們內(nèi)部的關(guān)系比較靈活的組織起來(lái),只能把流程做為管理對(duì)象,而不能把票據(jù)做為管理對(duì)象,因?yàn)槠睋?jù)只是一個(gè)載體。這樣做,整個(gè)系統(tǒng)的柔性會(huì)更強(qiáng),產(chǎn)品才能適合不同的企業(yè),讓企業(yè)可以靈活的控制,取得最好的效益。廖恒毅更是將抽象發(fā)揮的淋漓盡致。他整個(gè)管理流程抽象成不斷矩陣運(yùn)算的過(guò)程,軟件本身就是做矩陣運(yùn)算的乘法器和分解器。其他程序員只需要將具體的業(yè)務(wù)抽象為以XML表達(dá)的矩陣,放入到這個(gè)矩陣中,利用乘法器做運(yùn)算就可以了。面向?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)的還是流程化的程序。很多時(shí)候?qū)W習(xí)面向?qū)ο笥闷聊簧袭?huà)圖的方法,新的形狀可以從標(biāo)準(zhǔn)的形狀中轉(zhuǎn)化而來(lái),用來(lái)學(xué)習(xí)繼承的概念。但廖恒毅認(rèn)為這遠(yuǎn)遠(yuǎn)不夠,因?yàn)槠聊簧蠈?duì)象相互之間是獨(dú)立的,是沒(méi)有作用的離散關(guān)系。要真正學(xué)習(xí)面向?qū)ο?,就要去學(xué)畫(huà)表格。表格是由行組成的,同時(shí)也是由列組成的,行中又有獨(dú)立的單元格組成。作為一個(gè)行,要整體去操作這些格,做為列,也要去操作這些格,到底是以行為單位還是以列為單位去操作單元格。如果能把這個(gè)搞清楚,那才表明你對(duì)面向?qū)ο罄斫獾膲蛏羁?。廖恒毅笑著說(shuō):"有的程序員在程序中把所有的東西都繼承到一起,爺爺動(dòng)的時(shí)候,孫子跟著跳,孫子動(dòng)的時(shí)候,爺爺跟著晃。實(shí)際上,寫(xiě)面向?qū)ο蟮拇a,一定不要用太多的繼承。最關(guān)鍵的是如何傳遞消息和產(chǎn)生動(dòng)作,以及考慮各個(gè)模塊之間通過(guò)什么接口來(lái)聯(lián)系,而不是再繼承。"面向?qū)ο罂梢詰?yīng)用的領(lǐng)域非常廣泛。不僅在寫(xiě)代碼的過(guò)程中要考慮到面向?qū)ο螅瑢?shí)際上在設(shè)計(jì)和分析階段也可以用面向?qū)ο蟮姆椒āI岬脪仐墸很浖O(shè)計(jì)是一個(gè)漸進(jìn)過(guò)程,是通過(guò)不斷碰壁,不斷調(diào)整提高的。要想取得突破,就需要舍得拋棄。廖恒毅說(shuō):"通常情況下,我寫(xiě)的第一版程序是要被扔掉的。對(duì)于一個(gè)功能,我上來(lái)就寫(xiě),也不做設(shè)計(jì),什么都不想,寫(xiě)到最后,自己都煩了,然后就把這些代碼刪除掉再重新寫(xiě),這些腦中有了很多體會(huì)和印象,寫(xiě)完第二版之后,也會(huì)扔掉,繼續(xù)寫(xiě)第三版的代碼。這時(shí)程序邏輯架構(gòu)和關(guān)系自然就很清晰了。只有用這種不斷消滅自己以前的東西方面才能夠成長(zhǎng)的特別快,這就像相當(dāng)于脫殼,不過(guò)這需要自己對(duì)自己要求很?chē)?yán)格,否則又會(huì)回到原來(lái)的老路子上了。"很多人舍得扔掉自己的代碼的,往往是不斷的修改,最后進(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)的。領(lǐng)悟和突破:程序員技術(shù)成長(zhǎng)一種是通過(guò)學(xué)習(xí)技巧而成長(zhǎng),一種是通過(guò)思想領(lǐng)悟而得到成長(zhǎng),后者更為重要。如果不能領(lǐng)悟開(kāi)發(fā)的思想,僅僅掌握了技巧,一旦改換了平臺(tái)和語(yǔ)言,又要從頭學(xué)起,所以很多人在轉(zhuǎn)型過(guò)程中失敗了。而掌握了編程的思想,自動(dòng)就移過(guò)去了。廖恒毅表示:"語(yǔ)言本身從來(lái)不對(duì)我產(chǎn)生任何障礙,各種語(yǔ)言沒(méi)有任何本質(zhì)的差別,就象練武一樣,刀背也可以當(dāng)錘子用。"從程序員到軟件設(shè)計(jì)師(3)即便是很小的軟件,也可以鍛煉突破性的編程思維。廖恒毅以自己寫(xiě)拼音加加的經(jīng)歷講了一個(gè)例子。"輸入法體系結(jié)構(gòu)和流程很簡(jiǎn)單,就是原生數(shù)據(jù)庫(kù)和后生數(shù)據(jù)庫(kù)加上一個(gè)簡(jiǎn)單的界面。但在處理退格的時(shí)候,你會(huì)發(fā)現(xiàn)這是一個(gè)很復(fù)雜的問(wèn)題,如果按照常規(guī)的方法考慮各種出現(xiàn)的情況,程序幾乎是無(wú)法寫(xiě)下去了。其實(shí)方法很簡(jiǎn)單,只要做一個(gè)正向編輯器,定義好一個(gè)字母產(chǎn)生什么樣的操作,二個(gè)字母產(chǎn)生什么樣的操作,一個(gè)字符串產(chǎn)生什么樣的操作,并抽象成為每個(gè)操作對(duì)應(yīng)后臺(tái)進(jìn)行什么樣的操作。刪掉一個(gè)字母,無(wú)非就是把字符串去掉一個(gè),重新處理一遍就可以了。這個(gè)問(wèn)題就變得很簡(jiǎn)單??偨Y(jié)出來(lái)一種基本的設(shè)計(jì)原則和思路,就是程序設(shè)計(jì)千萬(wàn)不要回溯,否則就會(huì)崩潰,這是腦袋碰墻多少次之后才明白的。所以說(shuō)盡管編程序?qū)懥耸畮啄炅?,到現(xiàn)在還不敢稱(chēng)完全領(lǐng)悟軟件設(shè)計(jì),而是一直在找這種感覺(jué)。"非軟件知識(shí):提起軟件設(shè)計(jì)師,人們很喜歡那建筑師做比較,的確這兩個(gè)行業(yè)有很多相似之處。古羅馬建筑師維特魯威說(shuō)"理想的建筑師應(yīng)該既是文學(xué)家又是數(shù)字家,他還應(yīng)通曉歷史,熱衷于哲學(xué)研究,精通音樂(lè),懂得醫(yī)藥知識(shí),具有法學(xué)造詣,深諳天文學(xué)及天文計(jì)算。"軟件設(shè)計(jì)師同樣如此。廖恒毅說(shuō)"所有讓人去思考,一切美的東西都會(huì)吸引我,我欣賞每個(gè)行業(yè)中有內(nèi)涵的東西。"甚至包括周易五行,他都覺(jué)得這對(duì)開(kāi)發(fā)軟件有很大的幫助。"周易五行的一套自我完備運(yùn)行的體系結(jié)構(gòu),它也有自己的對(duì)象和作用關(guān)系。各種對(duì)象之間不是獨(dú)立的,而且衍生出來(lái)的作用關(guān)系讓整個(gè)系統(tǒng)運(yùn)轉(zhuǎn)的更加自然。我編程的時(shí)候也用這種思路,努力去尋找整個(gè)程序中的內(nèi)部作用關(guān)系。"鄧適宜也有自己的看法,他覺(jué)得軟件系統(tǒng)比起建筑來(lái),更象一臺(tái)機(jī)械。因?yàn)榻ㄖ坏┩瓿芍缶秃苌俑淖兯慕Y(jié)構(gòu),但機(jī)械不一樣,它是一臺(tái)可以通過(guò)改裝改變不斷增加功能的系統(tǒng)。"現(xiàn)在機(jī)械制造中經(jīng)常是把機(jī)器分解為多個(gè)組件,分別生產(chǎn),只有到最終銷(xiāo)售的時(shí)候,才根據(jù)用戶的需求把各個(gè)組件拼接組合起來(lái)產(chǎn)生不同的功能,這稱(chēng)為延遲制造。這種想法在我們的軟件開(kāi)發(fā)中也經(jīng)常用到。我們也開(kāi)發(fā)了很多靈活的可視化組件,在實(shí)施的時(shí)候才根據(jù)用戶的需求進(jìn)行組裝,不僅滿足了客戶的個(gè)性化需求,而且也降低了開(kāi)發(fā)成本。U8軟件中的ERB模塊要提供第三方軟件的接口程序,為了保證穩(wěn)定性和下一代產(chǎn)品的延續(xù)性,我們做了一些模塊,可以通過(guò)注冊(cè)擴(kuò)展功能,很象機(jī)械中的插件。"向軟件設(shè)計(jì)師發(fā)展當(dāng)然,并不是每一個(gè)程序員都適合向軟件設(shè)計(jì)師角色發(fā)展的。除了自身的努力之外,還同所處的環(huán)境有很大的關(guān)系,如果只是幾個(gè)人的小公司,對(duì)軟件設(shè)計(jì)的要求不明確,自然也就無(wú)法得到鍛煉。鄧適宜說(shuō)自己早期接觸的軟件開(kāi)發(fā)環(huán)境都是比較大型的基于UNIX的大型數(shù)據(jù)庫(kù)環(huán)境,從中學(xué)到了很多東西,受益菲淺。彭六三介紹說(shuō),在用友這樣開(kāi)發(fā)大型軟件的公司中,程序員成長(zhǎng)是很快的。一個(gè)普通的程序員,在代碼編寫(xiě)多之后,首先可以成為一個(gè)主程序員。除了他的編程能力更強(qiáng),在一個(gè)開(kāi)發(fā)小組中起主導(dǎo)作用之外,他實(shí)際上也具有了一定的設(shè)計(jì)能力。接下來(lái),就是和深入的了解具體的應(yīng)用。除了面向?qū)ο蟮某绦蛟O(shè)計(jì)一定要具備,對(duì)具體應(yīng)用的深入了解也是必不可少的,否則無(wú)法去設(shè)計(jì)產(chǎn)品。要想繼續(xù)發(fā)展,接下來(lái)的工作就是要更多了解技術(shù)標(biāo)準(zhǔn)方面的知識(shí)了。不過(guò),即便你是一個(gè)普通的程序員,沒(méi)有機(jī)會(huì)參與大型的軟件開(kāi)發(fā)項(xiàng)目,也可以在開(kāi)發(fā)中向軟件設(shè)計(jì)師的思維靠近,提升自己對(duì)軟件開(kāi)發(fā)的認(rèn)識(shí)。一個(gè)播放軟件,不同的用戶對(duì)界面有不同的需求,如何滿足不同的需求也是需要設(shè)計(jì)的,而播放軟件對(duì)不同格式文件的支持也是需要考慮的,尤其是為未來(lái)的格式預(yù)留接口,這些問(wèn)題是需要在架構(gòu)中考慮。不管軟件大小,都可以應(yīng)用設(shè)計(jì)模式的東西。補(bǔ)充資料新聞:10月18日,微軟董事長(zhǎng)兼首席軟件設(shè)計(jì)師比爾·蓋茨宣布了旨在培養(yǎng)2000名中國(guó)軟件大師的"Architect2000高級(jí)軟件研發(fā)主管研修計(jì)劃"項(xiàng)目。此次微軟推出的"Architect2000高級(jí)軟件研發(fā)主管研修計(jì)劃",以培養(yǎng)軟件構(gòu)架高層次人才為宗旨。該計(jì)劃將用一年的時(shí)間,通過(guò)與中國(guó)11個(gè)軟件開(kāi)發(fā)園區(qū)的合作,為中國(guó)領(lǐng)先軟件企業(yè)的首席技術(shù)官員提供軟件設(shè)計(jì)體系原則、開(kāi)發(fā)技巧和最新技術(shù)的培訓(xùn),從中培養(yǎng)出20

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論