从零开始启动一个项目,需要哪些准备工作

原文链接这里

话题的由来

某天午饭前,项目组一同事挑起了这个话题,由于是马上要到饭点了,所以没有细聊,但公认的结论是,从零开始准备一个项目,花费的工作量不小。
由于最近我参与了一个全新的web项目,有切身的体验,所以记录下来。
主要的工作量包括如下几点:

  • 代码开发环境准备
  • 开源软件选择
  • 版本管理软件
  • 基础代码开发
  • 问题处理
  • 制度建设

代码开发环境准备

  • 支持j2ee的eclipse,版本当然要最新的,插件则包括easyexplore、国际化资源编辑器;
  • JDK1.8,注意不是JRE1.8,要附带源码,否则开发过程中看不到JDK的源码就很郁闷了;
  • 构建工具,Ant和Maven;Ant平时用的比较多,所以很熟练,但用maven的话下载开源软件比较方便,所以也要准备好;
  • 反编译工具,开发过程中可能会遇到开源软件的使用问题,这时如果可以走读一下代码,可以提供一些思路;
  • easyexplore,通过这个插件,可以很方便的打开代码所在的目录,否则还需要手工一级、一级的跳过去,麻烦;
  • lombok,通过这个工具,代码里可以少很多getter/setter之类的东东;

开源软件选择

开源软件很多,选择面很广。但考虑到项目需要商用,所以基于GPL之类的协议开源的软件都不要使用,否则后续整改进来非常麻烦;同一功能的开源软件里,评价前要准备几款备选,同时评估,从中挑选社区活跃度高、维护人员努力一点的,否则软件出了Bug,就比较坑了。

一般的选择有

  • 日志记录器,我用过log4j、log4j2、slf4j,比较过后,我倾向于使用slf4j做前端,log4j或者log4j2做后端,原因是slf4j的接口比较好用,log4j或者log4j2的资料很多,会做配置的人也多,所以两方面好处都可以享受;
  • ibatis,ibatis2.3.4.726版本从08年开始使用,虽然这个版本已经停止维护,但由于使用简单,没有使用经验的新进员工只要会使用SQL,基本上一周之后就可以上手,培训的代价小,所以新项目里仍然打算使用这款软件;
  • spring,我使用的spring时间还比较短,所以挑主流分支的最新版本;
  • mysql及其jdbc驱动,项目启动时直接从官网下载其时的最新版本,项目进行过程中如遇到问题则考虑更新,否则就不变了;
  • xstream,XML序列化的神器,保存一些临时数据非常有用,可以少写很多代码;
  • json,可选软件非常多,比如google的gson,jackson等,可以依据团队成员的能力和项目的特性,从中选择一款出来;
  • commons库,比如commmons-io、commons-file-upload、commons-codec、commons-logging、commons-lang等,这些软件一般不需要专门下载,很多开源软件的发布包中都会附带,当然也可以直接在apache的官网上下载最新版本;
  • 。。。

版本管理软件

svn和git,中心服务器是SVN,本地为了方便,同时安装了svn客户端和git,这样可以创建很多分支,分别用于开发新特性、试验新技术、修复Bug等。

基础代码开发

这个要看团队成员的能力而定,但一般可以分为如下几种。

  • 数据库访问封装
  • 页面与服务端通信协议封装
  • 服务端接口样例实现
  • 页面基本样式定义
  • 页面样例代码
  • 。。。

制度建设

项目涉及多人协作时,必须要考虑到团队协作时的制度。

  • 需求传递和变更制度,需求和方案是需要管理的,团队的能力需要逐步培养,而外部的预期也要可控,否则会导致成员天天加班累死,外部呈现却不好,以至于恶性循环。
  • 会议制度,晨会、周例会。
  • 开发流程,开发人员领取到任务之后需要完成哪些动作,一般要完成Story分析、评审、代码开发、过自测用例、showcase、修改showcase问题等。
  • Story评审制度,主要评审的是Story分析,那么Story分析需要完成什么内容,通过和不通过的标准,Story评审的时机,参与人员等都需要明确。
  • 代码评审制度,一般需要在转测试之前完成,代码好、坏的标准,差的代码如何修改等。
  • 问题单修改流程,一般要包括测试提单、测试经理确认、项目经理确认、开发人员分析、开发人员修改、项目经理审核、测试经理安排回归、测试人员回归。测试人员完成提单和回归问题单,首先要在问题单里填充必要的信息,以提高沟通效率。开发人员在其中主要完成修改和自测试的环节,基本要求就是一次搞定,避免测试人员返工。
  • 开发规范,比如web页面的规范、java代码的规范等。
  • 求助渠道,项目团队成员有了困难,不同类型困难的求助人要明确出来,不同级别问题的求助人也要明确出来。
  • 培训制度,收集团队近期遇到的问题,统一讲解和答疑。
  • 。。。

结尾

万事开头难,事情太多要烦,那么有帮手可以分担一些的话,生活将无比美好。


你可能感兴趣的:(经验总结)