Kotlin Code Smell 17 - Pattern Abusers
Beyond Buzzwords: The Art of Thoughtful Pattern Application

I've started to work as a software engineer at 2014, however, I started to write code at high-school.
My first language was Assembly, but still, I fall in love with the possibilities to make the computer to do as you wish, shortly after that I started to write in C.
Later on I studied a practical engineering in electricity, and during this time discovered that I preferred much more writing code than design electrical components.
As a result of this understanding I decided to switch and study bachelor degree in computer science in Reichman university, where the focus was of the Java language.
Today I'm working at SumUp using Kotlin, SpringBoot & Micronaut, Cassandra and Kafka
Problems
Over Design
Readability
Solutions
Measure the tradeoff of pattern usage.
Create solutions based on real-world names (essential) over accidental architecture.
Choose good names.
Sample Code
Wrong
class FileTreeComposite {
// name should be inferred from behavior
}
class DateTimeConverterAdapterSingleton {
// ...
}
class PermutationSorterStrategy {
// ...
}
class NetworkPacketObserver {
// ...
}
class AccountsComposite {
// ...
}
Right
class FileSystem {
// These names map 1:1 to real-world concepts
}
class DateTimeFormatter {
// ...
}
class BubbleSort {
// ...
}
class NetworkSniffer {
// ...
}
class Portfolio {
// ...
}
Conclusion
Choose when to apply a pattern solution. You are not being smarter by using too many patterns. You are smart if you choose the right opportunity to use the patterns.




