java如何写出好代码_七个写出更好的Java 代码的技巧

2. 使用 JDK 8 或更高版本

从 JDK 8 以及 更高版本开始,引进许多新功能可以让你编写更简短、更具表现力的代码,包括 lambda 表达式、functional 接口、Stream API等。你实际上并不需要记住它们,IDE 会帮助你使用这些函数,这也是你应该使用 IDE 的另一个好处。另外,《Java 8 in Action》 一书对你也会有所帮助。

3. 使用 Maven/Gradle

为我们的项目使用 Maven 或 Gradle 来管理依赖、构建与部署。若你已经构建了许多基础库并在许多项目中重用,如果这些库仅在内部使用,这最好引入 Nexus。否则,你应该将它们部署到 Maven 中央存储库。

4. 使用 Lombok

与 setter/getter、hashcode/equals 以及 constructors/toString 这样的模板代码说再见。你只需要一个注解——@Data——就可以开始工作。Lombok 能减少你编写的代码,但是它依然会处理生成的字节码。

5. 编写单元测试

What?你是认真的吗?!

没错。经过单元测试后的代码通常组织的更好、更清晰,因为它促使你要把类的关系管理好、方法的访问级别以及其它细节内容。我发现即便是最小的单元测试也会使开发更快更容易,它总能驱动你编写更简短、更清晰、更优质的代码。

但是,你总会听到反面的言论,比如“我们有时间编写单元测试”或者“在上线日期来临时这是在浪费时间”。这听起来是真的,有时候这也确实是事实。但是大部分时间,从我的经验来看,它肯定不是上面所说的那样。

如果你没有时间来编写单元测试,你会花费更多时间来修复可见或不可见的 bug,如果没有单元测试的快速反馈,代码的稳定性通常会降低,新的改动一般会减少,有时,你可能需要认真地祈祷,因为真的不知道将发生什么或将引入多少个新的 bug。

可能一些天才程序员可以写出不需要单元测试而没有 bug 的代码。但是我不是,你可能也不是。所以去做吧——请相信我。

JUnit 和 TestNG 做单元测试工作都能做得很好,它们的一些重要功能:

1. 易于设置和运行。

2. 支持注释。

3. 允许忽略或分组并一起执行某些测试。

4. 支持参数化测试,即通过在运行时指定不同的值来运行单元测试。

5. 通过与构建工具,如Ant,Maven和Gradle集成来支持自动化的测试执行。

不过我更喜欢 TestNG。

6. 重构:勤而缓

更短、更简洁的代码不能一次完成,它需要我们反复改进。一点一点的重构并运行测试用例以确保你的更改不会破坏代码的正确行为,事情也会变得越来越好。

在此处,IDE 提供了很好的重构支持,比如提取方法、重命名、内联等特性。

如果你不知道什么是重构并想要了解更多,Martin Flower 的一本书 《重构:改善既有代码的设计》 值得你一读。

7. 定期拜访客户并获得他们的反馈

老实说,这一项应该放在列表的第一位。但在这种情况下,“最好的都在最后”。你编写的代码是为了解决用户的问题,满足需求并消除用户的痛点。有时,你却浪费了太多时间实现不必要的特性和功能。

但是如何能让你早点知道呢?定期与客户保持联系,以便尽早得到他们的反馈。但是这并不像你想象的那么容易,即便是经验丰富的产品经理也无法在短时间内获得信息,甚至比主要关注功能实现的程序员还要少。

给你一个实际的建议,如果无法直接与客户联系,你应该经常与你的产品负责人沟通,清楚且有礼貌的谈谈你的问题,这会节省很多时间。

在过去的多年编程实践和项目应用中,我一直受益于上面七个心得。我希望它们也同样能给您的代码工作带来帮助。

愉快地编码!

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值