Refactoring your code to Java 9 modules
Java 9 allows you to split your code into modules and grant access only to certain packages and thus hide even public classes from external use.
Splitting up your code into modules directly communicates the architectural design, simplifies maintenance & reuse and can slow down the increase of technical debt.
In this talk we will have a look at some strategies which help you to split up your existing monolithic code base into several smaller modules. First we need tools to easily identify which parts can be split out. Then we apply some refactoring tricks to make this as easy as possible. Last we look at some more difficult examples and use design patterns to disentangle them.
Automating our software development process pipeline
Talks at a conferences often assume that you have test cases/coverage, automated deployment and no technical debt. But the reality is that most teams just have their code and manual/deployment. Books and articles tell you the theory. But how, where and when to start? Will it really pay out?
In the company I work for we have had problems in getting releases out fast and accurate. I began by implementing automated deployment last year. It payed out so many times until now to have invested just this one day.
At the end of the year we sat down with the whole team and, in the spirit of Christmas, we created a wish list of improvements for our development process:
Improved automatic deployment
Release Note management/Invoicing
Setup new machines
Better documentation & Improved communication
In this talk we will go through the points in this list and check what we achieved in half a year by working part time on it. I will present some of the solutions in a practical demo and tell you how much time we spent for each point.
Java Forum Nord, 2016
Functional Libraries for Java 8
Java 8 provides us with new APIs to support a functional programming style. While the standard provides us with a good basis, we sometimes wish for even shorter or powerful ways to write clean code for complex tasks. In this talk I will show you some additional libraries for Java 8 (and beyond) which give you this little extras here and there. I will cover a wide variety of use cases like filter/map/reduce, stream API add-ons, lambdas with unit testing, SQL query support.
This will cover among others: Javaslang, JUnit 5, jOOL and other nice libraries I will dig out during my search.
How can you achieve that code which was written some time ago can be understood by you and your team? How can you ensure that all developers write high quality code? How can you find bugs before the product is deployed?
This talk introduces techniques for code reviews. Readable, high quality code is essential for the long term success of a project. We will further have a look at some tools which can help with and partially automate code reviews.
I will also talk about my personal experiences made since starting with code reviews and how to avoid some common pitfalls.
Effective IDE Usage
You don’t want your IDE to propose java.awt.List as import when you need java.util.List? This talk will show you how to get rid of the proposal and how to use your IDE effectively to concentrate on your work.
It will cover the most interesting features from the leading Java IDEs Eclipse, IntelliJ Idea and Netbeans. Their default settings give you a good start but there is a lot more to discover to make you more productive. This includes syntax highlighting, editor, compiler and code completion settings. In addition we will try-out the most useful refactoring actions and shortcuts. After this talk you have an overview on how to setup your IDE in a way which will support your working style and will make you complete your work much faster.