性能优化
性能优化
性能优化
并发编程

如上图所示,
应用架构
安全编码
代码风格
所谓的编程规范与样式指南即是希望通过制定对语言常见特性和使用注意事项的细则描述,提升编程技能,保证项目的可维护、易重构、易理解、易实现等特性。
代码风格
Clean Code
命名与格式化
函数式编程
Lambda
避免过度臃肿的Lambda 实现
在将早期的代码迁移到
List<Person> persons = ...;
persons.stream().filter(p -> {
if (p.getGender() == Gender.MALE) {
return true;
}
LocalDate now = LocalDate.now();
Duration age = Duration.between(p.getBirthDate(), now);
Duration adult = Duration.of(18, ChronoUnit.YEARS);
if (age.compareTo(adult) > 0) {
return true;
}
return false;
}).map(p -> p.getFirstName() + " " + p.getLastName())
.collect(Collectors.toList());
作为典型的面向对象的语言,我们还是应该将与对象相关的代码封装到类中:
public class Person {
// ...
public boolean isMale() {
return getGender() == Gender.MALE;
}
public boolean isAdult(LocalDate when) {
Duration age = Duration.between(birthDate, when);
Duration adult = Duration.of(18, ChronoUnit.YEARS);
return age.compareTo(adult) > 0;
}
}
然后简要地提升下
// Implementation details
Predicate<Person> isMaleOrAdult = p -> {
if (p.isMale()) {
return true;
}
LocalDate now = LocalDate.now();
if (p.isAdult(now)) {
return true;
}
return false;
};
Function<Person, String> concatenateFirstAndLastName = p -> p.getFirstName() + " " + p.getLastName();
// Core
persons.stream().filter(isMaleOrAdult).map(concatenateFirstAndLastName)