外包项目的几点杂谈

 

 

工作中经常会接触到外包的项目,并且需要维护。总体感觉是外包的项目代码质量很差,这是由于外包项目的成本决定的,参与项目开发的人员都是一些新手。总结来看,一个外包项目是否成功,在于后期的维护、扩展成本,而保证项目设计与代码质量的前提就是一定要有一个项目监理人员,负责审核项目的设计与代码质量。这个项目监理人员也可以外包,但一定要找有经验的架构师担任。

 

从最近的一个项目来谈,某电子商务公司,在前期没有技术团队,其订单系统等的管理是外包实现的,从使用情况看,除了操作界面比较难看之外,该有的功能都有了,在验收测试中也很难发现什么问题。但随着系统的使用,不断需要维护增加功能,问题就越来越明显了:

1.       出现串单现象:是由于使用的Struts1框架,但没有遵守FormBeanreset规范,后期维护的代码越来越多,问题也越来越多。

此问题是典型的项目设计问题,并且没有很好的文档说明

2.       数据库设计问题:日期类型都使用的字符串保存

此问题是典型的新手写代码问题,日期类型保存成字符串,无法保证第个程序员的保存格式(yyyy-MM-dd HH:mm:ss),同时严重影响了数据查询的效率

3.        数据库主键、外键设计问题

主键混乱,使用UUID,自增长类型等不统一,也增加了复杂性

外键设计混乱,比如订单的关联,只使用了唯一的订单号,而没有引入外键关联

4.       Java代码中的类型问题:与金额相关的类型使用了double, float, int等,这也是典型的新手写代码问题,在Java代码中涉及金额的对象类型应该使用BigDecimal处理

5.       代码中的异常处理不完整

6.       代码中的日志输出没有使用Log框架

直接使用exception.printStackTrace(), system.out等输出,不利于日志的控制与查找

7.       代码中的事务管理混乱

8.      JSP代码中到处都是<%%>Java Code

9.      系统的权限管理简单

只有简单的菜单显示的控制,没有对访问资源的权限管理(URL

10.   Java/Hibernate对象的创建不合理,比如外键的关联对象,集合对象等

11.   对象与数据的概念逻辑混乱:

       比如父ID为空时,新手的设计是给父ID一个默认值(0, -1等),而实际就应该用空值NULL 

以上只是最基本的问题,但是一个外包项目如果这几方面都处理的很好,足以是一个合格的外包项目了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值