【公共规范】要使用成熟的工具类,不要自己擅自且重复“造轮子”

所有的非专有算法,先问如下问题:

  • 1、我是不是第一个需要这样功能的人?我是不是第一个发现有这个功能需求的人?

  • 2、这个功能是不是很特殊,没有重用意义,因此世界上其他人都不会为此写一个“轮子”,需要我自己造?

  • 3、语言(平台)自身有没有提供?

  • 4、公司对此有没有统一规范(后面会有要求的,某些逻辑必须如何写);

  • 5、有没有成熟的第三方提供?(Java语言先看看 Google Guava, Apache Commons,Spring Utils;JavaScript 先看看 Lodash,moments(days.js) .....)

以上问题,是问自己的,自己不能回答的时候要:

  • 1、问身边同事;

  • 2、问项目组同事;

  • 3、问技术主管;

  • 4、问更高级的人员

切记不要:

  • 1、自己写实现

  • 2、网页搜索结果里抄一个过来

以上是我们所有项目中都常犯的错误,导致的后果有:

  • 1、耽误项目开发时间和成本。不断有人重复花不必要的时间去“造轮子”;

  • 2、类似代码散落各处,导致维护困难;

  • 3、“轮子”造得不好,导致项目出问题

如:针对集合的字符串拼接

StringBuilder sb = new StringBuilder();
int count = members.size();
for(int i=0; i<count; i++) {
	sb.append(members.get(i).getPersonUID());
	if(i!=count-1) {
		sb.append("|");
	}
}
extendData.put(approveRole, sb.toString());

自己造了个“不能重用的轮子”,而且还有性能问题

以下给出对应的成熟的”轮子“ → 常用“Java轮子”首选

O Captain! My Captain!