当前位置: 首页 > 科技观察

七招助你写出优雅的Java代码

时间:2023-03-13 20:14:24 科技观察

【.com速译】在每一个新手程序员的心中,写程序都是一种神圣的艺术创作。他们都希望自己的代码作品简洁明了,可读性强,有一定的容错能力。本文将为您带来七个建议和技巧,帮助您编写干净、干净的Java代码。其中一些可能会让你觉得有点奇怪,但请相信我,以下每一项我都亲身实践过。1、使用IntelliJIDEA作为你的集成开发环境(IDE)虽然我用了六年的Eclipse,三年的NetBeans,偶尔还会用,但这些天大部分时间,我只是用IntelliJIDEA(详见).我不想在这里展开关于IDE的大讨论,只是想告诉你,IDEA可以根据自己的最佳集成实践标准,不断提示你写出更短、更好、更简洁的代码。您只需按Alt+Enter,它就会自动开始为您工作。大多数时候,IntelliJIDEA能够为您提供各种智能实用的代码建议。当然,你也可以从中学习到不同的编程知识和技能。为了更好地获得IDEA的服务性能,您必须在您的计算机上使用固态硬盘(SSD)。就我自己的旧笔记本而言,由于使用了传统的硬盘(HDD),已经不能流畅运行IDEA了。所以我个人建议你至少使用256GB的SSD。2.使用JDK8或更高版本JDK8及更高版本引入了诸如:lambda表达式(lambda表达式,一种匿名函数)、函数接口、流接口(streamAPIs,提供更具可读性的源代码实现方法)等许多新的东西功能,这将帮助您编写更短、性能更高的Java代码。当然,你不需要一一记住这些功能,因为前面提到的IDEA会帮助你在实际的编程过程中实现这些功能和服务。这就是为什么我首先向您推荐IDEA。有兴趣的也可以参考《Java8实战,Java8 in Action》这本书,链接是:https://amzn.to/2rkOoM0。3.使用Maven/Gradle请使用Maven(一种用纯Java编写的开源项目管理工具,请参见)或Gradle(一种基于ApacheAnt和Maven的项目自动化构建工具,参见)来管理代码中的依赖关系,以及构建和部署您自己的项目。如果你已经为很多项目建立了各种可复用的基础库,如果只是内部使用,可以引入Nexus(一个Maven仓库管理器)来管理。否则,您应该将它们直接部署到Maven的中央存储库。4.使用Lombok时,是时候告别setter/getter、hashcode/equals和constructors/toString等样板代码了。您只需要一个注解:-@Data-即可完成所有操作。Lombok是一个可以帮助开发者通过简单的注解来简化和消除Java代码膨胀的工具(查看详情)。它不仅可以减少您编写的代码量,还可以帮助您处理那些生成的字节码。5.编写单元测试可测试的代码通常意味着在组织结构上具有更合理、更简洁的代码质量。因为它会驱使你提前去管理各个类之间的关系,各种方法的访问级别等等。我什至发现,即使是最小的单元测试也可以促进更快、更容易的开发过程,这反过来又使我能够编写更短、更扁平、更快的Java代码。当然,在实际的开发工作中,总会听到一些“我根本没时间写单元测试”或者“项目时间快到了,别把时间浪费在单元测试上”之类的反对意见。这听起来很有道理,但根据我的经验,在大多数情况下,事实并非如此。如果您没有时间编写单元测试,您是否有更多时间来修复代码中可见或不可见的错误?如果跳过单元测试,仓促完成的代码将无法保证稳定性。尤其是一些新的代码变更,你没有办法及时反馈,不知道那些新生成的代码是否存在错误隐患,未来在特定场景下是否会出现不可预知的异常问题。总的来说,Junit和TestNG是两个非常优秀的Java应用和单元测试框架。我个人更喜欢使用TestNG。6.重构:常见,但速度慢。简洁干练的Java程序代码从来不是一蹴而就的,往往需要你反复琢磨、反复完善。通过逐行重构代码并运行各种测试用例,您可以确保您的更改不会破坏现有代码的正确功能。同样,IDEA也极大地提供了对代码重构的支持,包括extractmethod(提取方法,将一个大函数拆分成多个小函数)、rename、inline(内联)等功能。当然,如果你不太了解代码重构是什么,它有什么作用,MartinFowler的经典《重构:改善既有代码的设计(第2版),Refactoring: Improving the Design of Existing Code (2nd Edition)》(详见)绝对是你必备的参考书。7.定期联系客户以获得他们的反馈首先可能也是最重要的:客户付钱给你写代码来解决他们的问题,满足他们的需求,解决他们的痛点。然而,你可能会在不知不觉中花太多时间去实现你认为重要但与客户无关的特殊功能,而忽略了代码整体的健壮性和可维护性。那么,如何才能尽早发现这个问题呢?请经常与客户保持联系,尽早得到他们的反馈。话虽如此,知道比做容易。即便是经验丰富的产品经理也未必能在短时间内领悟到需求的真正含义,何况是那些只关注功能实现的“码农”?因此,一个切实可行的建议是:如果不能直接接触到最终用户,请尽量与系统的产品经理或运维人员礼貌、频繁地沟通。磨刀不误砍柴工。这几个小时的投入对于后期节省时间来说绝对是值得的。总结在过去几年的编程实践和项目应用中,以上七点经验让我受益匪浅。在此,希望它们也能对你的代码工作有所帮助。编程愉快!原标题:7TipstoWriteBetterJavaCodeYouShouldKnow,作者:NathanaelYang