【公共规范】要使用成熟的工具类,不要自己擅自且重复“造轮子”
所有的非专有算法,先问如下问题:
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轮子”首选