企业应用不仅仅CRUD
2011-07-26 10:23 hanwesley 阅读(438) 评论(0) 编辑 收藏 举报“企业应用就是CRUD”,我现在要说,说这句话的人实在是太可耻了。
在企业应用中,最重要的莫过于数据和业务逻辑,业务逻辑发生变化,数据结构,算法实现,数据展现都将发生变化。
那么如何在多变的业务逻辑中解脱开发人员来呢?
“每天都在写Action,Service,Dao,好没技术含量啊”,经常听到同事这样说。
其实这些工作可以花上一周时间做个工具出来,说白了就是重复的活永远让机器去干。
我觉得程序员应该专注于以下几个方面的改进:
1)通用的解决方案
如果每个程序员就一个问题都去纠结一把,尽管对于个人提高来说或许很有用,但是对于一个项目组,一个公司,是没有任何传承的。对于提高整个团队能力没有一点帮助。
2)解放重复劳动,降低出错率
项目编码中有很多重复劳动,或许你觉得复制粘贴就可以了,这样也不费多少力气,但是你想过没,一旦你觉的这样写的不对时需要改变那将是多么浩大的工程啊?这其实反过来也是面向对象所讲的抽象,封装的作用,对通用的东西进行抽象,然后封装为一个组件或者一个方法。不要小看任何一个方法。比如中文乱码问题,事件处理,文件处理等
3)注重解耦,写简单的代码
一个项目过重,会造成什么?一方面维护困难,对老人依赖度高,新人熟悉起来很困难。另一方面,不便于扩展,第三方面,看代码费劲啊!!为什么要强调看代码费劲,其实回头想想自己写代码的时间多呢,还是看代码的时间多呢?其实很多人还是看代码远远大于写代码的时间,如果每个人写代码都能这样考虑,那么这个社会也就不会存在烂系统了啊
4)尽量使用通用协议
WEB工程一般都是建立在HTTP协议之上的,也就是当客户端一个请求到达,服务器处理请求,结果响应给客户端,但是HTTP是无状态的,对于相同的URL不会根据请求者的不同返回不同的数据。因此为了实现客户端和服务端的交互,我们通常会使用Cookie和Session来解决。
web应用中,系统之间数据传输如何做到呢?
如果调用返回的文本信息,比如可以返回XML数据,或者JSON格式的数据。
另外一个就是系统间的对象传输,文件传输,如何高效可靠的传输将是一个挑战。
5)提升系统单机处理能力
系统的单机处理能力相对重要,如果单机处理差,可以通过增加服务器来解决,其实很多传统行业不差钱的背景决定了这种。
现在不在流行大的巨型机啦,反而流行期PC集群,比如数据库集群,服务器集群,缓存集群,这些集群之前可能就是一个统一的接口,做一个负载均衡的功能和路由的功能,就拿数据库集群来说,可能通过当前用户的IP来取hash,分配一个数据库ID,将数据保存,衍生的问题就是恰恰这个机器挂了,怎么办?那就要看这个负载均衡如何设计了。目前Nginx已经内置了这种算法,原理就是,这台机器挂了,我把其分配到其他机器上。
6)单一职责原则
谁的事情就该谁做完,比如很多时候页面上的报表导出,又是一个请求到服务端,然后服务端又是一次工作,这其中网络带宽,IO操作其实没必要,既然是报表,就对页面的数据进行收集然后返回就可以了。
以上就是这三年来写代码的感悟,不对之处欢迎指正。