助您写出优雅的Java代码七点建议

有的Java程序代码一眼看上去就让人以为混乱且费解,而有的代码却能给人如沐春风之感。本文将经过七点建议,帮助您写出更好、更优雅的程序代码。程序员

在每一位刚入行的程序员的心中,编写程序都是一门神圣的艺术创做。他们无不但愿本身的代码做品既简洁清晰,又可读性强,并且还具备必定的容错能力。本文将为您带来七点建议和技巧,以帮助您编写出简洁、干练的Java代码。其中的有些可能会让你以为有些难以想象,可是请相信我,以下的每一条我都亲身实践过的。express

助您写出优雅的Java代码七点建议助您写出优雅的Java代码七点建议

1.使用IntelliJ IDEA做为您的集成开发环境(IDE)apache

虽然我已经使用了六年的Eclipse和三年的NetBeans,并且我仍然偶尔会使用到它们,可是现在的大部分时间,我只使用IntelliJ IDEA(请详见)。我并非想在这里展开有关IDE的大讨论,而只是想告诉您,IDEA可以根据其自有的最佳整合实践标准,持续提示您写出更短、更好、更简洁的代码。编程

您只须要按下Alt + Enter组合键,它就会自动开始为您工做了。在大多数时候,IntelliJ IDEA可以为您提供各类智能且实用的代码建议。固然,您也能够向它学到不一样的编程知识与技巧。框架

为了更好地获取IDEA的服务性能,您最好在本身的电脑上采用固态硬盘(SSD)。就我本身的那台旧式笔记本电脑而言,因为使用的是传统硬盘(HDD),它已没法顺畅地运行IDEA了。所以我我的建议您至少使用一颗256 GB大小的固态硬盘。运维

2.使用JDK 8或更高版本maven

JDK 8及其更高版本引入了诸如:lambda表达式(lambda expression,一种匿名函数)、功能接口、流式接口(stream APIs,提供更为可读的源代码实现方法)等许多新的功能,这些都有助于您写出更简短、更高性能的Java代码。ide

固然,您并不须要去逐一地记住这些功能,由于前面提到的IDEA会帮助您在实际编程的过程当中,实现这些功能与服务。这也就是为何我首先向您建议使用IDEA的缘由。若是您感兴趣,也能够参考《Java8实战,Java8 in Action》一书,其连接为:https://amzn.to/2rkOoM0函数

3.使用Maven/Gradle工具

请使用Maven(一个采用纯Java编写的开源项目管理工具,请参见)或Gradle(一个基于Apache Ant和Maven的项目自动化构建工具,请参见)来管理代码中的依赖关系,以及构建和部署本身的项目。

若是您已经为许多项目创建了可复用各类基本库,那么若是仅仅是内部使用的话,您能够引入Nexus(一种Maven存储库的管理器)来进行管理。不然,您应该将它们直接部署到Maven的中央存储库中。

4.使用Lombok

是时候向setter/getter、hashcode/equals、以及constructors/toString等样板式代码(boilerplate code)说再见了,您只须要一个注解:- @Data - 就能通通搞定了。

Lombok是一款能够经过简单的注解形式,来帮助开发者简化并消除Java代码臃肿的工具(具体请参见)。它不但可以减小您的代码编写量,还可以帮助您打理那些生成的字节码。

5.编写单元测试

可测试的代码一般意味着在组织结构上具备更合理、更简洁的代码质量。由于它会驱使您去事先管理好各个类之间的关系、各类方法的访问级别、以及其余方面。我甚至发现:即便是最小的单元测试也可以促进更快、更便捷的开发进程,进而可以让本身写出更加短、平、快的Java代码。

固然在现实开发工做中,您总会听到一些诸如“我根本没有时间来编写单元测试”或“项目时间节点将至,不要浪费时间些单元测试了”之类的反对意见。这些听起来貌似很合理,可是根据个人经验,在多数状况下,事实并不是如此。

若是您没有时间去编写单元测试,那您是否有更多的时间,去修复代码中那些可见、或不可见的bug呢?若是跳过了单元测试,那些仓促完成的代码将没法保证稳定性。特别对于一些新的代码变动而言,您彻底没法经过及时的反馈途径,知晓那些新产生的代码是否存在着错误隐患,是否会在未来运行的某个特定场景中产生不可预知的异常问题。

通常而言,Junit和TestNG是两款很是优秀的Java应用、及单元测试框架。而我我的则更喜欢使用TestNG。

6.重构:常见,但也很慢

简洁干练的Java程序代码历来不是一蹴而就的,它每每须要您进行反复地琢磨与改进。经过逐行进行代码重构、和运行各类测试用例,您能够确保本身的更改不会破坏既有代码的正确功能。一样,IDEA极大地提供了对于代码重构的支持,其中包括提取方法(extract method,将某个大的函数拆分为多个小函数)、重命名、内联(inline)等功能。

固然,若是您对代码重构是什么,以及它的做用不太了解的话,Martin Fowler的经典著做《重构:改善既有代码的设计(第2版),Refactoring: Improving the Design of Existing Code (2nd Edition)》(请详见)绝对是一本您必备的参考书。

7.按期联络客户,以获取他们的反馈

最后一点,可能也是最重要的:客户花钱让您经过编写代码,来解决他们的问题、知足他们的需求、并解决他们的痛点。然而,您可能在不知不觉中花费了太多的时间,去实现自觉得重要、却对客户可有可无的特殊功能,进而忽略了代码总体的健壮性和可维护性。那么,咱们怎么才可以尽早地发现该问题呢?请保持与客户常常联系,以尽早地获取他们的反馈。

话说回来,知易行难,即便是富有经验的产品经理也不必定能在较短的时间内领悟需求的真谛,况且是那些满脑子只注重功能实现的“码农”们呢?

所以,一个实用的建议是:若是您不能直接联络到最终用户的话,请尽可能与该系统的产品经理、或运维人员进行礼貌、且频繁的沟通。磨刀不误砍柴工,这些时间的投入对于后期时间的节省是绝对值得的。

总结

在过去的多年编程实践和项目应用中,我一直受益于上述七点心得。在此,我但愿它们也一样能给您的代码工做带来帮助。祝您编程愉快!

相关文章
相关标签/搜索