今天看到一个贴子:
[url=http://www.iteye.com/topic/952507]http://www.iteye.com/topic/952507[/url]
所以去翻了翻以前的回贴.整理一下
[url=http://www.iteye.com/topic/812468]http://www.iteye.com/topic/812468[/url]
[quote="mercyblitz"][quote="抛出异常的爱"][quote="cectsky"][quote="HuangSui.cn"]
这样有什么问题?
[/quote]
多次一举[/quote]
从架构师的角度的的确确不是多此一举
bean的toString方法可能会产生底归性的数据大查询,遍历所有的节点大于几百上千也[size=large][color=red]常 常[/color][/size] 见到
更有可能会产生对blob字段的数据日志输出
我说的是把这行代码 这样的代码[color=red][size=xx-large] 都[/size][/color] 删了.
这种debug是没必要的存在.
这种[color=red]没有作用的[/color][size=xx-large]![/size]
隐藏着可能会产生严重问题的代码[size=xx-large]![/size]
([color=red][size=xx-large]以至于必须用编程规范约束的代码[/size][/color])[size=xx-large]![/size]
的出现就是对系统,自己,同事,客户的不负责任.
PS:楼上几个不是在开 我玩笑么?[/quote]
看场景,大多数Bean是Thin 的,如果是Rich的话,可以换方法,或者修改toStrnig的约束。
再说debug的日志级别要开放,产品上一般不开放,对客户来说不那么重要。[/quote]
[quote="抛出异常的爱"][quote="ironsabre"][quote="iaimstar"]我记得啥书来着
里面说 优化的第一原则
不要优化[/quote]
这么说是因为低水平的选手太多了,怕大家乱搞。
真正的高手不受这个原则限制。[/quote]
你确认看过第二句么?
要不要我把页码告诉你你再过去看看第二行写的是什么 ?
PS:很多toString方法是eclipse生成的,
还有toString是用Common lang toStringBuilder反射出来的.
集合包里的listtostring就是底归的....
没有外面的if(isDebug) 这些toString方法会被 + 号所触发.
在hibernate里轻轻松松破掉lazy load
当然这都是极端情况.
尽量不要写这种可能有问题而且无意义的代码才是我主要要说的....
如果需要至少要把这种代码包装起来.....
战略不战略我不知道.
规则必有因.
去掉规则也有很多办法
[/quote]
[url=http://www.iteye.com/topic/952507]http://www.iteye.com/topic/952507[/url]
所以去翻了翻以前的回贴.整理一下
[url=http://www.iteye.com/topic/812468]http://www.iteye.com/topic/812468[/url]
[quote="mercyblitz"][quote="抛出异常的爱"][quote="cectsky"][quote="HuangSui.cn"]
if(log.isDebug()){
log.debug("xxxx"+bean+"xxxxx");
}
这样有什么问题?
[/quote]
多次一举[/quote]
从架构师的角度的的确确不是多此一举
bean的toString方法可能会产生底归性的数据大查询,遍历所有的节点大于几百上千也[size=large][color=red]常 常[/color][/size] 见到
更有可能会产生对blob字段的数据日志输出
我说的是把这行代码 这样的代码[color=red][size=xx-large] 都[/size][/color] 删了.
这种debug是没必要的存在.
这种[color=red]没有作用的[/color][size=xx-large]![/size]
隐藏着可能会产生严重问题的代码[size=xx-large]![/size]
([color=red][size=xx-large]以至于必须用编程规范约束的代码[/size][/color])[size=xx-large]![/size]
的出现就是对系统,自己,同事,客户的不负责任.
PS:楼上几个不是在开 我玩笑么?[/quote]
看场景,大多数Bean是Thin 的,如果是Rich的话,可以换方法,或者修改toStrnig的约束。
再说debug的日志级别要开放,产品上一般不开放,对客户来说不那么重要。[/quote]
[quote="抛出异常的爱"][quote="ironsabre"][quote="iaimstar"]我记得啥书来着
里面说 优化的第一原则
不要优化[/quote]
这么说是因为低水平的选手太多了,怕大家乱搞。
真正的高手不受这个原则限制。[/quote]
你确认看过第二句么?
要不要我把页码告诉你你再过去看看第二行写的是什么 ?
PS:很多toString方法是eclipse生成的,
还有toString是用Common lang toStringBuilder反射出来的.
集合包里的listtostring就是底归的....
没有外面的if(isDebug) 这些toString方法会被 + 号所触发.
在hibernate里轻轻松松破掉lazy load
当然这都是极端情况.
尽量不要写这种可能有问题而且无意义的代码才是我主要要说的....
如果需要至少要把这种代码包装起来.....
class MyLogZ{
public static void DEBUG(Logger log , Object .... message){
if(log.isDebug())return;
StrinBuilder buffer = new StringBuilder();
for(Object o message){
buffer.appand(""+o);
}
log.debug(buffer.toString());
}
}
战略不战略我不知道.
规则必有因.
去掉规则也有很多办法
[/quote]