Kotlin Code Smell 17 - Pattern Abusers

Kotlin Code Smell 17 - Pattern Abusers

Beyond Buzzwords: The Art of Thoughtful Pattern Application

Problems

  • Over Design

  • Readability

Solutions

  1. Measure the tradeoff of pattern usage.

  2. Create solutions based on real-world names (essential) over accidental architecture.

  3. Choose good names.

  4. Use the MAPPER technique to find bijection real entities.

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.

Credits