Pul Requests

When working with different branches it is easy to do pull requests before merging changes into the master branch. The most common usage of this is to be able to do code review prior to the merge. There is however a lot more possible to assist your daily development process and achieve higher quality software.

In general you should do as much as you can before merging because up until that point it is straightforward as to what caused any problem, as you are only dealing with those changes. Another approach that needs to be taken is to automate as much as possible.

While the list of things you could do on a pull request is infinite, I explain the most common to do and what the benefits are.

Continue reading

Advertisements

Immutable Objects

Immutable objects are a great concept, an object that can not be altered after it was created. It is easy to debug and understand and it gives a lot of certainty just because it will never change. It is clear that we should aim to make objects immutable as much as possible but this sounds a lot easier than it actually is. Moreover the usability of immutable objects can pose a lot of problems as well.

Continue reading

Branch/Merge Strategies

In the previous blog post I explained my preferred way of commit messages, closely related to this is the way of how to actually commit these changes. In the end you want the changes to be available on the main branch, but there are may possible ways to get there. In this blog post I will explain some possibilities and which I prefer.

The easiest way is obviously to just using a single master branch and directly commit everything on there. The downsides of this approach are that you can’t do any peer review before the code is merged and collaborating becomes harder in general. Merging changes will also becomes more cumbersome as the master branch changes a lot and often, meaning you constantly have to keep merging the changes into your local branch. Having a separate branch for your changes is the solution to all of these problems.

Continue reading

Commit Messages

Whenever you use a versioning system such as Git, you have many possible ways of organising everything. The Goal of such a versioning system is to keep track of changes, but how easy it is to find a specific change mostly depends on how you use it. That is why in this blog post I will discuss the way I like to write commit messages to guarantee a clear, readable and easy to track history.

Continue reading

Artificial Intelligence

The usage of Artificial Intelligence is growing in every possible area. Though I have no real experience with AI, I am very interested in learning more about it and using it. AI is however a very general term that covers many different techniques ranging from heuristics such as Particle Swarm Optimisation to Machine Learning and Neural Networks. There is however a big difference between these algorithms, and what I want to discuss here is the ability to understand the outcome of the algorithm.

Continue reading

Pre/Post Conditions

Crucial to good Object Orientation, is the separation of concerns and capsulation. This means your objects need a clear API that limits the way the internal state can be changed. The object itself must be responsible for the state and must guard its integrity. While the API defines what operations are allowed, these methods have restrictions of their own. It is essential that the parameters provided to these methods are within the limitations. The only solid way of checking these values is by using preconditions.

Continue reading

Lessons Learned

University is the place where you are taught essential skills required for your future career. Although it is less then 3 years ago that I graduated University, I do feel I have evolved and learned a lot since then. Even though at University I already felt I was a good developer and had a strong mind, working on some real life software does learn you a lot. I would like to look back on some things I have learned, how my view of things has changed and what this is all caused by.

Continue reading