以前写web代码,都是jsp,controller,service,mapper,就四层代码,天天如此,所以说很难能写出一些牛逼的代码。最近一直在改公司脚手架里面的代码,感触颇深啊。
写代码,在我看来,需要形成条件反射式的思考,稍纵即逝的想法,有可能就减少许多犯错的机会。
1.代码的调用者是谁,使用者是谁
稍微思考一下代码会在其他什么地方出现,谁会使用这些代码
如果是写基础代码,这些代码要给别人使用,那么必须写好方法注释
方法的入参,出参考虑清楚。比如入参为null怎么办?入参不符合实际需求怎么办?
2.代码是不是运行在多线程的环境下
如果是多线程环境下,那么要注意线程安全问题
其实针对每一个方法都要稍微想一想是不是这个方法,会出现在多线程环境下。
并且,针对类内的每个字段,都要稍微想一想,会不会出现线程安全问题。
3.代码的优化也是很重要的
对每一个方法,虽然我们不能清楚计算出实际执行的时间,但是我们能够大概评估出需要查询多少数据,创建多少对象。
针对数据库,每一个mybatis的mapper的方法调用,实际创建了哪些主要对象,数据库中的这张表,有多少数据,这一次查询,大概会返回多少数据。
针对每一个方法,里面创建了大概多少个对象,大概会消耗多少内存,如果十分清楚,那么,功力就上升到一个相当高的高度了。
4.日志的格式如何规范,什么时候打日志,什么时候不打日志,打日志的级别考虑过吗?
编写可回溯的代码至关重要,方便回溯问题。
给别人调用的代码,需要写好注释,方法入参含义,这些都没有注意过。