7. 我不走正道,因为我是个光荣的产翔侠
还有些人,不知道从哪里学会的邪门歪道,喜欢通过在捕获异常里写业务逻辑。对这种人,你九阴真经练成了梅超风啊。
public DateTime override Add(TimeSpan ts) {
try {
return base.Add(ts);
}
catch (ArgumentOutOfRangeException nb) {
// calculate how much the MaxValue is exceeded
// regular program flow
TimeSpan saldo = ts - (base.MaxValue - this);
return DateTime.MinValue.Add(saldo)
}
catch(Exception anyOther) {
// 'real' exception handling.
}
}
我就想问问,如果以异常来控制流程,那么如何在这些异常中寻找真正的异常情况?
8. 为了我走之前不出意外,我要捕获所有的 NPE
有些哥们儿会把 NPE 捕获住,恩,不解决问题,但是把提出问题的人给解决了。
private static void callInstanceMethodOfNull() {
try {
Integer age = null;
age.toString();
} catch (NullPointerException exception) {
Logging.log(exception);
} catch (Throwable exception) {
Logging.log(exception, false);
}
}
但是呢,这在正常的业务逻辑里很可能就把别人坑了,因为 Null 本身就是代表着一种非法状态。拿着前朝的剑斩今朝的官,包大人干的好啊。
9. 一个方法我如果写成一万行,公司一定会倒闭的
有些朋友可能有分离焦虑症,一个方法里能写上 1 万行代码。对不起,读书读几页都会犯困,读你这一万行代码……
10. 我要把所有业务逻辑都揉进几个类里,就好像女友第一次来我家
有些哥们,你看看他负责的项目,你发现整个项目没几个类。你很纳闷,觉得业务很复杂,竟然可以实现的如此简单吗?你再打开他的类看源码,哦豁,这就是个垃圾箱啊,什么都能往里塞啊。
哥们儿,这不是女朋友去你租的房子里,你为了显得干净,把你那些垃圾到处塞啊。
11. 是男人就来看我继承一百层类
有些爷爷不知道怎么想的,在他们眼里可能只有儿子和老子,一个类很不得搞一百层的类继承。你这样继承,您家万贯家财还能遭得住吗?
12. 如果我不用缓存,我就能多浪费公司的几台服务器
还有些哥们儿,明明知道他这个功能可能被频繁访问,比如登录的时候查相关的白名单、黑名单。哥儿们儿知道并发量大,可从来不想套个缓存,就是死从数据库里要数据。数据库想:生产队的驴也没我这么忙啊。