Sobes.tech
Middle+

How do you feel about very long classes containing 2 to 4 thousand lines of code?

sobes.tech AI

Answer from AI

Negative.

Long classes violate the Single Responsibility Principle (SRP) and the Principle of Least Knowledge. This leads to the following problems:

  • Hard to read and understand: Large amounts of code make it difficult to grasp the class logic.
  • Hard to maintain and modify: Changing one part of the class can unintentionally affect others, causing errors.
  • Risk of code duplication: Functionality may be repeated in different parts of the class.
  • Testing issues: Unit testing a large class becomes complex and time-consuming.
  • Reduced reusability: Individual parts of functionality are hard to extract and reuse elsewhere.

Ideally, classes should be short and perform a single specific task. Functionality should be decomposed into smaller, specialized classes or functions. Refactoring such "god" classes is a priority for improving code quality.

For decomposition, the following approaches can be used:

  • Extract related logic into separate classes: For example, data handling, UI logic, business logic.
  • Apply design patterns: MVC, MVP, MVVM, Repository, Factory, etc.
  • Break down into smaller functions/methods: each method should do one thing.
  • Use extensions in Kotlin: to add functionality without modifying the original class.