How to write MapStruct mappers for object hierarchies

    Nick Tinnemeier, on 1-02-2021
    Category: Development

    Introduction MapStruct is a framework that alleviates us, programmers, from the unexciting task of writing code to copy one object model to another, field by field. This blog elaborates on how to write MapStruct mappers for object hierarchies. If, after reading this, you still wonder what MapStruct is and what it can do for you, then this blog might be a good read: https://techlab.bol.com/mapstruct-case-study/. To already spoil the fun, MapStruct is not able to generate mappers for classes that all inherit from the same (abstract) base class or interface. In…

    Read more

    Mapping object models with MapStruct – a case study

    Nick Tinnemeier, on 6-01-2021
    Category: Development

    Introduction I was once told that a good programmer is a lazy programmer. A good programmer avoids typing tedious code, where the code could basically write itself. Self-writing code – wouldn’t that be great? Unfortunately, we’re not quite there yet. We show you how close to self-writing code you can get. In this blog we will present a case study using MapStruct for mapping object models. In particular, we zoom in on how the MapStruct framework alleviates us from the dull task of writing code to copy one object model…

    Read more

    Love your logging

    Peter Paul van de Beek, Peter Brouwers, on 9-07-2020
    Category: Podcast

    When it comes to developing software we use the adagio: You built it, You run it, You love it. Same should hold for all the -ilities or non-functional requirements. So, one should love their logging. One of the subjects that we did not really touch yet in our podcast is non-functionals. Today we take a closer look at logging. An aspect that typically fills some of the non-functionals or -ilities. Love your logs and Love the people after you. For the first time in the history of the bol.com Techlab…

    Read more

    Utrecht JUG – Test Architectures & Hacking into Java web apps

    Peter Paul van de Beek, Peter Brouwers, on 19-02-2020
    Category: Podcast

    We take a sneak peek into the Utrecht JAVA User Group  (JUG) Meetup next week, February 24th. Topics will be: are End-to-End test architectures a Dead End road? And there will be some live hacking: Breaking into your Java web app. This will really give a feel for the importance of security. Besides that, we discuss with one of the founders of the Utrecht JUG why it’s so great to be part of a community. He explains the great initiatives like for instance the Speaker Incubator the JUG offers. Guests…

    Read more

    Advent of Code 2019

    Peter Paul van de Beek, Peter Brouwers, on 19-12-2019
    Category: Podcast

    The subject of this podcast episode is totally in line with the holiday season. Time for the advent calendars in many different formats. One of these formats is the Advent of Code 2019!   The bol.com Tech Community is participating in this event. In this episode, we talk with 2 participants and discover what it is all about. We explore what it could do. Our software engineers see it as a good way to sharpen their problem solving and a good exercise for the upcoming bol.com spaces programming championship. Some become really competitive. Guests Erik…

    Read more

    The state of Reactive Streams

    Peter Paul van de Beek, Peter Brouwers, on 14-11-2019
    Category: Podcast

    The state of Reactive Streams – watch the presentation and listen to the podcast. International Keynote speaker Oleh Dokuka gave a presentation on the state of Reactive Streams at bol.com. We took advantage of this opportunity and interviewed him for the podcast. The Reactive Streams specification is state of the art for asynchronous, non-blocking data streams with the fine-grained flow control. Clearly, that was done for a good future… but, does it have any future nowadays? How other programming ecosystems reacted to the appearance of the reactive-streams standard and did they adopted that…

    Read more

    Spaces Summit 2019 – Part II

    Peter Paul van de Beek, Peter Brouwers, on 27-06-2019
    Category: Podcast

    Three years ago, a group of enthusiastic engineers gathered together during the Friday drinks. They wanted to interact more in the growing organization. Learn more from each other by sharing cool stories. The plan for a bol.com tech summit was born, they called it Spaces Summit.   Three years later the 3rd edition in succession is organized by a dedicated team of committed engineers. It’s the 13th of June and the Techlab Podcast team is on the Spaces Summit 2019 location to give you an impression of the Spaces Summit.   In the previous episode of the podcast we interviewed one…

    Read more

    Spaces Summit 2019 – Part I

    Peter Paul van de Beek, Peter Brouwers, on 20-06-2019
    Category: Podcast

    Three years ago a group of enthusiastic engineers gathered together during the Friday drinks. They wanted to interact more in the growing organization. Learn more from each other by sharing cool stories. The plan for a bol.com tech summit was born, they called it Spaces Summit.   Three years later the 3rd edition in succession is organized by a dedicated team of committed engineers. It’s the 13th of June and the Techlab Podcast team is on the Spaces Summit location to give you an impression of the Spaces Summit.   We interviewed one of the committee members to tell you the What, Why…

    Read more

    Axle the opinionated support for bol.com scrum teams

    Peter Paul van de Beek, Peter Brouwers, on 6-06-2019
    Category: Podcast

    In this episode, we talk about Axle. Axle is our internal framework for building Java-based applications. Well actually as you will learn in this episode it is not a framework. It is an opinionated approach to building Java applications like Spring Boot is an opinionated view of the Spring platform and third-party libraries so you can get started with a minimum of hassle. Since internally we use the same thing for cross-cutting concerns like logging and metrics these all come out of the box when using Axle. Besides that, it…

    Read more