The League of Extraordinary Antipattern
by Dirk Fauth
Read more about Dirk's talk co-presented with Stefan Schlott, The League of Extraordinary Antipattern.
With our background of being consultants for several years, having seen a lot of projects, some years ago we started collecting what is called "bloomers" in literature. Those were the kind of programming misconceptions that made us laugh and cry at the same time.
A few years later, while refactoring an application to make it ready for the future, I came across several places in code that made it very hard to refactor. And I realised that these kinds of issues are quite common for beginners in object oriented programming. At a certain point in time while refactoring I started to give these anti-patterns the names of superheroes for several reasons:
1. I really like comic books and superheroes
2. I realized that the code that was produced looks like a very good idea in first place, so the one who produced it surely felt very good when he solved his problem this way
3. I wanted a name that is easy to remember to help others to avoid the same mistakes in the future.
One of these places in code was the misuse of statics, and this was the birth of "Captain Static". Whenever I needed to refactor static code to make it match object oriented principles I shouted out "Hey, I found another place where Captain Static tried to help!" or even simpler "Look, another Captain Static!". After a while I realized that people started thinking about whether to mark variables and methods static or not. And when they were unsure, they asked me if they are producing "another Captain Static" or if it would be correct in that scenario. The learning process started.
Talking to several people and remembering the "bloomer" from the past, the idea of the "League of Extraordinary Anti-Patterns" was born. We collected anti-patterns that are typically made by people starting with object oriented programming, enriched them with some anti-patterns that are made by accident (probably because they are hard to understand) and added those very uncommon but ugly "bloomers" to help people not to make the same mistakes.
We were asked why they are superheroes and not villains. Well, we like our job and what we are doing. We love to laugh and we know that it is easier to remember something when you laughed about it rather than someone simply saying "this is bad, don't do it!". And someone thought it would be a good idea to use this anti-pattern without knowing that it is one. So that person thought he found the superhero to solve his issue, but in the end it turned out that he was not that super at all.
As I like comics and superheroes, I started sketching our superheroes to also have a visualization. The digitalizing of theses sketches was done by Stefan´s sister, and I really like the professional result. To give you an example, have a look at the previously mentioned Captain Static.
If you like to laugh at a conference, about the speakers, the slides, the content or maybe even about yourself because you realize you did the same things in the past, you should come and attend our talk.
Hopefully you also learn something new that you didn't know or realize yet. And even if there is nothing new for you (lucky you!) you will enjoy an entertaining talk.
We had a lot of fun in preparing the talk and hope you will like to listen to it as much as we like to present it.
Dirk Fauth is a Software Architect for Rich Client Systems working for the Robert Bosch GmbH in Stuttgart and a lecturer in Java basics for the Baden-Wuerttemberg Cooperative State University (DHBW). He is active in developing, teaching and talking about Eclipse RCP applications and Eclipse related technologies. He is project lead of the Nebula NatTable project, Eclipse Platform committer and also a committer and contributor to several other Eclipse projects.
Dr. Stefan Schlott, Advisory Consultant is developer, architect, and trainer at BeOne Stuttgart GmbH and a lecturer for parallel programming for the Baden-Wuerttemberg Cooperative State University (DHBW). His specialties are security, privacy, scalable architectures, and the broad field of web technologies. He is a functional programming enthusiast, a fan of the Scala programming language and a friend of open source.