Kotlin Code Smell 11 - God Objects
Juggling Many Hats: The Perils of a God Object

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
TL;DR: Avoid taking on excessive responsibilities. Use the single responsibility principle.
Problems
Lack of cohesion
Tight coupling
Solutions
Split responsibilities.
Follow the Single Responsibility Principle.
Follow The Boy Scout Rule.
Examples
- Libraries
Exceptions
Sample Code
Wrong
class Soldier {
fun run() {}
fun fight() {}
fun driveGeneral() {}
fun clean() {}
fun fire() {}
fun bePromoted() {}
fun serialize() {}
fun display() {}
fun persistOnDatabase() {}
fun toXML() {}
fun jsonDecode() {}
//...
}
Right
class Soldier {
fun run() {}
fun fight() {}
fun clean() {}
}
Conclusion
In Object-Oriented Programming, we distribute responsibilities among multiple objects.




