应用开发平台与代码生成工具感想


应用开发平台与代码生成工具感想

聪明人干重复事情会怎样?

作程序员十多年了,经历了太多的规律性需求的重复建设。我想我是个聪明人,因为每次干这种重复事情,都需要忍耐枯燥而又必须细心,每次我都痛不欲生。我非常需要一些善解人意的辅助开发工具,实在是需要解脱或者减少那种痛苦。

必须积累可复用模块

必要性不容置疑,这个世界不允许每次重复写已经写过一次的东西,否则你就会苦守清贫。

显然DBHelper就是这样的东西,本人就总结MS Access、MS SQL Server、Oracle、MySQL四种数据库的规律,写了一个通用于它们的mySagasoft.DBUtility2010。对于加密保护数据,则写了个mySagasoft.Utility.Encryption。对于特种领域或方向的通用性,也有相应积攒,如mySagasoft.Utility.GisFunc。而一些最最常见的通用问题,也写一些通用类库,目前有个mySagasoft.Utility.Lib01。至于javascript、ASP.NET等等,莫不如此啊。

必须积累参考项目

无论参考别人的源码、或者界面风格,甚至程序结构,都是必要的,现在的IT上帝不允许普通人闭门造车——在这一点上我把自己当作普通人。

数据库/数据访问的规律性需要代码生成工具

本人主要长期专著于基于数据库的管理类软件,无论WinForm的桌面软件,或者Browser内Web界面,其对后台数据库访问都有着太多规律性、共同性,当然更多的是客户业务规则不同于数据库模型的特殊性,及不同管理系统所针对业务的不同性。作为“老”的程序员们,就非常需要从这些不同中找出规律和相似,需要成熟的代码生成工具,或者总结出良好的解决方案,进一步制作辅助开发工具,提高生产效率。

对于后台数据库访问的规律性可以总结出来,可以结合各种技术结构/架构而编写出一些代码生成工具,如李天平的三层结构代码生成工具,MVC智能生成代码,开放性工具CodeSmith更可以自己定制生成代码的模版等等。

当然,软件界面开发也是有部分工作量是很有规律的,那么如果总结了适当的经验,也是可以制作出专用的代码生成工具的。经过多年的行业锻炼后,本人觉得项目编码中最费时间、最麻烦的还是界面部分的开发,所以把界面开发中规律则性部分的任务通过生成工具来解决,实在是功德无量啊!

项目开发中常见数据库操作,也是可以有代码生成工具的,如自动导出/导入数据、自动建表、自动生成脚本等等。

必须的应用开发平台

前面说的都是针对项目某方面规律性的解决方法,也有针对整体项目的开发辅助工具,就是应用开发平台。对“老手”来说,各种应用中相似性太多了,可以根据这些相似把应用分为各种类别,就可以针对某个类别来制作适用于这个类别的辅助开发工具,因为涉及的方面比较多而相对全面,而成为“开发平台”。

确实,不少管理软件中,用户权限功能(数据库、中间层、界面层3部分)的模型是相同/相似的,而本人觉得基于角色的权限/功能模型是应用非常多的,所以可以把这部分功能(数据库、中间层、界面层3部分)制作成可服用的。

当前大多数稍微复杂点的应用中都具有日志管理功能(数据库/磁盘文件、中间类库、界面层3部分,可以使用部分流行的开源代码模块再定制自己的实现,也可以完全自己定制。

不少项目中有会员管理功能,尽管会员策略各有不同,但是也可以把相同的那部分写成半成品,以后用的时候再添加/修改啊。网上交易的购物车功能也是可以开发成半成品的,由于其对可靠性的要求,所以更加需要提前编写与测试。

大多时候数据表的规律性操作及界面需求是非常规律的,这种需求尽管可以使用专用的代码生成工具来解决,但是针对系统整体来着眼,根据需要引入用户权限功能模块、日志管理模块,就是最基本的应用开发平台了。

这是我个人的体会:与上面的“应用开发平台”比较,Microsoft、SUN Java提供的各种开发工具,只能说是实现与使用开发技术的的工具,基本不涉及管理类软件的业务性规律,无论ASP.NET MVC、Java SSH,还是微软的工作流,都太“碎”,太“原始”了,那些智能界面控件与数据源的绑定都太机械别扭,毛病太多太麻烦了。

嗯,工作流功能也是有很多通用性的,目前业内很多第三方应用开发平台提供这就内含了工作流定制功能。本人曾经使用过eform/eworkflow,是针对企业内网管理软件需求的一款开发平台,有不少优秀的地方。也许本人没学好,对其也有很多不满意的地方。

像许多企业产品展示/在线交易网站中的商品展示功能、各种指标排名功能都可以开发成服用模块集成在应用开发平台中的。

最后

作为成熟的程序员/团队/公司,都是必须借助各种辅助开发工具来快速、可靠地处理项目工作中那些规律性的任务,而把精力与资源投入到不规律的特殊性上,否则机会举步维艰,步步艰难。

本人长期混在山西太原,这里的软件公司大多一直手工编码,真不知怎么说。

优质内容筛选与推荐>>
1、程序员们,到了背起你的行囊的时候了!
2、Foundation的sass版本
3、安装软件的烦恼
4、各种语言的api
5、对象与变量


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号