David Tanzer

Coach | Consultant | Trainer

Legacy Code Refactoring at Softwerkskammer Munich

2017-01-13

Yesterday I facilitated a “legacy code refactoring” session at the Softwerkskammer München Meetup. There were ~50 craftswoman and craftsmen, and all of them were coding, trying to improve some particularily bad code I wrote.

We did three different exercises, each of them for 30 minutes, and in all of them, we tried to bring a piece of bad code under test.

Read More...

react-native-ubunut on Fedora Linux

2016-11-08

Last week, I first heared about React Native Ubuntu. I thought: That’s awesome - Now I can develop desktop applications for all major operating systems (since there is also a React Native Windows and React Native MacOS). So I had to give it a try.

The only problem: My main laptop is running Fedora, and I do not want to switch to Ubuntu just for toying with a new technology. Well, I tried anyway, and I was pleasantly surprised that it was not very hard to set up. (Wouldn’t it be really cool if Canonical and RedHat would work together on react native and renamed it to “React Native Linux”? Tell them!).

So, here’s what I did to install and run the react native starter app on my Fedora system:

Read More...

Spring Boot and React: Flow and Mocha

2016-08-22

In my last blog post, I created a basic setup for getting started with Spring Boot and React. But some things were still missing, like type-checking JavaScript with flow or running the mocha tests with gradle.

Once again, you can get the current status of the whole project on GitHub: dtanzer/example-react-spring-boot. Feel free to clone this project as a blueprint for your own projects…

Read More...

Getting Started with React and Spring Boot

2016-08-11

Right now, I am trying to deepen my react knowledge and skills. So I started to set up a little project where I can play around: A spring boot backend and a client application written with react and redux. You can get the whole source code on GitHub: dtanzer/example-react-spring-boot. Here is a really detailed guide that describes what I did to make it work (and often why I did it)…

Note: If you just want to play around with what I did, don’t repeat all my steps, clone my github project. This guide is just here to explain why the code is how it is right now, and how all the parts play together.

Read More...

Why We'll Have Vegan Food at SoCraTes Day Linz

2016-08-08

We will have vegan food at SoCraTes Day Linz 2016. OK, we will probably have a non-vegan option at some of the meals, but the default is vegan. This was one of the first things I said to our caterer and to a sponsor who might bring breakfast.

People who know me know that I eat - and even love - meat. So why was vegan catering so important to me?

Read More...

The Mock Objects Trap

2016-06-03

In a previous post, I wrote about integrated tests and how they actually decrease your chance to catch regressions, decrease testability of the system and can lead to a test suite where nobody really trusts the results. That post captures some of my thoughts after hearing a talk and reading an article by J.B. Rainsberger about the topic.

So, what is the solution?

Read More...

A New Testing Framework for Swift

2016-04-18

Last week, Rene Pirringer and I sat together and collected some ideas for a new test framework for the Swift programming language. Everything we did (and want to do) was heavily inspired by JUnit 5.

This is a very quick overview of what we are trying to do. I guess I will write more about this topic in the future ;)

Read More...

Getting The Details Right is as Important as Your Architecture

2016-03-30

This post has been translated to Chinese by Zhang Wei: Getting the Details Right (Chinese)

On the internet, you can find more definitions for “Software Architecture” than I want to list here. But I hope you agree with me that software architecture is more about the high level structure of a system, and “software design” is more about the details, the low-level stuff.

The more I think about it, the more I realize: If you don’t get those little details right, you cannot have a great high-level structure. If you don’t have a good software design, your software architecture also cannot be that great.

Read More...

Boilerplate vs. Magic

2016-03-21

Just about a month ago, Phil Webb tweeted:

What would you like to complain about? [ ] Too much magic [ ] Too much boilerplate Phil Webb - @phillip_webb

and just a little bit later, Josh Long tweeted:

“too much magic” = you haven’t read the docs on @SpringBoot ’s auto-configuration http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference... Josh Long - @starbuxman

Here’s my take…

Read More...

6 Reasons Why You Should Avoid Singletons

2016-03-14

A little more than a decade ago, I used singletons a lot. I had a shortcut in eclipse where I only had to write “singleton” and press “CTRL+Space”, and boom: Eclipse would generate all the necessary code to make the currently open class be a singleton. Since then, I learned a lot. And the tools we have to avoid Singletons (i.e. the Singleton Pattern) have matured. Now I try to avoid the singleton pattern like the plague. Here is why…

Yes, I am really writing a blog about why the “Singleton Pattern” is bad. In 2016. But it comes up in discussions time and again, so here is a list of reasons why you should avoid singletons.

Read More...