做开发框架是进入软件行业没多久就有的一个想法,真正开始做的是在盐城出差的那一次,头一次加班!做程序员加班是很正常的,但是我很少加班,可以说“惯坏了”。
多数情况,项目比较急,公司为了效益会接一些项目,客户给的Deadline正常工作时间内根本就是不可能完成的,这种情况的加班是不可避免的,人性一点的公司会考虑增加项目人员,招人或者从别的项目组里调外援,但是这就意味着成本的增加。多数的公司是直接要求加班,而且甚至会将加班作为一个考核内容,加的多说明你工作态度好,认真负责,我记得有一次我在的一个项目小组的组长通宵加班,一夜没睡,第二天还要上班,怎么说呢……难怪那么多猝死的!
快速开发框架可以在一定程度节约开发时间,开发这个框架我完全是从一个开发人员的角度去设计的,所以对于初学者可能入门不是很容易。有一次一个小公司老板找到我说是“合作”,有提到说我的这个东西的定位有问题:个人用户没有市场,企业用户人家比你的好。我是认同的,首先我不认为我的东西有多牛逼,这个只是我的一些想法的集合,我可以接受别人说他不好。当然更多的人是比较留面子的,都表示能很大程度提高开发速度,更多的在怀疑效率和性能。在面对大数据检索的时候,开始我没有考虑这个问题,甚至没有分页,格局不够。当后面越来越多的遇到这个问题,才意识到这个问题,查询优化什么的暂时不说了,分页总要有的,所以我做了分页。有做过测试,百万数据分页之后1秒左右可以出数据,做到这样还可以吧。
我是一个懒惰的开发者,很多时候开发人员在做的都是无意义的重复劳动,所以有人创造了代码生成器,当有些工作代码生成器不足以完成时,又有人创造了开发框架,归根结底无非是为了偷懒。做程序员的乐趣在于创造,而不是劳动,当然劳动者最光荣!!!程序员需要更高效率的劳动才不会被淘汰。
回来继续谈工作,我一直是在从事的ERP、MES相关开发,所以接触最多的无非是数据库,而干的最多的是就是数据库的增删改查!前面有说我的小组组长通宵加班,当时公司所用的开发方式是这样:首先是ADO.NET,但是没有自己的ORM,用手动拼接的Sql查询数据,将DataTable 手动转成Entity,在对Entity进行操作,然后用Entity手动拼接Sql字符串。当然其中有用代码生成器完成一些标准操作。这些操作中我强调一下“手动”首先这些手动可以直接用EF自动完成,不想用EF可以用第三方ORM完成,这样的开发方式效率上没有任何优势,也难怪需要加班,搞不懂为什么总是这样的公司能接到订单。当然我也有提过改善建议,但是因为各种原因没有得到采纳。(插一句:公司的存活和技术关系不大!但是想要更好的发展应该还是有点关系的……)所以我的框架包括了自己做的一个ORM,然后就是各种比较实用的一些辅助。
最后聊一聊权限管理,首先权限需要控制谁可以做什么,直观的就是哪个用户可以打开哪个页面。受NFine的启发还有一个该用户可以打开这个页面了,是否可以操作某个按钮。之前有网友提到指定某个用户可以对特定字段操作,这个控制的比较深入了,我的设想是将这个字段的解除锁定放到按钮里,通过控制按钮来控制字段。权限管理是所有多用户系统都需要考虑的一个功能。