卓越的控制系統(tǒng)編程人員在設(shè)計(jì)上花費(fèi)的時(shí)間更多,這樣他們?cè)趯?shí)施階段就可以節(jié)省時(shí)間了。盡管這看起來(lái)是在鼓勵(lì)你要足夠懶惰才能成為優(yōu)秀的控制系統(tǒng)程序員,實(shí)際上你要足夠聰明和高效,并且對(duì)于編程時(shí)間和預(yù)算有相當(dāng)?shù)陌盐铡?br /> 僅有良好的編程習(xí)慣并不足以造就一名優(yōu)秀的控制系統(tǒng)程序員。在開(kāi)發(fā)穩(wěn)定、可靠、高效和精致的控制系統(tǒng)的時(shí)候,需要多種技巧。如果你想成為一名偉大的控制系統(tǒng)程序員,看清自己的長(zhǎng)處和短處都至關(guān)重要。控制系統(tǒng)程序員最常見(jiàn)的一個(gè)弱點(diǎn),就是系統(tǒng)設(shè)計(jì)能力。很多控制系統(tǒng)程序員都是自學(xué)成才,沒(méi)有經(jīng)過(guò)多少正規(guī)的軟件工程訓(xùn)練。即便是那些擁有計(jì)算機(jī)科學(xué)學(xué)位的人也是如此,因?yàn)樗麄兏雨P(guān)注軟件編碼細(xì)節(jié),而不是系統(tǒng)設(shè)計(jì)和架構(gòu)。然而,只有擁有良好的設(shè)計(jì)習(xí)慣,才能保證開(kāi)發(fā)出來(lái)的系統(tǒng)穩(wěn)定、可靠并且高效。 減少總體時(shí)間 最好的設(shè)計(jì)習(xí)慣,就是要“懶一點(diǎn)”。這么說(shuō)的意思是盡量通過(guò)在設(shè)計(jì)階段花費(fèi)更多時(shí)間、減少實(shí)施階段的時(shí)間,減少代碼數(shù)量,從而降低編寫(xiě)、測(cè)試、建檔、改錯(cuò)和安裝的工作量。最好把時(shí)間花在只有1000行代碼有效設(shè)計(jì)開(kāi)發(fā)上面,這要好過(guò)使用10000行代碼、沒(méi)有經(jīng)過(guò)仔細(xì)思考的繁雜設(shè)計(jì)。 想要成功“偷懶”,就需要從不停止閱讀和學(xué)習(xí)新的架構(gòu)和新的方法。軟件開(kāi)發(fā)并不是在定義完備而且穩(wěn)定的環(huán)境下進(jìn)行的,它通常都會(huì)不斷演進(jìn)。五年之前不可想象的架構(gòu),現(xiàn)在卻已經(jīng)成為了主流解決方案。最好的學(xué)習(xí)新設(shè)計(jì)模式和簡(jiǎn)單方法解決問(wèn)題的途徑,就是養(yǎng)成閱讀專業(yè)雜志和博客的習(xí)慣。每天花至少30分鐘閱讀其他人設(shè)計(jì)解決方案的心得。 有一些非常特別的設(shè)計(jì)系統(tǒng)值得學(xué)習(xí),首先是要設(shè)計(jì)界面,然后是算法。通過(guò)先行設(shè)計(jì)界面,你會(huì)從代碼用戶的角度接觸到問(wèn)題。你應(yīng)該設(shè)計(jì)一個(gè)易于使用、不需要了解關(guān)于實(shí)施算法知識(shí)的界面。如果理解你界面的時(shí)候需要考慮的空間最小,也就容易進(jìn)行改錯(cuò)和建檔。 養(yǎng)成重用設(shè)計(jì)的習(xí)慣,這是“懶惰”的終極奧義。不要害怕從之前的項(xiàng)目里剪切和粘貼設(shè)計(jì)元素。建立并且使用可重用設(shè)計(jì)資料庫(kù),并將資料庫(kù)與設(shè)計(jì)伙伴分享。造成無(wú)法重用的一個(gè)糟糕設(shè)計(jì)習(xí)慣就是過(guò)度泛化。你可以針對(duì)重用進(jìn)行設(shè)計(jì),但是如果你在某一個(gè)設(shè)計(jì)元素的一般化方向上走的太遠(yuǎn),就會(huì)有風(fēng)險(xiǎn)使得界面過(guò)于復(fù)雜。在進(jìn)行設(shè)計(jì)的時(shí)候,要考慮設(shè)計(jì)重用的可能性,但是不用試圖使用超過(guò)50%到75%的重用元素。 正確建檔加速驗(yàn)證 養(yǎng)成進(jìn)行規(guī)范顯示設(shè)計(jì)的習(xí)慣。使用UML(統(tǒng)一化建模語(yǔ)言),對(duì)設(shè)計(jì)建檔,這樣它們就易于理解和驗(yàn)證。UML在軟件工程中的地位就和電路圖在電氣工程中的地位一樣。沒(méi)有哪個(gè)電氣工程師在不借助電路圖的情況下就會(huì)匆忙開(kāi)始進(jìn)行布線,同樣也不應(yīng)該有軟件工程師在沒(méi)有UML定義的情況就開(kāi)始編碼。 你所養(yǎng)成的良好設(shè)計(jì)習(xí)慣,會(huì)減少你需要編寫(xiě)的代碼量,讓你成為一名更好的控制系統(tǒng)程序員。仔細(xì)地考慮設(shè)計(jì)中的重用元素,正規(guī)建檔,是最先進(jìn)架構(gòu)和模型的根本,這樣控制系統(tǒng)才會(huì)更加穩(wěn)定、可靠并且容易維護(hù)。 |