With already a quarter of a year gone, it may be a little late for making resolutions. Well, they say better late than never. Let’s call them ‘targets’ if you are not comfortable with the term ‘resolutions’, as it is late, and more often than not, most resolutions end up broken.
So, these must be your technical targets in 2017 with regards to Java application development:
Docker and Big Data
Big data processing is still an ambiguous term for many of us. JSON has been the conventional data format, and most of us have not experimented with NoSQL databases like Cassandra and MongoDB. Specialised big data processing techniques like Hadoop or Yarn are also largely untouched by regular developers, who do not find enough time to explore stuff outside the sphere of their regular Java application development.
Software containers like Docker should also be studied and used with complementing technologies like Kubernities and Swarm.
Docker, for example, allows running and managing apps in parallel in isolated containers, which provides better compute density. It works with both – Linux and Windows Server apps, and is to increase the efficiency of Agile development processes in enterprises.
Containers are better than VMs, as they package only the required libraries and settings needed by the application rather than bundling the whole OS with them. This ensures that the application behavior remains the same regardless of the system it is being run on.
Often when focusing on processes like Agile and DevOps, we miss out on upgrading on the most basic function of Java application development– knowing Java in-depth. Being such a vast platform that is constantly seeing updates brought about by JSRs raised by the uber-active Java community, it is imperative that the Java developers take some time and evaluate the latest release Java 9 before starting the migration of existing apps and development of new apps on the platform. It is interesting to note that in Java 9 – Oracle has done away with several internal APIs, and developers have to find a way around these to make their applications backward compatible while moving to Java 9.
It is also necessary to form an opinion on Project Jigsaw (Java 9), as it is being blamed for making legacy applications unstable due to code breaks when migrating to the new platform. Some developers are appreciating the progressive step of blocking the internal APIs, and opining that multi-release JAR files will solve the problem of backward compatibility easily. It is essential that every Java developer form an opinion of his/her own on this perception by exploring the initial JDK 9 release, and not choosing a side based on just hearsay.
Software development best practices
Most resolutions are about basics. Since, the targets we are setting for ourselves are nothing but resolutions in disguise, the most basic element of Java application development should be on the list – utilizing software development best practices.
Essentially, every developer – seasoned or newbie – should be doing these things, to further improve the quality of application code:
- Run performance profiles regularly on every application code. This helps ensure that the application is running properly after every code update.
- Write test cases for every code beforehand, and test the code accordingly. Do not write code that cannot be tested for specific use cases.
- The code should be readable by any Java developer – expert or beginner.
- This can be achieved by adhering to the naming conventions set by the JCP members.
- The code should have comments throughout – for the active code and commented code both.