What
各层间耦合度极大程度上的降低,封装性好,扩展性极好(尽量更新最少的代码)。
Spring AOP就是经典的代表:我们只管写dao方法,service方法,不需要关心在哪边commit哪边rollback何时connection,spring的声明式事务会帮我们负责,这种风格我们称为“优雅”。
How
如何实现代码优雅?
1. 前端 HTML 和 js 解耦
2. 后端
- 封装
- 代码逻辑连贯
- 避免过度封装
Java 代码 写法格式
核心目标:逻辑清晰 代码直观
- 优雅的代码看起来就像是一些整整齐齐,套在一起的盒子
- 相对独立的程序块之间、变量说明之后必须加空行。
- 局部变量应该尽量接近使用它的地方
- if条件并列
表示并列关系
if (someLongCondition1() &&
someLongCondition2() &&
someLongCondition3() &&
someLongCondition4()) {
...
}
- 用if替换逻辑符号
if (action1() || action2() && action3()) {
...
}
替换成
if(!action())
{
if(action2())
{
action3();
}
}
如果action1()失败了,那么执行action2(),如果action2()成功了,执行action3()
- 合理使用括号
-
2 << 7 - 2 * 3 应写成2 << (7 - 2 * 3)
- try { … } catch里面,应该包含尽量少的代码
try {
foo();
bar();
} catch (A e) {...}
替换成
try {
foo();
} catch (A e) {...}
try {
bar();
} catch (A e) {...}
- 不要catch NullPointerException
void foo() {
String found = find();
int len = found.length();
...
}
try {
foo();
} catch (Exception e) {
...
}
替换成
void foo() {
String found = find();
if (found != null) {
int len = found.length();
...
} else {
...
}
}
- 不要过度考虑未来
- 先把眼前的问题解决掉,解决好,再考虑将来的扩展问题。
- 先写出可用的代码,反复推敲,再考虑是否需要重用的问题。
- 先写出可用,简单,明显没有bug的代码,再考虑测试的问题
摘自http://www.yinwang.org/blog-cn/2015/11/21/programming-philosophy