提出问题
优雅的写代码,需要注意哪些代码格式???
解决问题
代码的格式对一个开发人员是非常重要的。工作中,开发人员在维护代码的时候经常会埋怨别人的代码写的很烂,如果不严格要求自己,以后就会成为别人眼中的”别人”了。下面是来自《代码整洁之道》中自己总结的几点。
1)垂直放向上的区隔:不同的逻辑之间用空格间隔;
例:在导入申明,方法和方法之间用空白行隔开,这是正确的做法
package com.hwy.test;
public class CodeCleanTest {
public static void main(String[] args) {
eat();
sleep();
playPeas();
}
public static void eat(){
System.out.println("吃饭");
}
public static void sleep(){
System.out.println("睡觉");
}
public static void playPeas(){
System.out.println("打豆豆");
}
}
例:在看看下面的代码,没有相关的分隔行,代码可读性较差差。
package com.hwy.test;
public class CodeCleanTest {
public static void main(String[] args) {
eat();
sleep();
playPeas();
}
public static void eat(){
System.out.println("吃饭");
}
public static void sleep(){
System.out.println("睡觉");
}
public static void playPeas(){
System.out.println("打豆豆");
}
}
格式:
2)垂直方向上的靠近:关系密切的逻辑要靠近才会更加清晰(可看System这个类的实现);
3)变量申明尽可能靠近使用的地方;
package com.hwy.test;
public class CodeCleanTest {
String food = "吃饭食物";
public void eat(){
System.out.println(food);
}
public void sleep(){
System.out.println("睡觉");
}
String peas = "豆豆";
String feel = "爽";
public void playPeas(){
System.out.println("打" + peas);
System.out.println("感觉" + feel);
}
//-----------上面是正确的,下面是错误的------------------------
String food = "吃饭食物";
String peas = "豆豆";
String feel = "爽";
public void eat(){
System.out.println(food);
}
public void sleep(){
System.out.println("睡觉");
}
public void playPeas(){
System.out.println("打" + peas);
System.out.println("感觉" + feel);
}
}
4)相关函数:放在一起,调用者放在被调用者的上面;
例:
package com.hwy.test;
public class CodeCleanTest {
String food = "吃饭食物";
public void eat(){
System.out.println(food);
/** 调用的sleep函数应该写在eat函数的下面 **/
sleep();
}
public void sleep(){
System.out.println("睡觉");
String peas = "豆豆";
String feel = "爽";
/** 调用的playPeas函数应该写在eat函数的下面 **/
playPeas(peas,feel);
}
public void playPeas(String peas, String feel){
System.out.println("打" + peas);
System.out.println("感觉" + feel);
}
//----------上面是正确的写法,下面是错误的-----------------
public void sleep(){
System.out.println("睡觉");
String peas = "豆豆";
String feel = "爽";
/** 调用的playPeas函数应该写在eat函数的下面 **/
playPeas(peas, feel);
}
String food = "吃饭食物";
public void eat(){
System.out.println(food);
/** 调用的sleep函数应该写在eat函数的下面 **/
sleep();
}
public void playPeas(String peas, String feel){
System.out.println("打" + peas);
System.out.println("感觉" + feel);
}
}
5)水平方向:以不拖动滚动条为准则,代码行长度80个字符可以接受,最多120个字符,再多,你想逆天啊;
6)* / + =,+=等前后的空格可以起强调的作用,同时空格可以强调逗号;
例:
String food = "吃饭食物";
public void eat(){
System.out.println(food);
sleep();
}
public void sleep(){
System.out.println("睡觉");
String peas = "豆豆";
String feel = "爽";
playPeas(peas,feel);
}
/** 这里 String peas和String feel有个空格,强调逗号分割
public void playPeas(String peas, String feel){
long startTime = System.currentTimeMillis();
System.out.println("打" + peas);
System.out.println("感觉" + feel);
long endTime = System.currentTimeMillis();
System.out.println(endTime - startTime);
}
7)缩进,只有一行的也按缩进规则来;
例:
package com.hwy.test;
public class CodeCleanTest {
String food = "吃饭食物";
public void eat(){
System.out.println(food);
String time = "白天";
sleep(time);
}
public void sleep(String time){
if(time.equals("黑夜")){
System.out.println("睡觉");
}
//-------上面写法是正确的,下面写法错误--------------
if(time.equals("黑夜")){System.out.println("睡觉");}
}
}