1.可維護性 代碼的可維護性和可擴展性的第一責任在架構(gòu),因為架構(gòu)要做相關(guān)的分析模型,劃分相關(guān)的單元模塊和接口,考慮組件和復(fù)用等各方面的問題. 架構(gòu)設(shè)計是高層次的往往只抽象出相關(guān)的類和包,對于每一個類中應(yīng)該設(shè)計哪些方法和函數(shù),并如何組織這些方法和子函數(shù)的調(diào)用關(guān)系,還必須進行詳細設(shè)計,這是編碼的可維護性和可擴展性的兩個最基礎(chǔ)的內(nèi)容. 能夠準確表達代碼實現(xiàn)意圖的言簡意駭?shù)淖⑨屖窃创a可讀性的一個重要內(nèi)容.好的源代碼應(yīng)該是可以自解釋的,因此注釋不應(yīng)該太多也不應(yīng)該全是些照字面翻譯語句的垃圾注釋.注釋的量一般占代碼總量的10-20%就可以了(如果注釋量超過30% 說明垃圾注釋太多,代碼的自解釋性不好很多應(yīng)該拆分為子函數(shù)的沒有拆分等原因).源代碼文件的文件頭要有注釋說明整個類的實現(xiàn)功能和流程,調(diào)用多個子函數(shù)的主方法方法頭要有明確的實現(xiàn)意圖和調(diào)用步驟的注釋(很重要),以方便維護人員和自己閱讀代碼. 方法和變量命名等要嚴格遵守相關(guān)的編碼規(guī)范進行命名.名稱不要怕長,名稱要能夠完全的體現(xiàn)出方法所實現(xiàn)的功能.如根據(jù)某一客戶編號查詢其的所有定單,則GetInfo, GetOrderInfo等不是最好的方法名.而應(yīng)該采用GetOrderInfoByCustomerNo,通過這種方法名稱即使不加任何注釋其它人員也可以很好的閱讀你寫的代碼. 一個類文件建立代碼行不易超過2000行,超過2000行都應(yīng)該拆分相關(guān)的擴展類或Helper類.在一個類文件中一個方法或函數(shù)不易超過50行,超過50行的可以考慮拆分相關(guān)的子函數(shù).但這個規(guī)則也需要靈活考慮,比如對于一些數(shù)據(jù)有效性或完整性判斷的函數(shù),超過50行一般不會存在任何問題. 每個軟件開發(fā)項目開發(fā)前都應(yīng)該定義相關(guān)的編碼約定或規(guī)范,該文件包含了命名,縮進,注釋,布局等各方面的內(nèi)容,在此就不再做過多的敘述. 2.可擴展性 編碼可擴展性的源頭是需求的可擴展性,首先需求人員要在需求分析過程中分析出哪些需求是易變化或會擴展的需求.只有需求考慮到了可擴展性,架構(gòu)在設(shè)計過程中才能夠有針對性的進行設(shè)計,否則只能夠后期對代碼進行重構(gòu)來實現(xiàn)源代碼的可擴展性. 可擴展性基于原有的經(jīng)驗積累和他人的最佳實踐.充分理解面向?qū)ο蠓治龊驮O(shè)計的思想和重要的設(shè)計模式.設(shè)計模式的精髓就是面向接口設(shè)計,而這個也是保持代碼的可擴展性的一個重要思路.另外在面向結(jié)構(gòu)方法中我們對數(shù)據(jù)表的字段或方法參數(shù)預(yù)留一些擴展字段也是常用的支持系統(tǒng)擴展的方法.好的擴展性的判斷準則有 a.設(shè)計到需求變更或新需求時候或是新增類文件或是新增方法,而不是對已經(jīng)有的多個源代碼文件造成影響 b.設(shè)計一些簡單的擴展時候,可以靈活的通過配置文件來實現(xiàn)而基本不用修改源代碼 我們對需求的理解也是逐漸細化的過程,因此一開始就得到完全健壯的代碼是很難的,通過需求的不斷細化和需求的變更來Review我們的代碼實現(xiàn),適時而不斷的對代碼進行重構(gòu)才可能得到健壯和可擴展的代碼. 3.安全性 安全性仍然屬于代碼內(nèi)在質(zhì)量的一個內(nèi)容.但平時在開發(fā)過程中往往并不會特別注意代碼的安全性.對于軟件系統(tǒng)的安全性基本可以專門開專題來討論,在這里僅僅簡要說明一下. 首先是源代碼應(yīng)該防止被反編譯,相關(guān)的重要數(shù)據(jù)和數(shù)據(jù)庫連接串等信息都應(yīng)該加密進行存放.其實是在分布式應(yīng)用中要注意數(shù)據(jù)傳輸?shù)陌踩?防止數(shù)據(jù)被非法獲取.對于暴露的遠程服務(wù)要注意身份認證和識別,防止他人偽造客戶端進行調(diào)用.其次整個系統(tǒng)應(yīng)該有完善的權(quán)限模型,除了最簡單的業(yè)務(wù)功能權(quán)限外,還應(yīng)該根據(jù)需要對系統(tǒng)中相關(guān)的業(yè)務(wù)對象有完善的靜態(tài)權(quán)限和動態(tài)權(quán)限的控制機制. 4.系統(tǒng)的健壯性 系統(tǒng)的健壯性比較重要的一點就是系統(tǒng)對異常的捕獲和處理能力.因此對于一個軟件系統(tǒng)應(yīng)該有完善和獨立的異常處理和日志記錄機制.當出現(xiàn)不可預(yù)見的錯誤時候不會導(dǎo)致整個軟件系統(tǒng)或操作系統(tǒng)的崩潰.同時系統(tǒng)還需要記錄足夠的異常和日志信息,以方便后續(xù)維護人員對問題進行跟蹤和分析. 開發(fā)人員在代碼編寫過程中要注意異常的捕獲,對于多層分布式架構(gòu)應(yīng)該在每層都有相關(guān)的異常處理代碼,同時要分清楚哪些異常屬于當前層的異常應(yīng)該進行處理和屏蔽,哪些異常應(yīng)該向上一層
|