记在2年开发经验过后--项目组的一些基本要求

前期规划

前期规划特别是代码结构上规划无比重要,规划得好项目肯定说不一定成功,但是不好一定会有很大的麻烦。 如下几点必须注意并且保持:

  • 选定编码规范。 必须包含前端、后端。 由专人负责检查,制定考核办法
  • 项目中使用到的基础库,如前端的jquery、弹层组件、后端的spring、servlet必须在各个模块统一并且仅在一个地方管理版本

  • 要充分测试使用到的第三方库或者框架,如果针对自己项目有修改必须留下文档,对于侵入性过强的插件如select2,必须提前留下文档说明

  • 充分考虑到整个项目,设计通用组件并且开发出来留下文档,后期通用组件有修改由专人负责修改,禁止重复造轮子或者私自加功能

  • 了解项目组成员的技术水平,组织对项目中使用到的以前未用过的技术的培训并且制定考核办法
  • 项目组成员多半会变化,提前制定好这方面的解决措施

开发过程

在前期工作完成过后就进入了正式的战役,这往往不是一个速战速决的过程,大部分情况下是慢工出细活,但是甲方或者PM肯定不允许,再加上需求方面的更改,开发控制就更加重要了。
由于此阶段肯定面临如下的问题:

  • 需求变更。 大的不多,小的不少。
  • 人员变更。 通常一人一个编码风格
  • 前期规划没做好,程序上需要做较大的改动或者说架构上需要调整
  • 项目组成员其他方面的杂事

上述问题大部分情况下都会遇到,不同公司不同组织架构肯定有不同的解决办法,我理解的中小型团队应该做好以下几件事:

  1. 需求调研和沟通有专人负责,具体更改必须有相应的草图。 文档尽可能的留下
  2. 负责实现变更的需求的成员必须充分考虑到未来可能的更改,对于代码上需要添加第三方组件或者当前已有但是版本有变更的必须请示技术Leader或者充分研讨。 不能自作主张添加新库或者其他依赖。特别的,对于javaweb项目,servlet\tomcat之类的尤其重要,前端的基础库如jQuery,弹层这些。 有些插件可能需要不同的版本,此时必须慎重处理
  3. 有专人负责代码review,特别是对于代码风格或者说编码规范方面,这个控制的好后期项目才可以维护
  4. 人员变动留下文档并且有他人检阅即可

非必须但是重要

项目组成员的水平肯定是有高有低,写出的代码即使都是符合编码规范的可能说也是风格迥异。 java方面特别考虑以下方面的培训或者增强:

  • 设计模式。 这应该是一个基础技能,但是不少人并没有多少使用或者学习的意识
  • 了解业内最新动态,该技术领域的最新技术。 后端的不应该做java就只知道java和几大框架,对于一些通用平台或者新项目之类的应该了解,比如docker,netty,druid等等。 注意关注一些大公司的博客或者github,如阿里中间件,百度EFI等等。一个优秀的开发应该清楚的知道目前使用的语言的优缺点,应该了解其他语言及相应的开发工具链。 做java就只了解java是不行的,对于C++/linux这些都必须了解, 空余时间甚至可以深入学习。
  • 了解自身角色以外的知识。 后端不是说就没必要学习前端知识了, java开发一般都会JavaScript,但是NodeJS呢? require呢? Grunt/Gulp/webpack ,angular/Vue/backbone这些呢,等等。 很多知识是相通的,多看看其他领域的书籍,多扩展下自己的视野。这个道理非常简单。
  • 业余时间必须利用好。 对于有幸没有996的公司,首先应该感到庆幸,因为有了很多的私人时间。但是, 陪老婆孩子和学习应该自己有清楚的分界线。行业发展非常快, 很多技术的更新和过时超乎想象,保持学习保持运动是不变的真理。 不然人到中年突然发现自己被淘汰并不是不可能发生的事情。

一些必须必备的软技能:

  • 熟练掌握翻墙的各种方法和工具,了解其中的原理。
  • 熟练使用Google
  • 无障碍阅读领域内的英文文章, 配合词典可以看懂其他领域的文章。
  • 熟练掌握自己系统上各种可以提高效率的小工具, 善用佳软上有推荐不少。