Categories
Software Craftmanship TDD

jqwik at first glance from a kotest user’s perspective

After reading the great blog article from Johannes Link about property testing in Kotlin, I was inclined trying it out. Having written property tests with kotest before, I was curious what I was missing and how much I would like a specialized property testing framework.

Categories
Software Craftmanship

About learning by teaching

After my visit to this year’s BusConf at the beginning of August 2018 and some discussion with a colleague who asked me about my opinion Value Objects and FP, I decided to start learning about Applicative Functors. I was surprised how easy it is to implement a more functional style validation using them and I knew that I have to prepare a talk about it to share my passion. There’s also an excellent blog post from Codurance about this topic in two parts that I highly recommend (Part1, Part2).

I did not expect to have enough insights/time to hold a session at SoCraTes at the end of August about it, but I began preparing one anyways in hope to have it ready for SoCraTes Franken Day in September.

While preparing it finally occurred to me, that by trying to explain the topic to others, I finally got a deeper understanding of it myself. I was so surprised how well it went so I decided to hold a small evening session about it in SoCraTes. While it still lacked some polishing, I think that I could give the attendees a gist of Validation in FP which was very fulfilling for me.

I think that learning by teaching works for me and I will continue to hold sessions about topics where I do not consider myself being an expert.

Categories
Software Craftmanship TDD

A little self-accusation

I want to accuse someone for writing bad code. This person has written lots of crap for about 7-8 years. Little time went into refactoring and even less into automated tests. When I look at his code my first thought is “what the hell was this guy thinking?”. In many cases his approach to software design has proven to be harmful for me. For example, when forced to fix a bug that was introduced by my bugfix because I did not understand the code well enough.