序
擔(dān)任系統(tǒng)設(shè)計(jì)師的職位一年了,盡管自己到現(xiàn)在為止仍然是個(gè)不合格的設(shè)計(jì)師,雖然這一年以來也不是完全從事設(shè)計(jì)的工作,但畢竟站在這個(gè)崗位上,主要從事的還是系統(tǒng)設(shè)計(jì)方面的工作,加上自己也有志于在這個(gè)方向發(fā)展,所以做一個(gè)年度總結(jié)是有必要的,也希望能對(duì)希望進(jìn)入設(shè)計(jì)崗位的朋友們有些幫助,同時(shí)也希望得到在設(shè)計(jì)崗位上有經(jīng)驗(yàn)的同行們的指點(diǎn)。
這也是自己真正擔(dān)任系統(tǒng)設(shè)計(jì)師這個(gè)崗位的第一年,盡管在以前的工作中也曾經(jīng)負(fù)責(zé)過設(shè)計(jì)部分,但現(xiàn)在回顧起來,覺得如果不在這個(gè)職位上,很多時(shí)候是無法了解到這個(gè)職位應(yīng)該做的事的,自然也就無法去做了,在整個(gè)一年的工作中學(xué)到了很多的東西,同時(shí)也暴露了自己很多的不足,但總體而言自己是覺得已經(jīng)踏入了系統(tǒng)設(shè)計(jì)的大門,但還需要不斷的提高。
學(xué)到的東西
概述
一年以來作為系統(tǒng)設(shè)計(jì)師主要參與了公司的一個(gè)C/S結(jié)構(gòu)的產(chǎn)品的研發(fā)、工作流系統(tǒng)研發(fā)的規(guī)劃、一個(gè)辦公應(yīng)用系統(tǒng)的項(xiàng)目以及現(xiàn)在手頭上的一個(gè)開發(fā)框架中。
詳細(xì)
在從事C/S結(jié)構(gòu)的產(chǎn)品的研發(fā)上,此產(chǎn)品的系統(tǒng)架構(gòu)主要為插件體系架構(gòu),不過在實(shí)際實(shí)現(xiàn)過程中做的不夠好,不過一直到現(xiàn)在插件體系架構(gòu)仍然是我最為關(guān)注的,而且自己也在做這方面的事情,從設(shè)計(jì)角度的考慮上來說完成了遠(yuǎn)程調(diào)用、增量緩存等的設(shè)計(jì)實(shí)現(xiàn)方案,同時(shí)也根據(jù)場景運(yùn)用了合適的模式。在這個(gè)產(chǎn)品中遠(yuǎn)程調(diào)用角度引入了同步、異步的機(jī)制,盡管后來異步一直沒搞定,不過畢竟去摸索了,呵呵,現(xiàn)在倒是有解決方案了;增量緩存方面則是為了提升客戶端與服務(wù)端的數(shù)據(jù)交互效率;模式方面運(yùn)用的主要有命令模式、責(zé)任鏈模式、Template模式、Observer模式。這是自己第一次作為系統(tǒng)設(shè)計(jì)師負(fù)責(zé)整個(gè)產(chǎn)品的設(shè)計(jì),現(xiàn)在回顧起來自己在那個(gè)階段做的是不夠的好,主要是在整體系統(tǒng)的設(shè)計(jì)上做的不夠的周全,系統(tǒng)全貌的體現(xiàn)仍然不夠,其實(shí)從一定程度上來講就是架構(gòu)不夠完善,而且在架構(gòu)的實(shí)現(xiàn)上做的也不到位。
在從事工作流系統(tǒng)研發(fā)的規(guī)劃上,自己主要是作為規(guī)劃人員對(duì)整個(gè)工作流系統(tǒng)的研發(fā)進(jìn)行規(guī)劃,同時(shí)也作為系統(tǒng)設(shè)計(jì)師對(duì)整個(gè)工作流系統(tǒng)進(jìn)行設(shè)計(jì),工作流系統(tǒng)一直是工作以來的重點(diǎn),相對(duì)來說在這方面的經(jīng)驗(yàn)比較的多,整個(gè)工作流系統(tǒng)研發(fā)的規(guī)劃做的比較順利,可惜后來由于公司的某些原因,無疾而終。
在辦公應(yīng)用系統(tǒng)的項(xiàng)目上自己作為項(xiàng)目經(jīng)理和系統(tǒng)架構(gòu)師雙重角色,這里主要講系統(tǒng)設(shè)計(jì)方面的工作,在這個(gè)項(xiàng)目上根據(jù)自己以往的經(jīng)驗(yàn)完成了一個(gè)辦公類應(yīng)用系統(tǒng)的架構(gòu)設(shè)計(jì),同時(shí)完成了一個(gè)完整的權(quán)限系統(tǒng)以及一個(gè)基本的CMS的設(shè)計(jì)工作上,收獲不小的項(xiàng)目。權(quán)限系統(tǒng)的設(shè)計(jì)也是在blog上曾經(jīng)專門寫了一個(gè)系列,而在CMS中的話主要是完成了緩存、模板機(jī)制、CMS模型的設(shè)計(jì)工作。
目前手頭上則是一個(gè)開發(fā)框架的東西,這個(gè)東西則讓自己開始真正的做框架級(jí)的設(shè)計(jì),和實(shí)際項(xiàng)目的那種感覺是不一樣的,難度大大增加,現(xiàn)在主要是做數(shù)據(jù)集的表現(xiàn)層組件、代碼、配置文件的自動(dòng)生成、緩存策略、通用子系統(tǒng)部分的設(shè)計(jì)和實(shí)現(xiàn)工作。
小結(jié)
一年以來覺得自己在系統(tǒng)設(shè)計(jì)方面學(xué)到的最多的就是產(chǎn)品的規(guī)劃、設(shè)計(jì)、需求驅(qū)動(dòng)的設(shè)計(jì)方式(需求到設(shè)計(jì)的映射)、領(lǐng)域模型的運(yùn)用以及模式的適當(dāng)運(yùn)用。
最大的進(jìn)步就在于逐漸的學(xué)會(huì)了從系統(tǒng)全局去分析系統(tǒng),形成一個(gè)系統(tǒng)需求分析--->設(shè)計(jì)--->實(shí)現(xiàn)的步驟,對(duì)于系統(tǒng)的架構(gòu)設(shè)計(jì)、概要設(shè)計(jì)以及詳細(xì)設(shè)計(jì)也能夠更加清楚的了解,設(shè)計(jì)的目的就是為了需求的實(shí)現(xiàn),所以設(shè)計(jì)需要根據(jù)需求來產(chǎn)生。
架構(gòu)設(shè)計(jì)中最重要的是根據(jù)對(duì)需求共性的分析形成系統(tǒng)的骨架,架構(gòu)中考評(píng)的重點(diǎn)是對(duì)于系統(tǒng)實(shí)現(xiàn)的支撐
、擴(kuò)展以及對(duì)非功能性需求的滿足,同時(shí)還需要考慮架構(gòu)中具體引入的技術(shù)或者框架,這個(gè)更多的是需要根據(jù)team、項(xiàng)目的大小、時(shí)間緊急等因素來決定,這也是架構(gòu)設(shè)計(jì)中最為困難的一步,目前在做架構(gòu)設(shè)計(jì)時(shí)更多的是參考業(yè)界內(nèi)已有的架構(gòu)體系,只是有些時(shí)候需要考慮特殊業(yè)務(wù)需求的實(shí)現(xiàn)方法,最后根據(jù)職責(zé)單一、內(nèi)聚和松耦合的重要原則形成系統(tǒng)模塊的劃分以及接口的定義。
概要設(shè)計(jì)最重要的在于根據(jù)模塊的劃分以及接口的定義形成模塊的設(shè)計(jì)和接口的實(shí)現(xiàn)設(shè)計(jì),模塊的設(shè)計(jì)受架構(gòu)的約束形成。
詳細(xì)設(shè)計(jì)則是具體的模塊的設(shè)計(jì)的實(shí)現(xiàn)以及對(duì)象接口的定義。
關(guān)于架構(gòu)、概要、詳細(xì)設(shè)計(jì)將專門寫blog來闡述。
另外一點(diǎn)來說就是在一個(gè)公司而言通常來說面對(duì)的往往是同類型的項(xiàng)目占多,這個(gè)時(shí)候架構(gòu)的重用是非常明顯的,在這種情況下為了保證公司的項(xiàng)目技術(shù)結(jié)構(gòu)的統(tǒng)一以及技術(shù)人員的統(tǒng)一,通常會(huì)有框架的需求,這點(diǎn)以后也將專門寫blog來闡述。
最后一點(diǎn)就是這一年來真正在架構(gòu)體系的接觸上來說應(yīng)該就是插件架構(gòu)體系,其他方面則主要是些系統(tǒng)方面的模型設(shè)計(jì),如,自己在這個(gè)方面也是投入了巨大的關(guān)注,目前也在做這方面的東西,這個(gè)在我完成目前手上的東西后將專門來闡述插件架構(gòu)體系以及其應(yīng)用模式。
不足
在一年來各個(gè)項(xiàng)目的自己所做的設(shè)計(jì)來看,最大的不足在于自己缺乏一套系統(tǒng)的、理論的系統(tǒng)設(shè)計(jì)過程的指導(dǎo),個(gè)人覺得即使這套理論不是很優(yōu)秀也沒關(guān)系,這個(gè)可以根據(jù)自己的實(shí)踐經(jīng)驗(yàn)來調(diào)整,但需要的是一個(gè)系統(tǒng)的過程,這點(diǎn)我覺得是自己現(xiàn)在最大的不足。
在自己的不足上,主要列了以下幾點(diǎn):
1、系統(tǒng)的、理論的系統(tǒng)設(shè)計(jì)過程的學(xué)習(xí)
需要有個(gè)清晰的系統(tǒng)設(shè)計(jì)過程的體現(xiàn),并能足以明確的說明其形成的過程。
2、需求驅(qū)動(dòng)以及領(lǐng)域驅(qū)動(dòng)的深入實(shí)踐和改進(jìn)
設(shè)計(jì)對(duì)于需求的滿足性以及符合性的體現(xiàn)。
領(lǐng)域模型驅(qū)動(dòng)的體現(xiàn)以及建模的體現(xiàn)。
3、加強(qiáng)技術(shù)基本功
作為架構(gòu)設(shè)計(jì)師,最重要的是設(shè)計(jì)合適的架構(gòu),特別是作為國內(nèi)目前大部分的中小企業(yè)來說,面對(duì)的系統(tǒng)其實(shí)在業(yè)界內(nèi)都是有成熟的架構(gòu)體系的,關(guān)鍵是要根據(jù)team、時(shí)間等方面因素來做出選擇,這個(gè)時(shí)候就要求架構(gòu)師對(duì)于各種技術(shù)的選擇、框架的選擇需要有個(gè)準(zhǔn)確的判斷。
4、架構(gòu)的合理性
這點(diǎn)和3中說的有重復(fù),就是如何做出一個(gè)適合一定背景的架構(gòu)?
5、模式的合理運(yùn)用
對(duì)于模式的運(yùn)用需要更加的純熟,包括分析模式、架構(gòu)模式和設(shè)計(jì)模式。