提升java工作效率的plugins

相对于其他后端语言,java一直被诟病太笨重,不适宜快速开发,下面介绍几个java的依赖、插件,来提升你的项目开发速度。

gradle

相对于maven,gradle最大的好处是直观、简洁。不要小看直观简洁的力量,。项目依赖管理的简洁带来的好处是管理起来非常方便。在SpringBoot还没流行的时代,spring MVC需要引用的jar包非常多,pom文件往往会有几百甚至上千行。而改用gradle后,行数将会大大减少,带来的直观和心理舒适感是maven无法比拟的。

而且,gradle的task编写起来比maven也要好很多,由于gradle的task是groovy的语法,更符合程序员的认知。比如,项目依赖中引入docker镜像的打包,在maven中表现为:

<properties>
   <docker.image.prefix>${docker.image}</docker.image.prefix>
</properties>
<build>
    <plugins>
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>0.4.11</version>
            <configuration>
                <imageName>${docker.image.prefix}/${project.artifactId}:${project.version}</imageName>
                <dockerDirectory>src/main/docker</dockerDirectory>
                <pushImage>true</pushImage>
                <resources>
                    <resource>
                        <targetPath>/</targetPath>
                        <directory>${project.build.directory}</directory>
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
            </configuration>
        </plugin>
    </plugins>
</build>

而在gradle中的表现为:

task buildDocker(type: Docker, dependsOn: build) {
    push = true
    applicationName = jar.baseName
    dockerfile = file('src/main/docker/Dockerfile')
    doFirst {
        copy {
            from jar
            into stageDir
        }
    }
}

孰好孰坏,一目了然。
gradle的具体使用可以参考Gradle 官网

swagger

前后端分离模式项目的开发流程一般是后端写好接口后,使用postman,soapui等工具测试完成后,编写接口文档更新到wiki,然后转给前端工程师。

这样带来的问题是,后期如果出现接口变动,后端往往不会及时去更新文档,最后导致文档与最新代码之间出现割裂。而且这种方式一般只提供给前端正确的响应结果,对于错误的响应,前端并不能从接口文档直观的了解。

Swagger是一种Rest API的简单但强大的表示方式,标准的,语言无关,这种表示方式不但人可读,而且机器可读。可以作为Rest API的交互式文档,以更友好的方式将接口描述展示给接口的消费者。

现在流行的开源项目已经开始支持swagger风格的接口描述了,比如我们使用的docker调度框架marathon,它提供的marathon REST API,既准确的描述了每个接口、字段,而且提供调用接口,比文档形势的接口描述更加友好。

swagger的具体使用可以参考Swagger 官网,只需在项目中引入swagger依赖,作简单配置即可。

Lombok

作为静态语言,java在做接口对接的时候,经常需要处理POJO类,在代码里往往会产生许多影响阅读的setter、getter、builder等代码。对于二三十个属性的POJO类,会由于getter、setter的缘故,会导致代码量非常大,对于字段的删减就变得很繁琐。如果在里面还混合了静态的构建者方法,就更难维护。

class User{

  String name;

  int age;

  public String getName() {
      return name;
  }

  public void setName(String name) {
      this.name = name;
  }

  public int getAge() {
      return age;
  }

  public void setAge(int age) {
      this.age = age;
  }
}

使用lombok来改造你的POJO类之后,表现为:

@Data
class User{

  String name;

  int age;

}

lombok可以在javac编译时,分析语法树,给带有lombok注解的类的属性添加getter、setter、builder等方法。效率没有差别,但代码更加简洁。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值