After the 33rd Degree 2014 – main tools/techniques to trial or adopt

Every conference I have attended so far left me with new ideas and motivation to do things better on daily basis. This year 33rd Degree has given me the same boost as the previous ones.

This blog post is a quick overview of tools/techniques I am going to investigate deeper after the conference and try to introduce at least some of them at my daily work.

  • Project Lombok
    • boilerplate code generator
    • some features:
      • @NonNull annotation – generates null check for you
      • @Cleanup annotation – to ensure that a given resource is automatically cleaned up
      • @Getter / @Setter annotations- for every annotated field generates standard getter/setter methods
      • @Log annotation – for every class with the annotation generates logger field
  •  Logback
    • I have used it in one project but forget about it and stick to log4j
    • about 10 times faster than log4j
    • automatic configuration files reloading
    • automatic old log files compression and removal
    • maybe wait for Apache Log4j 2 ?
  • Logstash
    • a brilliant tool for managing application logs
    • provides web interface
  • vert.x
    • light, robust and high performance application platform for JVM
    • simple asynchronous API similar to the node.js one
    • project inspired by node.js so both have many similarities
    • components can be developed in different languages: Java, JavaScript, Groovy, …
    • scalability and high availability support out of the box
  • application metrics
    • start providing application metrics
    • a nice tool from codahale
    • already implemented it in Java application – fulfils all expectations
    • jooq
      • lets build typesafe SQL queries
      • fluent API
      • code completion for SQL
      • bugs found on compilation time
      • paid for use with non open source databases
    • Spring Boot
      • another excellent tool from Pivotal/SpringSource
      • quick application bootstrap
      • embeds Tomcat or Jetty
      • features such as metrics or health checks provided out of the box
      • no code generation
    • Modern Java applications deployment
      • awesome quote from +Axel Fontaine : “Running servers in production should be like going backpacking. You take the bare minimum with you. Anything else is going to hurt”
      • environment promotion instead of setting up a clean environment on development/test/production – that idea is not new for me. I have already seen it and use it on the Mainframe infrastructure.
      • embedded containers
    • Nashorn
      • JavaScript engine for JVM
      • amazing two-way integration with Java
    • walkmod
      • a tool to enforce consistent code conventions among project contributors
        • code licence snippets
        • code formatting
        • automatic refactoring – but I would think deeper before using it