前言
本文主要记录最近工作中关于开发中的一些小技巧以及感悟
小细节
String转Long
使用Long.parseLong,而不是Long.getLong
Guava库
Joiner
超好用的Guava库,主要用于字符串的拼接,可以自动在中间加上分隔符
String yamlStart = "---\n";
String yamlEnd = "...\n";
Joiner joinerContent = Joiner.on("...\n---\n").skipNulls();
return Joiner.on("").join(yamlStart, joinerContent.join(yamlList), yamlEnd);
Splitter
可以很方便的将字符串分割成对应的数据结构
//将source进行处理
List<String> tempSource = Splitter.on(",").splitToList(param.getSource());
String占位符的用法
原来:
String title = "[" + characterName + "][" + task.getEnv() + "][" + pipelineStage.getService() + "]";
改进:
String title = String.format("[%s][%s][%s]",
线程中的问题
不能直接使用Autowired,需要定义了成员变量之后,使用外界已经加载好的service作为入参传入初始化这个线程,如果每一个线程都启一个service的话,资源消耗会很大。 (仅仅是我暂时这么理解,TODO 搞清楚原因)
数据入库的操作
建议先入队列,然后再入库
Configuration的问题
定义了两个configuration,一个masterClient,一个jobClient 然后有个地方使用了@Autowired来进行配置(一个在外层service,一个是另外一个service),这时候就出现了冲突,开始报错。配置一定要清晰
重复代码的问题
在mac中,如果是在同一个类中的重复冗余的代码,可以使用option+command加上m,可以将重复代码进行抽离。如果是在不同的类中,可以使用将重复方法抽离到父类的方法,或者是抽离到静态工具类的方法。避免重复代码的最好的方式,就是在编码的时候,尽量不要使用复制粘贴的方式来进行编码,而应该想办法,提高自己的代码的可复用性和可扩展性。
小感悟
工作不知不觉已经是第七个月,但是自己的能力,还有薪资,都是处于一个“穷”的状态,俗话说得好,穷则独善其身。现在的我,还没有资格去管别人的事情,能将自己的事情做好就已经不错了。