有經驗的程序員完成特定的功能會充分考慮可變的情況將這些地方提取出來定義為方法參數或者從配置文件中讀取這樣即使需求發生變化也能輕松應對要寫出易維護的程序應該在軟件配置化和程序動態化上下功夫特別提一提程序動態化現在開發網絡游戲的很多而且一般都會用到腳本引擎Lua來實現部分邏輯這樣在開發後期的調整相對變得輕松一點以後在服務器上做修改也不會要求重新啟動程序當然在一般的項目或產品中一樣可以考慮使用腳本引擎當然不一定要用Lua還可以有很多別的選擇比如DelphiWebScriptRemObjects Pascal ScriptAUTOMA atPASCAL SCRIPTERFastScriptInnerfuse Pascal Script如果還有更高的要求還可以考慮利用COCO/R (ParserBuilder)來實現自己的語法解析器
開發中通常會遇到自己不能解決的問題要知道你遇到的問題別人可能早就遇到過並解決因此請教他人或者請教Google通常是最好的選擇上論壇提問是沒有效率的方法
控件開發
控件分為不可視控件與可視控件不可視控件其實與一般的類沒什麼太大的區別只需要公布需要公布的屬性為Published如有需要也可以設計並注冊自己的屬性編輯器
開發控件也有專業的開發工具Eagle CDK和Eagle reAct您不僅可以很方便的創建類還可以在運行期測試控件可以很方便的修改屬性即時看到效果大大提高了開發效率
軟件破解
愈來愈多的開發者開始采用RSA來作為注冊的加密算法效果還算不錯雖然仍不能防止被爆破但是至少不會出現(內存)注冊機對軟件加殼也不是什麼防彈衣對於有經驗的破解者幾分鐘就可以用OllyDbg從內存Dump(先用Process Explorer殺掉屏蔽調試工具的線程)接著就是用Import REConstructor修復IAT再用Lord PE對EXE進行優化
DeDe可以讓破解者看到程序內的資源事件既可以靜態分析也可以在OllyDbg中對分析出的地址進行動態調試
破解Delphi控件當然也可以用DeDe但是我們有更好的選擇那就是DCUcu與DcuPas可以將Dcu直接反編譯成匯編代碼通過靜態分析其中的字符串以及調用的API破解真的是很容易
只有做到知己知彼才能做到有的放矢反破解就是做到以最小的保護代價來使得破解者付出極大的破解行動
版本控制
版本控制最流行的就是VSS CVS SVN我比較喜歡SVN但是由於在Delphi下始終沒有很方便的連接SVN的插件因此仍然是Delphi+VSS是最方便的版本控制的選擇VssConneXion是專門用於為Delphi增加VSS支持的插件確實為開發人員帶來了無比的便利Delphi+TortoiseCVS與Delphi+TortoiseSVN同樣也是不錯的選擇VSS最大的缺點就是只能在內網中使用除了可以透過VPN來允許遠程訪問外我們還可以用Dynamsoft SourceAnyWhere或SourceOffSite實現VSS通過Internet訪問當然VSS 也支持Internet訪問如果你是個人開發者覺得使用VSS也太麻煩不妨試試FileHamster
軟件測試
在提交給測試人員前要求開發人員首先做自測不要出現給測試人員的是一個都不能運行的版本這樣是對測試人員的不尊重
Java有JUnitNet有NUnit同樣Delphi也有DUnit這主要是用來做單元測試用的特別是在不停的代碼重構中能夠及時發現修改出的問題是每日構建中的重要組成部分開發人員在完成功能前就寫好測試用例代碼也稱之為測試驅動開發讓自己作為自己代碼的第一個用戶以確保自己提交的代碼是易用的正確的讓測試人員更專注於發現那些隱藏的邏輯性錯誤
TestComplete是AutomatedQA出品的專業自動化測試工具與Rational Robot和Mercury WinRunner相比特別適合用於Delphi開發的程序的測試自動化測試可以減輕測試人員的工作量提高他們的測試效率當然采用自動化測試對於測試人員的要求就更高了因為需要測試人員維護測試腳本
缺陷管理
測試人員的報告需要反饋給開發者同時又要知道開發者的修改意見上級主管需要知道當前的測試進度與修改情況這一切都是需要缺陷管理系統所管理的通常缺陷管理都是做成B/S系統當然也有提供客戶端的JIRA Mantis Bugzilla Axosoft OnTime Axosoft PowerTrack Bug Tracker BugFree Dev Hound SourceGear Dragnet TestTrack Pro URTracker同樣有很多選擇
[] []
From:http://tw.wingwit.com/Article/program/Delphi/201311/24782.html