I have come to believe that software development doesn’t have to be hard as long as you follow some best practices, or better yet, form habits based on those practices.
This blog is an attempt to describe some habits I believe to be valuable for software developers. In addition, it is used to document practical experiences from following these habits, so there are also hands-on examples of using different techniques, tools and technologies, as well as sample code.
- Zen and the Art of Computer Programming - Today’s Chautauqua is about software quality, and how it relates to the developer habits. Programming as an Art Let’s start by discussing why programming is an art and not a science. It should be clear that programming is not a pure science, simply because quality is such an important aspect of programming. The pure sciences, … Continue reading Welcome to the Habits of a Real-Life Developer!
- Reading JSON Files to Create Test Versions of REST Clients - This post describes a simple way to create a test version of a service that reads JSON or XML from a REST service or similar. The purpose is to easily create a fake service that reads from files instead and that can be used for testing other code that use the service. I believe in … Continue reading Welcome to the Habits of a Real-Life Developer!
- Writing an Integration Test First for RabbitMQ - In a previous post, we saw some Java code for redelivering messages from a queue to an exchange in RabbitMQ. Obviously, a test was written before writing the actual code. What kind of test is appropriate in this situation? What we want to test is that messages that are in a RabbitMQ queue are removed … Continue reading Welcome to the Habits of a Real-Life Developer!
- Redelivering Dead-Lettered Messages in RabbitMQ - Here we look at some options for redelivering messages from a RabbitMQ queue to an exchange. The queue can for example be a dead letter queue. The background for this is that an organization I’m working with at the moment wants to automatically generate web pages based on information entered into an internal system, let’s … Continue reading Welcome to the Habits of a Real-Life Developer!
- Building Linux Docker Images on Windows 2008 R2 with Maven and TeamCity - This post describes how to use Maven to build a Docker image using a remote Docker host running on Linux. This means that the Maven build can run anywhere, for example in TeamCity on Windows. The assumption here is that we have a separate (virtual) machine running Linux (RHEL 7), and we use this machine … Continue reading Welcome to the Habits of a Real-Life Developer!
- Books Every Software Developer Should Read - I try to read at least one book per month. Reading is a nice way to spend the time when you’re on a plane, a train or a bus. It is a good example of the habit when in doubt, do something—when you have some time over, try spending it doing something useful. There are … Continue reading Welcome to the Habits of a Real-Life Developer!
- Estimating User Stories Using T-Shirt Sizes - Estimating user stories may sometimes be useful to predict, for example, what can be included in an upcoming release. If you estimate using hours and days, it usually takes a long time to agree on the estimates. An alternative is to use relative story sizes for the estimates instead of absolute time. This often turns … Continue reading Welcome to the Habits of a Real-Life Developer!
- Everybody, All Together, From Early On - In the book Lean Architecture: for Agile Software Development, the authors James O. Coplien and Gertrud Bjørnvig claim that the secret to Lean is Everybody, all together, from early on. I don’t know enough of the history of Lean to say if that is true, but I do know that the “Lean Secret” works in … Continue reading Welcome to the Habits of a Real-Life Developer!
- Why You Should Publish Domain Events - A domain event is a concept from domain-driven design that signals that the state of a system has changed in a way that may be interesting to others. For example, one type of domain event might show that a user has been added to the database, while another type of domain event could signal that … Continue reading Welcome to the Habits of a Real-Life Developer!
- A Simple Git Branching Strategy - In a new project it is always necessary to choose a strategy for working with your version control system when it comes to branching and release management. Some of the things I look for in a branching strategy: It should be as simple as possible. It should maximize the benefits of continuous integration. It should … Continue reading Welcome to the Habits of a Real-Life Developer!
- RealLifeDeveloper Artifacts Now Available From Central Maven Repository - The Java artifacts described so far, rld-parent and rld-build-tools, are now available from the central Maven repository. This means that you do not have to build them manually to install them in the local repository, just add a dependency in your POM: About Latest Posts RealLifeDeveloperI'm a software developer with 20+ years of experience who … Continue reading Welcome to the Habits of a Real-Life Developer!
- Testing Spring Data JPA and In-Memory Repositories Using DbUnit - In a previous post, we saw how to create Spring Data JPA repositories, and how to create in-memory versions of these repositories, useful for testing other code that uses repositories. Obviously, the repositories themselves need to be tested. DbUnit can be used to populate a database with test data so that we know the state … Continue reading Welcome to the Habits of a Real-Life Developer!
- Creating In-Memory Versions of Spring Data JPA Repositories for Testing - This post shows how to easily create in-memory versions of your repositories. These in-memory repositories can then be injected into, for example, a service that you want to test. I am not a big fan of mocking frameworks. The reason is that I believe that it is far too easy to oversimplify the interactions between … Continue reading Welcome to the Habits of a Real-Life Developer!
- Habits Useful for Practising Software Developers - I sincerely believe that the micro decisions we make every day when developing software can have a huge impact on the quality of the systems that we build. This means that if we learn to make better decisions when faced with options, probably several times a day, the end result is a much better system. … Continue reading Welcome to the Habits of a Real-Life Developer!
Latest posts by RealLifeDeveloper (see all)
- Zen and the Art of Computer Programming - September 2, 2017
- Reading JSON Files to Create Test Versions of REST Clients - April 8, 2017
- Writing an Integration Test First for RabbitMQ - April 7, 2017