一個好的程序架構應該是什麼樣的?

學習更多嵌入式Linux、Qt以及嵌入式單片機關注公衆號“愛玩嵌入式”:

“程序架構是在構建程序初期需要完成的任務,一個程序的架構直接影響了整個工程的實現流暢性以及出現bug的概率”

一套比較大的工程往往需要許多人去完成,這麼多人的協調一般來說是一個大問題,如果這個工程在最初構建就有一套清晰完整的框架,那麼後期協調也會變得順暢。這就涉及到了一個問題,我們如何去搭建一套漂亮的代碼架構去避免在實現功能的階段發生低級邏輯問題呢?

首先負責代碼架構的人一定要思路清晰,一定要考慮到種種可能出現的問題。就比如說我封裝的函數要傳入哪些參量,以什麼形式傳遞進去,我是不是需要返回值或者以其他形式將這個我需要的變量傳給外部的變量;再比如說,我的一個函數是定義在哪個文件裏使用起來會更加方便,這個要考慮函數的實際意義,在哪個文件內使用的次數多就定義在哪裏;或者我們有一個項目要有一個主界面,我們是不是要在這個文件內進行數據傳遞,還是另外定義一個文件去進行數據傳遞,這些都是我們要考慮的地方。

其次函數功能要單一。一個函數就像是一個小夥子,一定要專一,不能朝三暮四,又要讀文件,還要想着去處理數據,這樣做的話只會出現一個結果,就是這個函數既讀不好文件也處理不好數據,並且別的函數想去調用這個文件的原始數據去另作處理也是不容易做到。最好的辦法就是函數功能單一化,出現bug的概率更小,而且出現錯誤我們也可以很輕易的找到問題所在,更重要的是這個函數可以被重複調用,多次調用也不會影響工程的其他功能。我們可以回顧一下,我們所調用的各個庫的函數,都是極其優秀的代碼,功能是不是也是單一的呢?

再一個是要充分利用語言的優勢。拿c++來說,我們在寫c++代碼時一定要利用他的封裝、繼承和多態三大特性,這樣我們寫出來的代碼更簡潔高效。封裝指的是我們可以在類中將我們不希望外界調用的函數或者成員變量設置成私有(private)或者保護(protected)成員的形式,而外界需要調用的設置成公共成員(public)的形式,這樣不僅保護了我們的函數不被改變,並且也告訴後來者不必去動我的私有和保護成員的函數和變量;繼承指的是一個類被定義了之後,可以去由其他有需要的類去繼承父類的成員公共或者受保護成員的變量和函數,這樣使得我們很多函數和變量不必去重複定義,減少代碼量;多態指的是定義在父類內的虛函數,可以被子類重新定義,這個過程我們稱之爲“重寫”,這樣做的好處是我們可以不必多次在每個文件中去定義邏輯相同的函數,大大提高了函數的重用。在其他的語言中我們也應注意到語言的優勢,利用這種優勢去完成任務。

總之,我們在構建代碼初期一定要倍加小心,“合抱之木,生於毫末”,任何一個小的邏輯錯誤就會造成整個產品的失敗。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章