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