代码生成那点事
在微软技术中沉浸6年多了,我就常想啊,有没有一个工具,能让开发简单一点,哪怕就简单一点点?!
这还是去年的事情,手里的项目都成功上线了,我和james聊天,我说咱们的这几个项目很多地方长的都一样,有些模块功能也一样,以后的开发能不能将这些经验和技术积淀下来啊,不用再机械重复。
公司又招了两个新人,一男一女,都是刚毕业的,让我带,我就让他们一人维护一个项目,每个项目的架构和技术选型还都不一样,库房项目的底层是使用的ado.net的,直接写sql语句,而看板系统是使用的entity framework做的底层,写的都是linq语句,我就想能不能有一套成熟了技术选型啊?这样新人就能一起培训,也不用学那么多东西。
每当核心功能和代码出问题,都是我手把手教他们定位错误和修改bug,可有时候他们两个谁请假了,另一个人又不能补上,因为他们在不同的项目之间切换,技术门槛太高了,只能自己补上,感觉自己切换在两个架构中真累啊,有没有一套稳定的架构啊?
仔细回味这些事情,让我迷茫,让我沉思。
我决定写一个工具,一个能积淀经验的工具,一个能生成成熟的技术选型的工具,一个能生成稳定架构的工具。
James是2001年毕业于南开计算机系的大牛,关于架构的确定,我没少叨扰james,我们分析已有的项目架构,也找了很多微软的架构资料,有简单的,有复杂的,最后我们一致中庸的认为四层的架构是最优的,既降低了入门成本,又使系统具有了很好的扩展性。
架构很快确定了,可技术选型,我们出现了严重的分歧,他有他的一套技术体系,我有我的一套,数据库底层我听取了他的建议,采用entityframework,现在看来他是正确的,因为伴随着项目做大和跨库的要求,ado.net会乱作一团。James也肯定了我“从业务层提取接口,加入服务层”的方案,而界面层,我们默契的选择了轻量级的MVC框架。
架构和技术都选择好了,我就开始动手实践。不知道你在的公司是使用什么工具设计数据库的,我们公司都是使用Powerdesigner来设计数据库模型的,在使用过程中,我发现可以从中分析出很多有开发价值的东西,比如表之间的关系和备注中的信息,灵光一闪,为什么不使用Powerdesigner的设计文件做我的工具的数据源呢!
同时,我把这几年开发的项目都拿过来一块分析,找出共性,抽象出模型……
当你一头扎进你的兴趣的时候,约会的时间没有了,聊天的时间少了,周末的活动也少了,可是女友的抱怨越来越多了。
至此,狼奔代码生成器的思路在我的脑海中成型,一个让开发简单一点点的工具!
对比这几个信息化的项目,我发现都需要一个的权限管理系统,嗯!于是我就使用代码生成器写了一个通用的狼奔权限管理系统,方便以后可以基于此项目进行开发。
狼奔代码生成器官方网站www.langben.com
感谢为我打开程序员大门的导师james,感谢给过我帮助和鼓励的同事们,感谢网友对代码生成器提出的宝贵建议,我想说,正是因为有了你们,我才走到了今天。