版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Linux程序設(shè)計(jì)模式—機(jī)制與策略什么是設(shè)計(jì)模式(Designpattern)?設(shè)計(jì)模式(Designpattern)是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過(guò)分類(lèi)編目的、軟件設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。使用設(shè)計(jì)模式是為了提高代碼或模塊的重用、讓程序更容易被他人理解、提高代碼可靠性和可維護(hù)性。同時(shí),通過(guò)學(xué)習(xí)設(shè)計(jì)模式可以降低解決一般性問(wèn)題的開(kāi)發(fā)難度。Linux程序設(shè)計(jì)模式的起源和發(fā)展Linux程序的設(shè)計(jì)模式起源于Unix文化,是Unix哲學(xué)的重要組成部分,而Linux本身就是Unix的一個(gè)發(fā)展分支。Unix哲學(xué)說(shuō)來(lái)不算是一種正規(guī)設(shè)計(jì)方法,它是自下而上的,而不是自上而下的。Unix哲學(xué)注重實(shí)效,立足于豐富的經(jīng)驗(yàn)。你不會(huì)在正規(guī)方法學(xué)和標(biāo)準(zhǔn)中找到它,它更接近于隱性的半本能的知識(shí),即Unix文化所傳播的專(zhuān)業(yè)經(jīng)驗(yàn)。它鼓勵(lì)那種分清輕重緩急的感覺(jué),以及懷疑一切的態(tài)度,并鼓勵(lì)你以幽默達(dá)觀的態(tài)度對(duì)待這些。什么是Unix哲學(xué)?Unix管道的發(fā)明人、Unix傳統(tǒng)的奠基人之一DougMcIlroy在[McIlroy78]中曾經(jīng)說(shuō)過(guò):I.讓每個(gè)程序就做好一件事。如果有新任務(wù),就重新開(kāi)始,不要往原程序中加入新功能而搞得復(fù)雜。II.假定每個(gè)程序的輸出都會(huì)成為另一個(gè)程序的輸入,哪怕那個(gè)程序還是未知的。輸出中不要有無(wú)關(guān)的信息干擾。避免使用嚴(yán)格的分欄格式和二進(jìn)制格式輸入。不要堅(jiān)持使用交互式輸入。III.盡可能早地將設(shè)計(jì)和編譯的軟件投入試用,哪怕是操作系統(tǒng)也不例外,理想情況下,應(yīng)該是在幾星期內(nèi)。對(duì)拙劣的代碼別猶豫,扔掉重寫(xiě)。IV.優(yōu)先使用工具而不是拙劣的幫助來(lái)減輕編程任務(wù)的負(fù)擔(dān)。工欲善其事,必先利其器。后來(lái)他這樣總結(jié)道(引自《Unix的四分之一世紀(jì)》):Unix哲學(xué)是這樣的:一個(gè)程序只做一件事,并做好。程序要能協(xié)作。程序要能處理文本流,因?yàn)檫@是最通用的接口。從整體上來(lái)說(shuō),可以概括為以下幾點(diǎn):鉛01.賀模塊原則:有使用簡(jiǎn)潔的筒接口拼合簡(jiǎn)榮單的部件。究02.存清晰原則:逼清晰勝于機(jī)換巧。掘03.習(xí)組合原則:辱設(shè)計(jì)時(shí)考慮日拼接組合。閱04.監(jiān)分離原則:汪策略同機(jī)制佳分離,接口姐同引擎分離包。剩05.晌簡(jiǎn)潔原則:茶設(shè)計(jì)要簡(jiǎn)潔質(zhì),復(fù)雜度能劣低則低。肢06.產(chǎn)吝嗇原則:匙除非確無(wú)它墨法,不要編粗寫(xiě)龐大的程必序。率07.濫透明性原則識(shí):設(shè)計(jì)要可恭見(jiàn),以便審蔬查和調(diào)試。咬08.肝健壯原則:深健壯源于透俗明與簡(jiǎn)潔。遮09.姨表示原則:廚把知識(shí)疊入娛數(shù)據(jù)以求邏擦輯質(zhì)樸而健沒(méi)壯。正10.想通俗原則:挑接口設(shè)計(jì)避啄免標(biāo)新立異蠻。虧11.雅緘默原則:匪如果一個(gè)程洗序沒(méi)什么好肺說(shuō)的,就沉淺默。史12.傾補(bǔ)救原則:霧出現(xiàn)異常時(shí)揮,馬上退出拘并給出足夠找錯(cuò)誤信息。斜13.凡經(jīng)濟(jì)原則:叼寧花機(jī)器一嫌分,不花程題序員一秒。國(guó)14.邊生成原則:己避免手工艙hack膜,盡量編寫(xiě)巖程序去生成殖程序。忘15.蜂優(yōu)化原則:分雕琢前先要袖有原型,跑睜之前先學(xué)會(huì)延走。耗16.澡多樣原則:皮決不相信所遍謂“不二法蝕門(mén)”的斷言止。刷17.汽擴(kuò)展原則:族設(shè)計(jì)著眼未記來(lái),未來(lái)總豬比預(yù)想來(lái)得父快??隔[給大家推薦天一本書(shū)《者UNIX零編程藝術(shù)》窮————這原不是一本講弱如何編程的纏書(shū),而是一駛本講圣UNIX交設(shè)計(jì)哲學(xué)的蝶書(shū),當(dāng)然也恥適應(yīng)于惠Linux繳。這本書(shū)是伸我來(lái)威勝工掠作后,同事信們推薦我讀訪的第二本書(shū)戲(競(jìng)范律推薦航)理。第一本書(shū)蹲是《摩UNIX帝環(huán)境高級(jí)編籮程》富(時(shí)邱云松推薦匯)游,第三本書(shū)似是《掙UNIX行網(wǎng)絡(luò)編程板第嘆2泊卷進(jìn)程間慶通信》(張免棟推薦),周第四本書(shū)是擋《竭Linux號(hào)設(shè)備驅(qū)動(dòng)程酸序第三版》汁(劉利方推嗽薦)臨,錫第五本書(shū)是偏《溪linux展程序設(shè)計(jì)第透三版》(我臘推薦)。涌什么是機(jī)制雕與策略?錦我們通過(guò)下悔面文字來(lái)理匪解什么是機(jī)朝制與策略:來(lái)設(shè)備驅(qū)動(dòng)程訊序的作用在踏于提供機(jī)制增,而不是提影供策略。種X(win煮dows)異致力于提供堅(jiān)一套機(jī)制,究而不是策略相。眉策略相對(duì)短匯壽,而機(jī)制因才會(huì)長(zhǎng)存。螺前端實(shí)現(xiàn)策缸略,后端實(shí)配現(xiàn)機(jī)制。犯策略和機(jī)制嚴(yán)是按照不同茅的時(shí)間尺度會(huì)變化的,策枝略的變化要弱遠(yuǎn)遠(yuǎn)快于機(jī)售制。節(jié)虧把策略同機(jī)膠制揉成一團(tuán)道有兩個(gè)負(fù)面市影響:一來(lái)哨會(huì)使策略變母得死板,難偏以適應(yīng)用戶(hù)濃需求的改變塊,二來(lái)也意施味著任何策把略的改變都燙極有可能動(dòng)陶搖機(jī)制。拘數(shù)相反,將兩隊(duì)者剝離,就展有可能在探缸索新策略的澆時(shí)候不足以緣打破機(jī)制。愿另外,我們旨也可以更容佩易為機(jī)制寫(xiě)帝出較好的測(cè)府試(因?yàn)椴呒?xì)略太短命,債不值得花太默多精力在這路上面)。健機(jī)制與策略移的實(shí)例:寬(下面的講子解過(guò)程中,揪我會(huì)提出一材些問(wèn)題。如桐果回答錯(cuò)誤玻將會(huì)有一個(gè)墓小小的懲罰偷)誤1.Ubo佩ot風(fēng)的環(huán)境變量鎮(zhèn)偏(boot工cmd)謙2.Lin榨ux鋼驅(qū)動(dòng)程序略滴(竟examp偷les/s票cull)盜3d翼line佩中的旋mtdpa俗rts船解析程序淹良(槳linux光-2.6.誓32.2/違drive股rs/mt床d/cmd殼linep窄art.c碎)機(jī)4.ude歌v愛(ài)的三rules嘗文件自動(dòng)執(zhí)族行學(xué)U疏盤(pán)腳本授磨(峰60-re階movab攻le-st禍orage虧.rule捐s)周5.ude晴v棄的辜net.a蒜gent疏,實(shí)現(xiàn)漂USB奪網(wǎng)卡的自動(dòng)及掛接奔乏(狠80-dr笑ivers妥.rule網(wǎng)s)瞎6.Bus費(fèi)yBox閑工具集介紹倚改(固sed登,電awk慧,百inetd打,鼠chat挪,救crond山,溪find送,泳grep娛,扎getty墊-logi出n-bas廊h襯,足start舒-stop暖-daem船on麗,她run-p者arts盟)盼7.悟嵌入式數(shù)據(jù)類(lèi)庫(kù)扎末(怕Tokyo欺Cabin咳et燙,湊Sqlit縣e3袍)羅8.造腳本語(yǔ)言短去(閃SHELL樣,板TCLSH吊,螺Lua紀(jì),較TCC芝,撕pytho排n墾)私9.興圖形界面庫(kù)餃跨(qt,p舌yGTK)唐MCU卡嵌入式系統(tǒng)觸中的臟機(jī)制與策略疫:理瞞MCU添(夫Micro慧Cont茫rolU酒nit妻,微控制器向單元)片上仇集成外圍器盼件,沒(méi)有外嘗擴(kuò)總線,不燃帶敘MMU費(fèi)單元是其的恰主要特征,倦比如芽ARM7點(diǎn),鍬Corte多x-M3耗系列等。與鼠之相對(duì)的是拍MPU爬(貍Micro句Proc款essor售Unit成,微處理器你單元)不帶核外圍器件(晨例如存儲(chǔ)器言),是高度屈集成的通用皺結(jié)構(gòu)的處理較器,比如揚(yáng)ARM92幣6密,騾Corte植x-A8落系列等。逮急在資源非常蠢緊張的深度刷嵌入式系統(tǒng)懼中,同樣也遷有使用機(jī)制子與策略設(shè)計(jì)瓣模式的成功喚案例與成熟漢方案。例如賞:酸號(hào)1.戶(hù)p須Forth堡,燦eFort馬h鉗,壩Retro謀Forth聯(lián)拜Forth暖是六十年代順末期,由續(xù)Charl睡esH.接Moor跡e芝發(fā)展出來(lái)在殺天文臺(tái)使用逢的電腦自動(dòng)粗控制系統(tǒng)及橫程序設(shè)計(jì)語(yǔ)沈言,允許使敏用者很容易墨組合系統(tǒng)已懶有的簡(jiǎn)單指電令,定義成喘為功能較復(fù)受雜的高階指罷令。杠forth碑是一種可擴(kuò)街展的,交互采式的語(yǔ)言。簡(jiǎn)最初為小型瘦的嵌入式電蓮腦設(shè)計(jì)的,暢現(xiàn)在它幾乎據(jù)可以在任何閱主流的芯片加上解譯和編侄譯,甚至已嘴有多種可直投接運(yùn)行召forth材指令的芯片社。偉紡:落//ret座rofor椅th.or斤g/溜校:誕//www她.baym聲oon.c茂om/~b舒imu/f沖orth/元豪:郊//www卵.soft環(huán)synth慌/棄pfort陪h/新寒2.Pa繞wn,P胃awn+f嘩reeRT戀OS幅誼Anem際bedde血dscr暈iptin繪glan柄guage的form播erly毀calle掃dSma雙ll.萬(wàn)pawn沃isa單simpl用e,ty竟peles撿s,32寧-bit巨exten債sion舍langu束agew芒itha恰C-li兔kesy哄ntax.賽Apa凍wn"s怕ource晚"pro沖gram冰isco怖m(xù)pile累dto每abin罰aryf遭ilef露orop個(gè)timal茫exec覺(jué)ution租spee灶d.Th頃epaw匙ncom她piler眨outp錘utsP護(hù)-code衛(wèi)(or夠bytec風(fēng)ode)幼that沫subse砍quent勤lyru盼nson羞ana派bstra矛ctma厲chine臥.Exe權(quán)cutio仍nspe我ed,s枕tabil巡ity,頸simpl間icity攏and窯asma陸llfo遷otpri嗎ntwe鄉(xiāng)rees屬senti仔alde眠sign闖crite鍛riaf辱orbo么thth倚elan穿guage慚and細(xì)thea獎(jiǎng)bstra俱ctma背chine宣.象派:禮//www倍p喝uphas度e婚/pawn縫/pawn座.htm開(kāi)暗3.嫩eLua,鐮nutl逮ua(Lu鴨a+Nut繁/OS)誤記eLua歡stand防sfor路Embe沙dded患Luaa探ndth盼epro盡ject溝aims咸toof帆fert在hefu姥llim杠pleme仗ntati徐onof途the席LuaP劃rogra稅mming攤Lang圖uage抽toth胃eemb塑edded增worl鄰d,ex室tendi油ngit錄with搞spec魚(yú)ific決featu孟resf殿oref錄ficie舞ntan杠dpor勿table抗soft自ware稀embed霸dedd嫩evelo趟pment唉.龍圓:鄭//www格.elua莖proje混ct.ne監(jiān)t/范遲:賄//www憐.ethe申rnut.尚de/en瞎/firm漿ware/射nutlu臨a.htm略l擾Forth而、店P(guān)awn堅(jiān)和月Lua睬在其他領(lǐng)域陪的應(yīng)用:暢保Atari勵(lì)炮的許多投幣碗游戲機(jī)都是換用域Forth初賄開(kāi)發(fā)的。他式們相信開(kāi)發(fā)堅(jiān)高性能代碼涂的最快方法割是使用域Forth孟螞,加上使用爹匯編語(yǔ)言來(lái)勒重寫(xiě)最內(nèi)層氣的循環(huán)。按窮照最近與著腿名的穿Infoc佛om梁高級(jí)游戲開(kāi)仿發(fā)者的談話吉,他們的游晌戲解釋器也犧是用還Forth檔甘寫(xiě)成的。勉槳Uniso告nWor藝ld鮮為騾CP/M衡操作系統(tǒng)開(kāi)槽發(fā)了許多游融戲,全部都嘩是用盈FIG-F繪orth艦編寫(xiě)的。按飽他們技術(shù)總乏監(jiān)畜Marc低deGr奉oot閥的說(shuō)法,把惱一個(gè)基于付Z80形的游戲移植是到泉6502雹或者犯MC680溉9天上,典型的范時(shí)間不多于版奸3非個(gè)月。合美國(guó)廉Feder從alEx爸press券償(聯(lián)邦快遞晴)公司的手遇持式行李分暗撿系統(tǒng)的程粥序是用咱Forth扭環(huán)編寫(xiě)的。項(xiàng)垂目經(jīng)理攪Gene扒Farra匹r切說(shuō),他可以閉按需要在幾構(gòu)個(gè)星期內(nèi)升等級(jí)新固件,披相比而言,旅其它的小組唉維護(hù)明C被語(yǔ)言代碼則乎至少需要憲6污個(gè)月的時(shí)間趁。輝笨1990躍年林11奮月哥倫比亞們航天飛機(jī)的懂優(yōu)4驚個(gè)載荷中有綁默3徹個(gè)是用佩Forth惜魚(yú)編程的。按醬設(shè)計(jì)團(tuán)隊(duì)之諸一網(wǎng)Johns牙Hopk圈insU絕niver傘sity'撇sApp裳lied慢Physi即csLa孝borat慚ory訴的懼John拾Hayes汽斃說(shuō)法,他們投選擇激Forth腎擁來(lái)解決飛行聾中的硬件問(wèn)愧題,靈活性郵是一個(gè)主要謙的因素。撈發(fā)SUN叢公司把翻Forth學(xué)往用于它的工導(dǎo)作站可編程找圓Boot瞎ROM芝中,以每天葵成500-1蠢000毀臺(tái)的速度發(fā)紡貨,是可編若程屢Forth杏僻系統(tǒng)中數(shù)量練最大的。岡1994掠年攻IEEE在1275-鉗1994斜將奪Forth磚厘用于誕BOOT撿(初始配置公)固件的挨標(biāo)準(zhǔn),這也樂(lè)是手POWER漂PC偶通用硬件平吃臺(tái)的基礎(chǔ)。般在電影服《終結(jié)者陸II結(jié):世界末日寇》中,狀Cyber即dyne家Syste照msT1溉000險(xiǎn)系統(tǒng)的特技太效果是基于屆急Morph賠ing蹤軟件包負(fù)Forth雨青產(chǎn)生的。隊(duì)Pleo倦是一只可愛(ài)圣的小恐龍,皆是由富士康鹽公司研發(fā)的托電子寵物,邁所有論P(yáng)leo奇的個(gè)性都是察通過(guò)員PAWN鵲的腳本實(shí)現(xiàn)耍。官方網(wǎng)站按:谷p垮leowo匆rld.c網(wǎng)om評(píng)著名的第一針人稱(chēng)射擊類(lèi)撒游戲《核CS融反恐精英》厚就是使用了蛙Pawn逆腳本語(yǔ)言來(lái)微控制游戲。身而另兩款著趟名的適3D脖即時(shí)策略類(lèi)平游戲《魔獸跳爭(zhēng)霸嘗3僵》和臨RPG峰類(lèi)在線游戲遼《魔獸世界懲》中也大量拾使用熄lua妨腳本。份還有在移動(dòng)湖設(shè)備上一直仗很火熱的游宿戲《憤怒的桶小鳥(niǎo)》也使詠用推lua哈腳本。洋葉機(jī)制與策略送設(shè)計(jì)模式在倆游戲中的應(yīng)玩用是最為廣除泛的,常常創(chuàng)關(guān)卡的設(shè)計(jì)尋和場(chǎng)景的變抵換都是利用攜腳本語(yǔ)言來(lái)地完成策略部萌分。而畫(huà)面蠻的渲染和動(dòng)禁畫(huà)的著色這寶交給圖形引俘擎庫(kù)來(lái)完成再機(jī)制功能。步Termi耀nal鉛中的機(jī)制與海策略:渠救Termi抽nal玩平臺(tái)大量使斯用了機(jī)制與映策略的設(shè)計(jì)約模塊。在這泉些方案中,串有些做到很報(bào)簡(jiǎn)單,有些懷則做得很靈燃活。但不管洋怎樣,它們框都為解決實(shí)劑際問(wèn)題做出莖了重要的貢誤獻(xiàn)。井a(chǎn)naly壟sis猶統(tǒng)計(jì)分析模旅塊舟桃實(shí)時(shí)庫(kù)中的蜻部分?jǐn)?shù)據(jù)是滋通過(guò)分析計(jì)咱算從電表上鳥(niǎo)采集的數(shù)據(jù)傷而得來(lái)的,序Analy休sis.i螺ni櫻就是用來(lái)配京置這些數(shù)據(jù)者項(xiàng)以及這些洞數(shù)據(jù)項(xiàng)的處寇理方法。完taskm療anage刃任務(wù)管理噴均任務(wù)管理的浙工作是在特析定的時(shí)間將個(gè)實(shí)時(shí)庫(kù)中的敞數(shù)據(jù)轉(zhuǎn)存到乳數(shù)據(jù)庫(kù)中。馳從而生成對(duì)闖應(yīng)的日月凍恨結(jié)數(shù)據(jù)、曲業(yè)線數(shù)據(jù)等等顏。這些數(shù)據(jù)菠在平376.1胸規(guī)約中被稱(chēng)溉為二類(lèi)數(shù)據(jù)唯。興cpara東m喘參數(shù)管理規(guī)昆參數(shù)管理使竄用的是絹gdbm+飽xml獨(dú)的配置方式統(tǒng),主要實(shí)現(xiàn)賢規(guī)約解析要面求的各類(lèi)參球數(shù),同時(shí)也朱管理部分內(nèi)獵部參數(shù)。塌db2xm效l斜和卷xml2d生b撒兩個(gè)工具實(shí)壓現(xiàn)參數(shù)文件蹲格式的轉(zhuǎn)換核。醉dbman黑age波數(shù)據(jù)管理吳宏數(shù)據(jù)管理使穗用的是掏sqlit眼e符數(shù)據(jù)庫(kù),并野且將運(yùn)行時(shí)儀的數(shù)據(jù)庫(kù)創(chuàng)凳建也做成了圖配置文件的雄形式。通過(guò)匙修改和增加燈配置文件的蟲(chóng)內(nèi)容就能擴(kuò)代展終端運(yùn)行刮時(shí)的數(shù)據(jù)庫(kù)煌。故shmem探ory持實(shí)時(shí)庫(kù)模塊恥紡實(shí)時(shí)庫(kù)的創(chuàng)偷建是通過(guò)定乏義次C講語(yǔ)言中對(duì)應(yīng)名的結(jié)構(gòu)體數(shù)睬組來(lái)完成的停。它提供了箭抄表程序、幼統(tǒng)計(jì)分析和蠻任務(wù)管理需畢要使用到的握數(shù)據(jù)項(xiàng),以涌及這些數(shù)據(jù)撥項(xiàng)在共享內(nèi)懸存中保存的文空間。確readm察eter歲總表抄表模胡塊介例抄表模塊根駐據(jù)仆readm諷eter.滔ini非的配置信息欲決定哪種電蜂表類(lèi)型抄讀奴哪些數(shù)據(jù)項(xiàng)退。配置文件蘿中的數(shù)據(jù)項(xiàng)蛇已擴(kuò)展成為鋤內(nèi)部規(guī)約,嫂與電表規(guī)約烘中的數(shù)據(jù)項(xiàng)侄已無(wú)一一對(duì)章應(yīng)的關(guān)系。沫menu劇菜單界面模跟塊鈴怖菜單界面顯姓示內(nèi)容是通絲過(guò)林XML僚文件格式來(lái)個(gè)配置的,其影中包括慰shift近-acmp蝕.xml,濃shift霜-auto襪.xml,辯menu.妥xml癥三大部分,姜各地的差異叛通過(guò)變量灑LOCAL投E殼區(qū)分開(kāi)來(lái)。這propa遍rse巷規(guī)約解析模攀塊衰憤規(guī)約解析使忙用了兩套配廉置文件揮ini趕和隸xml術(shù)。前者用于辛配置拆AFN&F矛N先的數(shù)據(jù)解析饒,后者是根乳據(jù)各地情況鄰使用插件對(duì)條差異項(xiàng)進(jìn)行注配置。前者紀(jì)配置文件還罩與實(shí)時(shí)庫(kù)和驗(yàn)數(shù)據(jù)庫(kù)有關(guān)搖聯(lián)。刷TaskM嘆anage扭抄表管理枯鍵抄表管理模園塊開(kāi)始時(shí)使伴用熱ini要文件配置,務(wù)后轉(zhuǎn)為礎(chǔ)gdbm+椅xml園方式。配置教文件主要是申設(shè)置定時(shí)抄劫讀的數(shù)據(jù)項(xiàng)筆,這其中使蹦用了一套內(nèi)助部標(biāo)識(shí),抄婚讀上來(lái)數(shù)據(jù)崇直接保存到拼數(shù)據(jù)庫(kù)。六TaskE罷xecut廉or喉抄表執(zhí)行濾狗抄表執(zhí)行模支塊使用了將ini戚文件配置,頸實(shí)現(xiàn)內(nèi)部標(biāo)柄識(shí)到電表規(guī)破約數(shù)據(jù)標(biāo)識(shí)狼的轉(zhuǎn)換。抄料表程序根據(jù)丈電表標(biāo)識(shí)抄你讀電表的數(shù)主據(jù),根據(jù)內(nèi)任部標(biāo)識(shí)保存謝從電表抄讀小上來(lái)的數(shù)據(jù)乏。見(jiàn)watch疼dog貝運(yùn)行程序監(jiān)貌控懲揚(yáng)通過(guò)南watch嶼dog.c醫(yī)onf圈配置文件決悔定要啟動(dòng)哪裙些程序,以潔及這些程序弟的執(zhí)行方式提。當(dāng)有程序密異常退出時(shí)原,穩(wěn)watch抹dog辮需要根據(jù)配豎置文件再次港啟動(dòng)這些程沉序?;橐驯M管從開(kāi)發(fā)顏技術(shù)的角度鵲看,機(jī)制與歇策略在怠Termi矩nal孝平臺(tái)上的應(yīng)情用是成功的嗓,但是從維虛護(hù)管理的角閱度看,這些霸應(yīng)用考慮得豈卻不是很夠眠。有以下幾捧點(diǎn)原因:位策略沒(méi)有形侄成統(tǒng)一的風(fēng)冰格。項(xiàng)各模塊之間沃的配置風(fēng)格蠻迥異,沒(méi)有湖一位開(kāi)發(fā)員成敢說(shuō)已經(jīng)掌封握了所有模稻塊的配置。攻掌握這些配賭置的學(xué)習(xí)曲挑線很高,有吳些模塊的配暫置文件甚至鋪比代碼還難仁搞懂。幫助歌文檔也相當(dāng)籮滯后,開(kāi)發(fā)妨人員基本沒(méi)概有整理這類(lèi)痰相關(guān)的文檔怕或手冊(cè)。所槍以注定這類(lèi)棉策略只能由旬開(kāi)發(fā)模塊的侄人員自己維爭(zhēng)護(hù)。什解析策略的帳機(jī)制各有千意秋海。膠我們的配置什文件有件sqlit態(tài)e鼠格式的、誘gdbm碼格式的、倦xml耽格式的、口ini剖格式的、自可定義格式的奴、自定義困C參語(yǔ)言結(jié)構(gòu)數(shù)慧組等等,這慨樣情況最終棚導(dǎo)致了代碼償?shù)娜哂啵禃r(shí)抬高了代溝碼維護(hù)的成晚本。各類(lèi)配返置文件的解響析性能也參刺差不齊,程棄序?qū)π薷牡纳⒈O(jiān)控也只是勸輪詢(xún)方式,霉也有些配置競(jìng)文件使用起跟來(lái)還比較麻陶煩,需要經(jīng)澤過(guò)幾次轉(zhuǎn)換壇才能生效。耀機(jī)制與策略夜分離不夠徹蘆底。偶部分模塊的范策略沒(méi)有完刊全從機(jī)制中督分離出來(lái),屯其中或多或臥少還是存在外一些特殊處尸理的情況?;圻@些特殊處極理是對(duì)需求晌不確定的保追留,同時(shí)也訓(xùn)破壞了機(jī)制夾與策略模式魂的設(shè)計(jì)原則毫,直接的壞營(yíng)處是影響到康代碼的維護(hù)歪,有時(shí)一個(gè)仿新的功能需輕要修改多處夠代碼和配置攝文件才能實(shí)盲現(xiàn)。坊策略?xún)H僅是姨低層次的配嬌置。笑大部分模塊句設(shè)計(jì)的策略魄僅僅是停留漁在簡(jiǎn)單設(shè)置貪,沒(méi)有什么垮邏輯上的功約能,或者說(shuō)揪它不像是腳隔本更像是配玩置,這種思縫路限制了策犧略的靈活性槽。但是如果棋要提高策略虛的處理層次他,勢(shì)必需要城設(shè)計(jì)更復(fù)雜漸的處理程序牽。而事實(shí)上蛛,另外一個(gè)衰原因是參與東開(kāi)發(fā)的人員卻也缺乏相關(guān)頂?shù)慕?jīng)驗(yàn)。吼借鑒開(kāi)源項(xiàng)夕目的經(jīng)驗(yàn)不暫足。蝕設(shè)計(jì)一套優(yōu)絕秀的機(jī)制與扮策略的模式賀需要花費(fèi)不掃少時(shí)間和精餡力,而一般吸項(xiàng)目不可能李會(huì)有如此集吳中的投入。至在此情況下任本應(yīng)該最大嬸可能的借鑒部開(kāi)源項(xiàng)目的喪代碼,但實(shí)貢際上我們卻漲沒(méi)有這么做背,而是選擇治重新發(fā)明新?tīng)康妮喿?,盡提管這樣做也勵(lì)可以實(shí)現(xiàn)功個(gè)能,但是我疫們并沒(méi)有從枝中獲得好處肌。胳樣目前的情況顏并不是項(xiàng)目蘿缺乏機(jī)制與眉策略模式的撈運(yùn)用,而是憶對(duì)這種模式污運(yùn)用太多太凈雜,而且總乎體技術(shù)水平奪偏低,維護(hù)導(dǎo)成本又偏高枕。就好比花女了很大的力扯氣和很多的屠時(shí)間,卻搞挪了大量的低倆層次的重復(fù)蝴建設(shè)一樣。矛現(xiàn)在筍termi匆nal腔平臺(tái)已經(jīng)逐沾漸穩(wěn)定下來(lái)命,如果再進(jìn)攜行大的改進(jìn)廚必定是違背桃了航經(jīng)濟(jì)原則,景維護(hù)成本也碎會(huì)隨之陡增嬌。這就是設(shè)字計(jì)規(guī)劃欠下隔債,越往后竿償還代價(jià)越吐大。而就目問(wèn)前的情況來(lái)冠說(shuō),我們最菊重要的不是損忙著考慮如它何還債,而捆是要讓大家呆學(xué)會(huì)如何才圍能不欠下新葉的債。這樣威終有一日欠權(quán)債才可能真店正還清。山機(jī)制與策略犬的測(cè)驗(yàn)唯:限印現(xiàn)在我們開(kāi)異始做一個(gè)體債驗(yàn)項(xiàng)目,目糠的是通過(guò)這蝴個(gè)項(xiàng)目深刻吊理解機(jī)制與隸策略的特點(diǎn)娛,并能夠?qū)⒌┢鋬?nèi)涵轉(zhuǎn)化飯為自己的思鉛想,同時(shí)運(yùn)誰(shuí)用到實(shí)際的腫工作中。以翻下是項(xiàng)目的煩一些情況:放項(xiàng)目名稱(chēng):擱遠(yuǎn)程升級(jí)工話具蹲(勝u(mài)pgra界de敲)撓項(xiàng)目經(jīng)理:萄(陸負(fù)責(zé)考核成均員,以及分炮配任務(wù)垮)瀉項(xiàng)目成員:誤(季參與培訓(xùn)的枯所有員工,緩分為槽1付~障2皆人一組勵(lì))嗚開(kāi)發(fā)時(shí)間:弱(研有效工時(shí)兩臺(tái)周刊)項(xiàng)目背景:被滔剛來(lái)公司不鳳久的小蔣最描近接到一個(gè)米棘手的新任極務(wù)。這一次服領(lǐng)導(dǎo)要求他醒開(kāi)發(fā)一個(gè)用昏于給夾2000撤臺(tái)集中器進(jìn)顧行遠(yuǎn)程升級(jí)跪的軟件工具配。但由于時(shí)止間緊迫,他觀必須在兩周網(wǎng)時(shí)間內(nèi)完成潤(rùn),并且還要舉馬上出差去頓現(xiàn)場(chǎng)調(diào)試。味下面的一段醋對(duì)話描述了正當(dāng)時(shí)的情況嚴(yán):嗓挑小蔣:“這扔事看起來(lái)很貧困難,兩周認(rèn)時(shí)間內(nèi)完成資似乎不可能轉(zhuǎn)?!贝倚I(lǐng)導(dǎo):“是坐的,所以你厚要想辦法,撫在現(xiàn)有的測(cè)因試系統(tǒng)上改饑,這樣做會(huì)蝶快一些。”猜白小蔣:“那鄉(xiāng)套代碼我完沿全不熟,況屆且系統(tǒng)文檔想不全,編程餐也非常不規(guī)呢范,很多地計(jì)方完全搞不睜懂。我還是責(zé)要先好好熟桐悉一下吧。濱”汪舟領(lǐng)導(dǎo):“沒(méi)莊有那么多考捎慮的時(shí)間,鋼你趕緊去辦嚴(yán)吧?!绷锾穗m然小蔣很杠委屈,也給奉自己找了很視多理由,但塵最后還是得蜜接下這個(gè)任壁務(wù)。從上面訴的對(duì)話可以瓦看出,領(lǐng)導(dǎo)挨可能并不了秩解事情的真猜相,要在現(xiàn)帆有的系統(tǒng)上賢改一改就能倉(cāng)用,那只是衡在理想狀態(tài)槳下,如果開(kāi)蔥發(fā)人員對(duì)原僑有代碼不夠妙熟悉,可能屬會(huì)犯更多的輪錯(cuò)誤從而將販時(shí)間花費(fèi)在蚊反復(fù)調(diào)試和英修改中。當(dāng)牢然,我們也云了解到這個(gè)托項(xiàng)目確實(shí)很能麻煩,首先族,小蔣對(duì)于掙維護(hù)這套代聯(lián)碼缺乏必要逢的自信;其喬次,拋棄它婚又更需要足央夠的勇氣。肚如果這個(gè)任咬務(wù)交給你,瞎現(xiàn)在又該如山何做呢?煤毒(嗯,我想功我別無(wú)選擇漠。因?yàn)槲疑醢W至都不知道控那個(gè)糟糕的宜測(cè)試系統(tǒng)長(zhǎng)收啥樣。。。貓)壯項(xiàng)目名稱(chēng):皺通信報(bào)文解燃析器擁(普msgdu壽mp鼠)謹(jǐn)項(xiàng)目經(jīng)理:上(法負(fù)責(zé)考核成水員,以及分證配任務(wù)騙)百項(xiàng)目成員:沈(慕參與培訓(xùn)的嶼所有員工,史分為畢1爬~睜2霧人一組華)羅開(kāi)發(fā)時(shí)間:慶(挽有效工時(shí)兩慧周炊)項(xiàng)目背景:右緊最近新手小戴趙遇到一個(gè)沒(méi)煩心的問(wèn)題鞠,每次分析隱或調(diào)試終端具時(shí)都會(huì)遇到繳要解析誦通信岡報(bào)文的問(wèn)題裝。他希望能意夠有一個(gè)這覺(jué)樣的小工具迅:能夠叉解析主站與振終端或終端糊與電表之間驅(qū)的通信報(bào)文虧。這件事很器有意義,因級(jí)為手動(dòng)分析佳十六進(jìn)制通脫信報(bào)文不僅湖費(fèi)勁、速度甜慢而且容易弟出錯(cuò)。他在歲自己的日記里中是這樣描增述的:改飾“腥我快發(fā)瘋了膛。今天同時(shí)傲接到尖5惕現(xiàn)場(chǎng)技支人勿員的,樓其中慢2鄰個(gè)要求分析奮終端與主站闖通信的問(wèn)題聯(lián),軌3法個(gè)要求分析儉終端抄表的保問(wèn)題。而他春們都提供的左一堆十六進(jìn)良制通信報(bào)文扛足夠我分析鼠2欠兩天了,我灘簡(jiǎn)直就成了篩分析報(bào)文的藥工具。這種沫事情難道不爬能交給機(jī)器降來(lái)做嗎?“偏好事實(shí)上,現(xiàn)努場(chǎng)集中器的扭問(wèn)題分析離霧不開(kāi)通信報(bào)街文。試想一重下,如果這件些煩瑣的工漫作交給機(jī)器魔來(lái)做將是一驢件多么美好流的事情。甚取至不需要我統(tǒng)們出馬,現(xiàn)而場(chǎng)工程人員抬就能輕松搞疼定。當(dāng)然,寧這樣的軟件戒工具應(yīng)該設(shè)倡計(jì)得非常靈蕉活,既可以哪在欠PC鴨機(jī)上使用,謊又可以在終蚊端中運(yùn)行。該而終端中的純應(yīng)用也只要燕提供接口或課者管道連接朱,就能將分塌析報(bào)文的工監(jiān)作交給這個(gè)斃小工具來(lái)完敬成。這就是譯我們想要的權(quán):一款通用緩的報(bào)文解析孤器。開(kāi)發(fā)步驟:攪第一步,確譜定目標(biāo)。罵用幾句簡(jiǎn)短搭的話概括性客的說(shuō)清楚自壤己要做的事某或?qū)﹂_(kāi)發(fā)軟拴件的描述。腦目標(biāo)要明確層且務(wù)實(shí),如繼果目標(biāo)不實(shí)友際,寧可降蜘低一些也要憲保證切實(shí)可稍行。綠第二步,分緣析需求。證使用洪T(mén)odoL痕isto暈rMin筋dMaps剩的方式羅列貓出軟件需要竹開(kāi)發(fā)的功能室點(diǎn),想得越凳多表明你考役慮得越全面壩。除此之外伙,我們還要喂羅列出相關(guān)撫的測(cè)試工作拐和準(zhǔn)備工作斥等等。脖第三步,設(shè)假計(jì)方案。均進(jìn)一步分解相需求,并評(píng)極估每一項(xiàng)工喜作任務(wù)的時(shí)悅間投入和任錦務(wù)規(guī)模。最動(dòng)后對(duì)所有的律工作任務(wù)進(jìn)尤行優(yōu)先級(jí)排稼序,并根據(jù)東實(shí)際情況設(shè)沙立項(xiàng)目各階舊段的里程碑邪。牽第四步,實(shí)籠現(xiàn)功能。裙所有功能點(diǎn)牌應(yīng)該按照里看程碑的要求蕉分階段實(shí)現(xiàn)照,并且遵循斧“短,平,眠快”的原則扁。盡可能早敘的發(fā)布中間見(jiàn)版本,讓測(cè)劍試與研發(fā)的廣工作能夠并墾行起來(lái)。蠟第五步,開(kāi)裁始測(cè)試。判測(cè)試工作從貧分析需求開(kāi)樂(lè)始就要考慮家,并在第一裁個(gè)里程碑到吹來(lái)時(shí),就應(yīng)呆該開(kāi)始著手銹實(shí)施。盡可梳能早的開(kāi)展帽現(xiàn)場(chǎng)測(cè)試,悠現(xiàn)場(chǎng)才是產(chǎn)榴品應(yīng)用的真聽(tīng)實(shí)環(huán)境??荚嚟h(huán)境:乎礎(chǔ)項(xiàng)目管理平刪臺(tái):夕媽福:螞//192較.168.兵240.8篩/redm殖ine/p庭rojec燈ts/up跨grade陳需五:房//192蓋.168.拔240.8疤/redm訪ine/p行rojec狀ts/職msgdu恨mp延瀉迫請(qǐng)?zhí)崆埃ㄔ诶缺局軆?nèi))注綠冊(cè)帳號(hào)蘭歪撤:潔//192潮.168.盤(pán)24
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來(lái)五年長(zhǎng)期護(hù)理保險(xiǎn)企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略分析研究報(bào)告
- 未來(lái)五年汽車(chē)信息化企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略分析研究報(bào)告
- 未來(lái)五年蓖麻籽企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略分析研究報(bào)告
- 未來(lái)五年分餾試劑盒市場(chǎng)需求變化趨勢(shì)與商業(yè)創(chuàng)新機(jī)遇分析研究報(bào)告
- 未來(lái)五年淡水魚(yú)苗企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略分析研究報(bào)告
- 未來(lái)五年養(yǎng)殖淡水鰻鱺企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略分析研究報(bào)告
- 從“干旱”到“高寒”:區(qū)域認(rèn)知的整合與深化-七年級(jí)下冊(cè)《西北地區(qū)》《青藏地區(qū)》單元復(fù)習(xí)教學(xué)設(shè)計(jì)
- 路基巖溶注漿試驗(yàn)專(zhuān)項(xiàng)方案
- 管道油漆及防腐施工方案
- 探秘與鑒別:基于離子視角的常見(jiàn)物質(zhì)檢驗(yàn)-九年級(jí)科學(xué)教學(xué)設(shè)計(jì)
- 2026年安徽皖信人力資源管理有限公司公開(kāi)招聘宣城市涇縣某電力外委工作人員筆試備考試題及答案解析
- 2026中國(guó)煙草總公司鄭州煙草研究院高校畢業(yè)生招聘19人備考題庫(kù)(河南)及1套完整答案詳解
- 陶瓷工藝品彩繪師崗前工作標(biāo)準(zhǔn)化考核試卷含答案
- 居間合同2026年工作協(xié)議
- 醫(yī)療機(jī)構(gòu)信息安全建設(shè)與風(fēng)險(xiǎn)評(píng)估方案
- 化工設(shè)備培訓(xùn)課件教學(xué)
- 供熱運(yùn)行與安全知識(shí)課件
- 2026年及未來(lái)5年市場(chǎng)數(shù)據(jù)中國(guó)3D打印材料行業(yè)發(fā)展前景預(yù)測(cè)及投資戰(zhàn)略數(shù)據(jù)分析研究報(bào)告
- 2026年長(zhǎng)沙衛(wèi)生職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試題庫(kù)及答案詳解1套
- 煤礦三違行為界定標(biāo)準(zhǔn)及處罰細(xì)則
- 服裝廠安全生產(chǎn)責(zé)任制度制定
評(píng)論
0/150
提交評(píng)論