Skip to content

Instantly share code, notes, and snippets.

@rmartinho
Last active July 15, 2020 01:33
Show Gist options
  • Star 24 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save rmartinho/3176551 to your computer and use it in GitHub Desktop.
Save rmartinho/3176551 to your computer and use it in GitHub Desktop.
I will hate you

Dear C++ library writer,

  1. If your library forces me to use new all over, I will hate you.

  2. If your library has types with bogus values, I will hate you.

  3. If the documentation for your library gets the terminology of its own domain wrong, I will hate you.

  4. If I say "My God, it's full of stars!" when I see the function signatures in your library, I will hate you.

  5. If your library uses #define instead of const or inline, I will hate you.

  6. If your library has a base class of everything, I will hate you.

  7. If your library has singletons, I will hate you.

  8. If you think you can use a tool to automatically translate a library from Java, I will hate you.

  9. If the classes in your library have such clear responsibilities that you call them "managers", I will hate you.

  10. If your library does not play nice with the standard library, I will hate you.

  11. If functions in your library return error codes instead of throwing exceptions, I will hate you.

  12. If your library has public members that are designed to be used only from internal code, I will hate you.

  13. If your library makes use of the global namespace, I will hate you.

  14. If your library has types traits that don't play nice with SFINAE, I will hate you.

@kybernetyk
Copy link

If functions in your library return error codes instead of throwing exceptions, I will hate you.

If your library throws I won't use it.

@miguelibero
Copy link

the problem with managers is that they tend to not follow the S in SOLID

@SeAlgoAsoma
Copy link

I don't even know what this is about, I'm just here because I hate markdown.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment