The Roman theatre in Bosra by Alessandra Kocman This is the second part of the post series dedicated to quality of automated tests. In the previous part I wrote about test names and granularity. Today I am going to focus on test data setup, its readability and how it is related with the evolution of … Continue reading "Storytelling with tests #2: setting up the stage"
Read MoreAuthor: Tomasz Kaczmarzyk
Open-source for the win! Benefits of contributing to OSS
At Tratif we believe that contributing to open-source software has very positive effect on organizations and individual developers. We rely on open-source software in almost every project that we have delivered. This is the foundation of our approach: open and proven solutions of highest quality and the fastest approach to fixing issues, supported by the … Continue reading "Open-source for the win! Benefits of contributing to OSS"
Read MoreThe power of Git interactive rebase
Rebasing in Git is a very useful feature which helps to maintain a readable commit history. Interactive mode of the rebasing is one of the most powerful tools which Git provides. In this post I am going to present interactive rebase and show how you can leverage it in daily work with your repository. Git … Continue reading "The power of Git interactive rebase"
Read MoreStorytelling with tests #1: test names and granularity
Very often you can hear that automated tests provide a great documentation of the production code. Such documentation is more fun to write and is always up to date (of course as long as you actually run your tests). A new developer may take a look on the tests to get familiar with the project. … Continue reading "Storytelling with tests #1: test names and granularity"
Read MoreWhen more is less: mind the cacheability
There are many guidelines and patterns for optimizing performance of web applications. I would like to address and confront one of them: minimizing the number of database queries (or web service calls) per request. It sounds like a good heuristic – each network round-trip (e.g. to and from the DB) takes several milliseconds and impacts the overall response time. So having fewer queries is indeed the right approach for many cases. However, I would like to highlight some situations, when better way is to do the opposite.
Read MoreUndoing in Git
Git is probably the most popular distributed version control system. When used properly, it allows a team to be extremely effective. When misused, it can create a total mess out of the code base. Every now and then you end up in a situation, when you have to undo your actions — it can include invalid file edits or deletions or even improperly executed Git commands.
Read MoreAutomated validation of DB schema migrations
Object Relational Mapping frameworks, such as Hibernate, very often provide a way to automatically generate the database schema based on persistent classes. While it is very convenient as a proof of concept or for very simple applications, it is not a production ready approach. In reality you have to write scripts to version your schema … Continue reading "Automated validation of DB schema migrations"
Read MoreEffective RESTful search API in Spring
Flexible RESTful search is very often a must-have for a web application. While the concept is easy and not new, it is very often implemented in a repetitive and tedious way. In this post I will demonstrate an effective way of implementing search API with Spring Data and Specification Argument Resolver. Naive approach With Spring … Continue reading "Effective RESTful search API in Spring"
Read More