有经验的程序员完成特定的功能会充分考虑可变的情况将这些地方提取出来定义为方法参数或者从配置文件中读取这样即使需求发生变化也能轻松应对要写出易维护的程序应该在软件配置化和程序动态化上下功夫特别提一提程序动态化现在开发网络游戏的很多而且一般都会用到脚本引擎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同样有很多选择
[] []