以下內容,來自armstrong--面對軟體錯誤構建可靠的分布式系統;總結的很經典。
3 軟體工程原則
3.1 從乙個模組匯出的函式越少越好
模組是erlang的基本**結構實體。乙個模組可以包含有大量的函式,但是只有包含在匯出列表中的函式才能夠在模組外部被呼叫。從乙個模組的外部看,模組的複雜性決定與它所匯出的函式的個數。乙個只匯出
一、兩個函式的模組肯定比匯出幾十個函式的模組更容易理解。
使用者希望乙個模組的匯出函式/非匯出函式的比率越低越好,這樣他只需要理解匯出函式的功能就足夠了。
還有,只要模組的外部介面保持不變,模組**的編寫者和維護者可以任意改變模組的內部結構。
3.2 盡量降低模組間的依賴
乙個呼叫了許多不同模組中的函式的模組要比只呼叫了很少的幾個模組中的函式的模組要難以理解得多。
這是因為每次我們修改乙個模組的介面時,我們必須要檢查所有呼叫了該模組的地方。降低這種模組間的相互依賴將會簡化這些模組的維護工作。
我們可以通過減少乙個特定模組呼叫的不同模組的數量來簡化我們的系統結構。
還要注意,模組間的呼叫依賴關係最好形成的是樹型結構而不是環狀結構。例如:
a->b->c
而不要是:
a->b->c->a
3.3 將公用的**放入庫中
公用的**應該放入庫中。這個庫應該是相關的函式的集合,應該努力使得庫中包含的是同型別的函式。因此,像乙個叫lists的庫只包含對列表操作的函式,這是乙個好的決策;而乙個叫lists_and_maths的庫既包含對列表的操作的函式,也包含有數**算的函式,就不是乙個好的決策。
最好的庫函式是沒有***的。含有帶***的函式的函式的庫限制了其可復用性。
3.4 將「複雜的」或「髒的」**隔離到單獨的模組中
乙個問題的解決通常需要綜合用到淨**和髒**,那麼就把淨**和髒**放入彼此隔離的模組中。
髒**是指做了一些髒事情的**。如:
關於軟體工程
因為我打算畢業之後就找工作,也一直想進入程式設計相關的行業,這學期開始查詢了一些相關的資料。我想,如果要成為一名產品經理,這個課程是很有必要學好的。但是正如老師所說,這是一門工程學,因此有許多概念性的東西。學軟體工程以來,可能是還沒有轉換思路的緣故,感覺那些概念 很多連聽都沒有聽過 都是灌輸一遍,但...
關於軟體工程
高中文科生大學誤入了工科的軟體工程專業,在程式設計師的道路上一去不回頭.其實軟體工程要想學好真的敲 熬夜很重要,老師平時講課可能講的只是一部分,主要還是要靠自己在課下練習,留的那些作業一定要從大一開始自己認真做,不懂得可以問同學或者問老師,寫 思路也很重要。在學習過程中,一定要打好基礎,經常練習。不...
關於軟體工程
首先,我先做一下檢討,我這個人有嚴重的拖延症,從我寫這篇隨筆的時間就差不多可以看出來,有的時候必須逼到最後才準備去。關於這一點雖然我一直知道,但總是改不掉,所以我希望可以通過這門課給我乙個監督,使我能夠有所改進,加強專業課的學習和 的編寫,提公升自我的能力。對我而言,軟體工程則是一門講述合作的一門課...