关于java代码设计风格的一些心得

前言:在平时的编程当中,我们往往可能并不注重自己的代码风格,然后如果是团队编写代码,统一的代码风格就变得尤为重要,像谷歌等公司都有着自己的代码风格,下面我将介绍一些eclipse自动优化代码风格的小方法

一.checkstyle
首先介绍一个小工具,checkstyle,可以直接在eclipse的market里搜索安装,它可以自动检查你代码风格是否符合规范
关于java代码设计风格的一些心得
二.导入google风格
谷歌代码风格是开源的,我们可以直接下载导入
地址:https://github.com/google/styleguide
关于java代码设计风格的一些心得
然后在window->preferences->Java->Code Style->Format中点import导入
关于java代码设计风格的一些心得
附:一些谷歌规范说明
使用空格,而不是 tab

除了行终止符外,在系统文件中,空格是唯一表示空白的字符,这意味着 tab 不能作为缩进使用。

这份指南规定用2个空格(而不是4个)来表示缩进。
// bad
function foo() {
∙∙∙∙let name;
}

// bad
function bar() {
∙let name;
}

// good
function baz() {
∙∙let name;
}

必不可少的分号
每个语句都必须以分号结尾,不要依赖编译器自动插入分号。
尽管我无法理解为什么有人会反对加分号,就像“tab 和 空格”争论一样。无论怎么样 Google 是站在加分号这边的。
// bad
let luke = {}
let leia = {}
[luke, leia].forEach(jedi => jedi.father = ‘vader’)

// good
let luke = {};
let leia = {};
[luke, leia].forEach((jedi) => {
jedi.father = ‘vader’;
});

暂时不要用 ES6 模块化

暂时不要用 ES6 模块化(比如 import 和 export 关键字),因为 ES6 模块化的语法还没最终确定。

// Don’t do this kind of thing yet:

//------ lib.js ------
export function square(x) {
return x * x;
}
export function diag(x, y) {
return sqrt(square(x) + square(y));
}

//------ main.js ------
import { square, diag } from ‘lib’;

不鼓励上下对齐代码
尽量不要上下对齐代码,维护成本太高。
// bad
{
tiny: 42,
longer: 435,
};

// good
{
tiny: 42,
longer: 435,
};

// good
let example = 42;

箭头函数完美替代 function
箭头函数不仅语法简洁易读,而且修复了 this 的问题,特别是在嵌套函数中。
// bad
[1, 2, 3].map(function (x) {
const y = x + 1;
return x * y;
});

// good
[1, 2, 3].map((x) => {
const y = x + 1;
return x * y;
});

用模板字符串替代字符串拼接
用模板字符串(用 ` 分割)处理复杂的字符串,特别是处理多行的字符串。
// bad
function sayHi(name) {
return 'How are you, ’ + name + ‘?’;
}

// bad
function sayHi(name) {
return ['How are you, ', name, ‘?’].join();
}

// bad
function sayHi(name) {
return How are you, ${ name }?;
}

// good
function sayHi(name) {
return How are you, ${name}?;
}

常量用大写字母加下划线
常量用大写字母加下划线表示,所有单词大写,下划线分割。
如果你的代码遵守此规则,可大大增加代码的可阅读性,但需要注意的是,如果常量是函数,需要写成驼峰。
// bad
const number = 5;

// good
const NUMBER = 5;

每次申明一个变量
每次申明一个变量,不要写成 let a = 1, b = 2;
// bad
let a = 1, b = 2, c = 3;

// good
let a = 1;
let b = 2;
let c = 3;

用单引号,不要用双引号

普通的字符串用单引号分割(’),如果字符串中包含单引号,那么考虑用模板字符串。

// bad
let directive = “No identification of self or mission.”

// bad
let saying = ‘Say it ain\u0027t so.’;

// good
let directive = ‘No identification of self or mission.’;

// good
let saying = Say it ain't so;
二.import顺序
对于各种类的import,往往需要一个规定的顺序方便查阅,我们可以如下进行设置:
window->Preferences->Java->Code Style->Organize Import
其中Configure Project Specific Settings可以支持对某个class单独进行设置
关于java代码设计风格的一些心得
三.if/else/for自动加块
从语法层面来说,如果if/else/for后面只跟了一条语句,是可以不用加{}的,然后,为了统一结构与方面阅读,最好给if/else/for都加上{}。Eclipse同样提供了一个非常方便的功能自动给if/else/for加快
首先打开Save Actions
Window->Preferences->Java->Editor->Save Actions
关于java代码设计风格的一些心得
然后点击configure,在Code Style里如图进行选择
关于java代码设计风格的一些心得