锁定老帖子 主题:自己规定的开发规范
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (3)
|
|
---|---|
作者 | 正文 |
发表时间:2010-02-04
最后修改:2010-02-04
happyforever82 写道 zli.ray 写道 2/ 所有操作的入口都必须log开始和结束时间, 并记录功能点名称 及功能负责人
这个感觉没有必要,会使debug日志过于臃肿,降低执行速度,并且感觉这些信息也没什么大用处。 真有特殊情况必须记录的话,可以使用AOP,修改也容易。 实际场景是这样的: 当你的系统上线或者在测试的时候出了问题, 那么好, 首先: 测试的人会告诉你出了问题, 并且MM们会告诉你她的期望输出和你的实际输出有差别; 然后: 你拿到email后再去照着做一遍(注意: 同样的工作两个人都操作了一遍), 查一遍逻辑流程发现了错误. 你再回去找设计文档, 看看哪里的逻辑错误了, 再进行修改代码. 提交, 布署, 测试, 通过. 那么好, 我的情况是这样的: 当测试的MM发现了错误, 接下来, 她一手去拿设计文档, 一手打开log, 发现你哪个Log信息和文档中写的不一样, 她把它们记录下来再email给你. 当你收到email之后, 是不是会觉得这个email中承载了更多的有用信息呢? 应该会节省时间了吧. 日志当然需要打,但我的意思是说不用打这么细,细到“所有操作的入口都必须log开始和结束时间, 并记录功能点名称 及功能负责人” 就上面所说的这些分析, 开始和结束时间:这是为了统计方法的执行耗时吗?想不出场景。 记录功能点名称:这是为了对异常进行定位吗?异常的debug日志中本身就包含类名、方法名及源码行号。 功能负责人:这个貌似更没有必要,测试时,测试人员跟开发人员往往有对应关系,测试人员不会不知道她测的程序是谁写的吧?再说,源码中的javadoc也会标记这些信息。 还有,关闭debug日志,并不代表打日志的那几行代码就不跑了,还是会执行的,还是会耗时的。 以前有项目组规定,在执行数据库操作前,必许把要执行的sql打出来,这种感觉还是很有用的。 但lz的这个,说实话,我感觉实用性不大,但操作起来很繁琐,因为每个方法都要打,会写很多代码(ctrl+C+V)。当然,也有可能lz的项目有实际的需求,所以才要这么做。 |
|
返回顶楼 | |
发表时间:2010-02-04
"但lz的这个,说实话,我感觉实用性不大,但操作起来很繁琐,因为每个方法都要打,会写很多代码(ctrl+C+V)。当然,也有可能lz的项目有实际的需求,所以才要这么做。"
日志用AOP吧,为何还会这样做呢? |
|
返回顶楼 | |
发表时间:2010-02-04
hommy8 写道 "但lz的这个,说实话,我感觉实用性不大,但操作起来很繁琐,因为每个方法都要打,会写很多代码(ctrl+C+V)。当然,也有可能lz的项目有实际的需求,所以才要这么做。"
日志用AOP吧,为何还会这样做呢? 有几位都在关心log了, 这里解释一下哈。 我这里规定log信息的写法,除了是为了方便开发和调试,更重要是的方便系统上线之后,维护部门的XD们方便。 上线时,会把log日志保存到系统的根目录下。当有用户出现问题,可以直接访问log文件,把当时的情况完整的重现出来。避免问题不可重现。规定日志的写法也是为了让非开发人员更好的进行维护。毕竟,软件的生命周期有一大部分是运行和维护期。日志的内容和设计一一对应,更容易判断出问题出在哪里。 |
|
返回顶楼 | |
发表时间:2010-02-04
hommy8 写道 "但lz的这个,说实话,我感觉实用性不大,但操作起来很繁琐,因为每个方法都要打,会写很多代码(ctrl+C+V)。当然,也有可能lz的项目有实际的需求,所以才要这么做。"
日志用AOP吧,为何还会这样做呢? 兄弟可以问问你们维护部门的同事, 当他们接到用户报的错误时会怎么作。一般花多久时间来找到问题出在哪里。 |
|
返回顶楼 | |
发表时间:2010-02-04
moonjava 写道 <div class="quote_title">happyforever82 写道</div>
<div class="quote_div"> 6/ 使用枚举而不要使用string来区分类型[<span style="color: #ff0000;">只要让程序员来接触一个全新的系统, 很短的时间内让他整理一个报表出来, 他就明白了"为什么使用枚举"</span>] (之前使用字符串来标识"成功"/"失败"/"挂起", 后来发现接手的人不知道查询条件是什么...不要跟我说"你们的文档呢"..当你的面对一百来篇文档时, 你的后面还有一个老 </div> 这个,enum还不是用的string么?而且一般都有toString函数。 确实就是使用enum的String. 使用enum的String的好处是,可以将sql语句where条件值锁定在那几项上。而不用到处去翻文档,找出某个表的某个字段的所有可能值及其含义。 |
|
返回顶楼 | |