11.34 为什么框架没有提供代码设计器或代码生成器?
2011-10-13 12:50
323 查看
每个公司或团队都有自己的开发习惯或开发模式,光标科技这些年来一直坚持CodeFirst,对于实体对象的分析设计,我们的流程是,先根据业务需求分析设计出实体对象及对象之间的关系,最终生产出UML类图,为了避免管理图纸与需求文档花去过多的时间,其它UML图在业务简单的情况下默认省略,只在业务复杂的时候配上流程图,帮助程序员写代码;代码规范与写法每位员工入职时必须先学习,框架结构与操作流程 也在真正进入开发前灌输到每一位开发人员,再辅以开发样例学习,这样避免了向每一位同事讲述系统构架、组件功能等等这样的工作,使每一位开发人员可以在极短的时间内投入到工作中,得到的结果与资深程序员没有什么区别,即使他并不明白其中所有原理,可以做到一边工作一边学习,至于可以上升到什么境界则完全取决于自身。
前面说到我们的数据实体对象是先有代码,再根据代码直接生成数据库。业务对象一般情况下都与数据实体对象一一对应,偶尔也有设计抉择、性能抉择等因素使得业务对象与实体对象不一致的情况,这里不做特别讨论。现在我们有了数据库结构,生成业务对象的代码完全交给了CodeSmith,代码生成器只能完成与数据对象的交互,简单的数据验证等工作,与业务逻辑相关的操作必须手工添加,至此整个从需求分析到代码实现的过程已经完成。
因此,在数据实体对象设计并生成代码时,我们用不着代码生成器,在业务对象生成时我们使用了CodeSmith,因此不必花力气去造车轮了,况且数据访问层的技术也有变化,为不同的变化努力并花去宝贵的开发时间,并不值得,毕竟客户要的是软件产品和交货日期,没有人会在乎你克服了多少困难。
关于界面的编辑与生成方面,因为我们所有工作都在业务对象中实现了,界面只是个交互与收集用户输入的媒介,因此工作相对简单,只是简单的拖控件,目前感觉是越拖越爽,完全没有觉得拖控件是低等程序员的自卑,相反我们鄙视哪些为做一个界面花几天时间,界面中代码横飞,错误不断的程序员,为什么要把工作做得如此复杂,简单点不好嘛?这样的好处还有一点照顾了不同程序员的特长,有些人对审美完全是少根筋,有些人对写代码看作是苦役,我们的观点与习惯是让程序员做喜欢做的工作,做做得好的工作。
关于拖控件的编辑环境,目前我们没有发现比VS环境做得好的,因此在可预见的未来不提供界面编辑设计器等工具。用VS就行了。
前面说到我们的数据实体对象是先有代码,再根据代码直接生成数据库。业务对象一般情况下都与数据实体对象一一对应,偶尔也有设计抉择、性能抉择等因素使得业务对象与实体对象不一致的情况,这里不做特别讨论。现在我们有了数据库结构,生成业务对象的代码完全交给了CodeSmith,代码生成器只能完成与数据对象的交互,简单的数据验证等工作,与业务逻辑相关的操作必须手工添加,至此整个从需求分析到代码实现的过程已经完成。
因此,在数据实体对象设计并生成代码时,我们用不着代码生成器,在业务对象生成时我们使用了CodeSmith,因此不必花力气去造车轮了,况且数据访问层的技术也有变化,为不同的变化努力并花去宝贵的开发时间,并不值得,毕竟客户要的是软件产品和交货日期,没有人会在乎你克服了多少困难。
关于界面的编辑与生成方面,因为我们所有工作都在业务对象中实现了,界面只是个交互与收集用户输入的媒介,因此工作相对简单,只是简单的拖控件,目前感觉是越拖越爽,完全没有觉得拖控件是低等程序员的自卑,相反我们鄙视哪些为做一个界面花几天时间,界面中代码横飞,错误不断的程序员,为什么要把工作做得如此复杂,简单点不好嘛?这样的好处还有一点照顾了不同程序员的特长,有些人对审美完全是少根筋,有些人对写代码看作是苦役,我们的观点与习惯是让程序员做喜欢做的工作,做做得好的工作。
关于拖控件的编辑环境,目前我们没有发现比VS环境做得好的,因此在可预见的未来不提供界面编辑设计器等工具。用VS就行了。
相关文章推荐
- 为什么控件的有些属性在代码中可用,但是在设计界面的属性窗口中就没有
- CSDN 插入代码测试,为什么没有显示呢
- js做的打字小游戏~按下键盘的时候为什么没有反应,附上我的代码
- 下面代码出现错误:[下面的框架可能不正确和/或缺失,没有为 kernel32.dll 加载符号] ,请问是怎么回事啊?
- zookeeper应用——集中配置管理系统的实现(只是设计,没有具体实现代码)
- 一个通用的单元测试框架的思考和设计08-实现篇-在testcase代码中执行sql语句
- 应用框架的设计与实现——.NET平台4.2代码测试问题解决
- 你有没有注意到vs2008右击设计视图有时没有【查看代码】?
- 1j2ee即web项目,严格意义上来说,没有jsp代码,只有class文件、html文件、javascript文件。2 基于extjs框架的项目怎么怎么查看在浏览器中展示的最终html页面的代码 3
- 设计器加载程序未提供根组件,但没有指出原因
- 基于nodejs express框架设计的 相册上传和查看 以及代码分析
- TabHost ----使用1(用代码来实现功能但没有将界面设计和代码分开)
- 一个通用的单元测试框架的思考和设计08-实现篇-在testcase代码中执行sql语句
- 之我见:没有像样的需求分析、设计就草草开始分块写代码
- CSDN 插入代码测试,为什么没有显示呢
- 什么是框架,框架和设计模式的关系,为什么要用框架?
- 可以确定找对了窗体的handle,可是为什么如下代码发送组合键会没有反应呢?
- TGraphicControl(自绘就2步,直接自绘自己,不需要调用VCL框架提供的函数重绘所有子控件,也不需要自己来提供PaintWindow函数让管理框架来调用)与TControl关键属性方法速记(Repaint要求父控件执行详细代码来重绘自己,还是直接要求Invalidate无效后Update刷新父控件,就看透明不透明这个属性,因为计算显示的区域有所不同)
- 插入代码,为什么没有行号?????
- 使用 .NET 框架将现有代码作为 Web 服务提供