要离职了把这个项目的总结贴出来,是不是反面教材(⊙o⊙)?

项目是把php改版成java。从8月份开始做。现在的规模是研发40人,测试12、产品16。以前略少一点。分成5、6个模块开发。重点是一开始就加班,每天8:30,周六不休。也就是连续加了半年多。加班算调休。很多人的调休时间累计有几个月了。

2月中上线。赶脚资金主流程没出什么大问题。交易金额没什么影响。客服、财务虽然意见大,吵吵也就完了,貌似先前预料落空了。

在我看来,项目特别不严谨,代码特别烂,一句话:Action当Service用,Service当DAO用,Action一个方法两百行正常,Service呢每个方法只有一行,return dao.find()。。其他模块不熟好像可能好一点。因为每个Action调用N个Service,事务也自然加不了了。表单验证都是js验证,Action不管。唉,算了。

叫我维护这种项目,不如杀了我吧。来了4个月了,开始两三个月,当作反面教材学了很多,真是难得的反面教材,但是现在什么都学不到了。改那些bug特么无聊的啊。。。

-------------------------------------------------------------------------------------------------------------------------------------------------

项目改进的步骤:

完善JS的输入校验与Action的输入校验。
登录注册优化。
检查事务控制。
添加数据缓存。
有限度的优化。
页面访问Action的优化与Action访问Service的优化。
命名的规范,包括类、页面、方法名、访问地址。
app业务层剥离,jar包代码全部写进app-service。
同时开展核心模块的重构。


规范概要:

1:手机号码、验证码都提供onblur()合法验证,验证提示显示在输入框后面。
2:表单提交时,先调用手机号码、验证码的onblur()验证一次,进入Action后,再验证一次。
3:表单提交使用ajaxSubmit异步提交,Action进行输入验证如果校验错误,提示显示在输入框后面,保持一致。
4:异步提交如果成功,跳转页面可以使用window.location.href等等进行跳转。
5:页面弹出、悬浮的样式,参考注册发送手机验证码,或者修改头像。
6:Action尽量只调用一个Service。
7:Action传入Service的参数,只能包括页面参数。其他由Service设置。
8:Action抛出异常的处理。
9:Action调用Service必须捕捉异常。Service中不应捕捉处理异常,而应该抛出,除非特殊情况。
10:insert方法返回值为String。
11:操作提示由Service返回,比如‘不可重复推荐’,Action取得提示,返回到页面,页面直接使用。
12:命名规则。Action、Service、Model等类名使用去nwd前缀的全称。页面命名使用全称的简写比如rp为前缀。
13:方法名可以使用rp为前缀。定义成员变量的Service名可以用rpService。
14:尽量不交叉修改代码。各个人的模块分清。也利于追究责任。
15:后台验证在最后一步做,前几个步骤仅仅使用onblur验证。
16:bug谁开发谁修改。
17:组长负责监督,解决难题,框架,不写普通代码。
18:如果一个页面包含几个子模块,子模块分别交给成员做,入口的公共页面应该由组长做。组长首先提供入口页。
19:页面、类的命名可以由一个人全部确定。风格统一。
20:开发应该从页面开始,然后才是业务逻辑开发。应该首先完成全部视图层。包括页面跳转。
21:功能点应该一个一个完成,完成后固定。绝对不允许一个功能做一半留到以后。
22:注册表单或其他表单的校验、提交方式。错误提示的方式。


一些问题:

1:所有人的开发环境应该统一并且声明。包括jdk、tomcat、编码格式等。
2:模块要经常做整合测试。冲突尽早发现。
3:测试及早加入。递进式开发。
4:开发数据库与线上数据库应该完全一致。尤其是表字段和唯一索引,差别越多,不利于开发更不利于上线。
5:数据库库名的设置。
6:app-website有很多数据不必每次去数据库查。应该放在缓存中。像友情链接、合作伙伴等。
7:应该鼓励员工提意见。藉此考察技术能力等等。但不宜奖惩。
8:页面Jsp的规范通告每个人。形成统一的界面风格。其次确定类的规范。
9:SQL 中的 LIMIT 应该使用占位符
10:SQL中的COUNT可以简化为自动查询
11:app调用erp模块的service,高耦合度。两个网站应该平行不相交
12:分页查询需使用分页父类
13:DAO、SERVICE都不应捕获一般异常,ACTION调用SERVICE时应放入异常块
14:SERVICE如果返回提示信息,应使用String返回值类型或者继承包含oprResult的父类。
15:字典表放进缓存
16:表单校验必须在js和Contoller同时使用
17:memberDTO登录后放进session
18:关键、复杂的部分应该最先进行,然后测试更长时间
19:功能点应该一个一个完成,完成后固定,测试,再进行下一个。而不是大量功能同时进行,一起交付
20:新版本发布时,应提供给测试详细的变更列表。应记录数据表大的改动。
21:必须建立代码审查。
22:所有出现的问题责任都在于领导。领导有必要提高技术人员的水平。
23:日志不规范,查错难。
24:上线应保证一旦失败可以回复到从前
25:可以分段上线。一次上一部分。核心部分不立即放开。
26:负载均衡、读写分离,开发测试要有线上完全一样的环境。
27:与论坛、社区的登录注册同步、发表回复等,开发测试要有一套论坛环境。
28:上线前模拟正式域名切换,排查域名相关的问题。
29:测试服务器的各种环境应该与线上完全一致。
30:银行、第三方接口、实名认证接口等需要最早进行开发测试,然后保证稳固。
31:开会的学问。
32:培训全面业务和技术。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值