“一键运行” ——全面自动化delphi开发环境 -

 

在平台和产品合作开发的模式下,产品并不拥有全部代码。因此有些产品的问题,需要和平台代码联调,如果环境搭配对了,解决问题往往是比较容易的事情。但是没有调试环境下,仅仅静态查看代码就常常陷入僵局。

因此,环境安装是平台和产品程序员顺利高效合作的重要部分。这里面最为重要的是一键运行——拿来代码,打开工程,按Run——然后该干嘛干嘛。

 

但是现在的情况并不乐观。局部来自于delphi本身的设计不合理,也来自于我们对这个环境建立的过程不够重视。常常会遇到的问题是:

 

1.          需要目录来输出dcu文件和exe文件。包括 dcu/bin目录

2.          需要产品内的公用库。如函数库、类库、控件(常常还需要安装)

3.          拿过来的文件和目录就是不完整的。

4.          需要自己建立数据库的连接。自己手工建立数据库,甚至是插入和修改数据。

5.          有些问题需要外部设备和硬件:比如软件狗

 

因应上面的问题,尽管说的是一键运行,但是涉及到的问题方方面面,其实是一个综合问题。我们考虑到以Want 工具为中心来解决它们:

 

1.          want加入task来创建需要的目录

2.          want加入task,在指定的仓库内export目录到当前工程的lib

3.          因为源代码,库都在一个大目录内,因此需要解决问题时,一个目录一起丢过来就是,不存在文件不全的问题

4.          连接提出问题的程序员的中间件是一个简单的方法。更好的方法是提供问题的testcase,就只是运行这个testcase 就可以定位问题。

5.          提供设备的Mock:比如软件狗的Mock来模拟软件狗的运行。

 

仅仅是为了一键运行,在delphi内也是颇费思量,更不要说在delphi在平台模块化方案设计上经历的痛苦——我们花费了一周时间讨论,也没有很好的方法——现在明明有些是业务性的东西,也必须在平台内修改。因此最终的方法,还是迁移到dotnet上来。

 

引入want也要求目录结构更加规范合理,我们现在的做法通常是这样的:

src,   源代码

Lib,库

Test ,测试用例

Tool\want :want工具

Want.xml: want 任务文件

少用第三方控件。

 

采用svn exportsubversion的导出工具)的方法,好处很多,包括“lib目录在svn内没有副本”,“ 开发者也不能lib”,尽管“ 在客户端可能会有多个lib副本”,不过现在这个缺点局限于客户端,而不会影响服务器

 

这篇文章涉及到以下知识点:

 

1.          TDDTest-driven development 测试驱动开发),我们的书架上就有。以后随着trd和项目组合作的逐步深入,tdd的概念会越来越重要,进而成为每个程序员的必备工具箱之一。Testcase,Mock都是TDD的重要概念。

2.          Delphi的自动化工具——Want 工具的使用。

3.          Testcase中的Mock的概念。


发布了4 篇原创文章 · 获赞 0 · 访问量 2304
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章