3 ms·
Right? It's like having to "google" to find out how to use your "apple" to interface with "postgres" that's running on "linux"! It should be "global-web-searche
by gilbetron 4y ago
Right? It's like having to "google" to find out how to use your "apple" to interface with "postgres" that's running on "linux"! It should be "global-web-searcher-1", "computer-vendor-17", "database-18" and "open-source-operating-system-derived-from-another-operating-system"!
- danparsonson 4y agoExactly! That's why I always advocate giving every monitor in an office its own unique name (mine is Moe!) and every keyboard, chair, desk, etc. Who wants to use those stuffy descriptive generic names?? Obviously trademarks and other product names are more useful if they're unique; Google, Apple, etc. are not components of a system, they're products. It's like getting your car fixed - they don't tell you the Jane and the two front Turnipheads need replacing, now do they?
- gilbetron 4y agoSo you name your keyboard "character-event-generator-1", your chair "butt-and-back-holder-1" and your desk "four-stick-and-board-to-hold-items"?
- danparsonson 4y agoNope - we already have widely understood descriptive nouns for those things. If I walk into an office and someone asks me to bring a chair over, I know instantly what they're talking about. They might need to qualify it - that blue, high-backed chair with the arms, for example - but if they said 'bring Clive over', I'd be stuck until I learned the (fun!) names of the office chairs, and would likely be confused for a long time until I managed to remember who was who, not to mention that there would be no other incentive to learn those names as that information has no value outside the office. This is the point at issue here. We also have widely understood descriptive nouns in software development - for example if I hand you a class called 'xyz-repository', you probably know instantly that it's a class designed to manage the lifetime of xyz objects that are persisted to and retrieved from a database. If we had an identity service we could choose to call it: a) login-and-token-management-service, per your example; unnecessarily wordy but obvious b) identity-service c) gatekeeper, which is fanciful but at least slightly descriptive; we'd probably be able to guess its purpose from the name d) dr-octopus, which is lots of fun and completely useless for helping me to remember what it does Hopefully you can see that b) is the most boring but most widely understandably name; if b) is not an option because we've invented a new thing that doesn't have a descriptive noun, then a) is still the best choice of the remaining three as it tells everyone what it does without requiring any inside knowledge. It's about cognitive load - some DSLs add value, others just increase the amount of mental effort required to understand the system.