DEV Community

Cover image for Code Smell 38 - Abstract Names
Maxi Contieri
Maxi Contieri

Posted on • Edited on • Originally published at maximilianocontieri.com

1

Code Smell 38 - Abstract Names

Avoid too abstract names. Names should have real world meaning

Problems

  • Implemental Naming

  • Meaningless names

  • Broken MAPPER and Bijection to real world entities.

Solutions

  1. Choose meaningful names.

  2. Find metaphors.

  3. Avoid words like abstract, base, generic, helper etc.

  4. Use rules for naming.

Sample Code

Wrong

<?
final class MeetingsCollection {}
final class AccountsComposite {}
final class NotesArray {}
final class LogCollector {}
abstract class AbstractTransportation {}

Right

<?
final class Schedule {}
final class Portfolio {}
final class NoteBook {}
final class Journal {}
final class Vehicle {}
view raw realNames.php hosted with ❤ by GitHub

Detection

We can set up policies and rules warning for certain words like base, abstract, helper, manager, object etc.

Tags

  • Naming

Conclusion

Finding names is the last thing we should do on our designs. Unless we have a clear business understanding, good names emerge at the end after defined behavior and protocol boundaries.

Relations

More info

what is in a name

Credits

Photo by Rodion Kutsaev on Unsplash


There are only two hard things in Computer Science: cache invalidation and naming things.

Phil Karlton

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (0)