开发笔记
适用java开发
名词
前置库
指非最终的使用者,是用来给其它前置库或实际项目调用的.如Event
事件库,Config
配置库等.
实际项目
指最终的使用者,(一般)不会再有其它项目引用此项目去调用此项目.如Cmd
命令项目,Account
账号库项目等.
测试
不管是开发前置库
还是实际项目
,都需要测试.
前置库应该更需要测试,因为一般前置库玩的是概念,逻辑会比较复杂,所以更需要测试.
配置
说到配置,其实就是想让程序的某些固定值可变,一些看起来是常量的值在程序运行前改变与设置.
通常有几种方法设置这种类似常量的值:
- 直接在程序中使用固定值,比如设置分页大小为10,但如果这个值在程序中用到多次,就不适用此方法,否则一旦值要改变,就有多个不同的地方要改,麻烦且容易遗漏.
- 在程序中设置常量,需要此值的就引用此常量,如
public static final int PAGE_SIZE = 10;
,这种方法比直接设置值合适,但不是所有的固定值都需要使用,尤其是那些局部使用的值,否则用到值的地方就改成常量引用,会使编码更加麻烦,代码更加混乱.这种方法缺点是如果要修改常量值,则要修改代码并重新编译整个程序. - 对于
前置库
,有些类似常量的值其实是可配置值
,让使用它的实际项目
来调用方法自行配置. - 对于
实际项目
,那些可配置值
适合放置在配置文件中,让使用者
自行去修改.
要注意的几点:
前置库
不要使用配置文件,否则会产生极大的混乱.实际项目
适合使用配置文件.前置库A
如果引用另一个前置库B
,则A不要自行去生成B的实例,而应该在构造方法中让B的实例传递进来.这样最终B的实例是由实际项目生成控制的,方便实际项目进行配置.
日志
对于前置库
,一般有测试就够了,不需要记录日志,否则对于日志的语言全球化问题又需要考虑,更加麻烦.
对于实际项目
,则需要记录日志,但不是什么都需要记录的.推荐按层次来,即先开发好整个项目,然后记录严重层次的日志(即在程序中需要添加日志的地方插入代码),再记录信息,调试层次…
要注意的几点:
- 不推荐边开发边记录日志,否则日志这个
辅
的内容与正常逻辑代码混在一起,会造成阅读上的混乱.如果不能在开发好整个项目后再记录日志,至少也在完成一个类后再在此类内添加日志,或者在完成一个方法后再在方法内添加日志. - 添加日志,推荐按重要性层次递减的方式来,而不是找到一个日志记录点再决定记录成哪个等级.
- 如果可以替代,更推荐的是自动化的日志记录拦截,即不需要手动在代码内插入记录日志的代码,如http请求记录.