Appearance
Code Conventions
It's a good idea to give some thought to what you name your objects and services on the API. Variables, methods and classes also have their own conventions. These conventions vary from ecosystem to ecosystem and team to team.
If you join a team or project and conventions are already in place, use them.
Singular vs Plural
Be consistent with the route for accessing a service.
Everything is easier when singular/plural forms are consistent.
Should that apply at the UI route level too? I'd say yes.
This is a great discussion on the topic. https://stackoverflow.com/questions/6845772/rest-uri-convention-singular-or-plural-name-of-resource-while-creating-it
I prefer singular for is non-ambiguity. Going with that.
In my experience plural only complicates naming, but I get the appeal.
Choose a unique name
Ideally the name should be a unique term in the code base. It will appear enough as it is once it gets started.
Before settling on a name, do a search in the code base for the potential term. Do any other matches show up? Are those matches related to the domain of the term you want to use? If so, that's good. If not, it may be a good sign to use a different term.
Ideally a service name will not share a common prefix with other services
Ideally a single word will work. In some cases it is necessary to use two words. The two word case opens the door for deciding what case strategy will be used. (eg. kebab, camel, snake). I feel that it may be best to just smoosh all the words together to form the new term. No spaces, no dashes, no lowlines.
Names to avoid
"product" -- term comes up often in cases like "production", shares a common prefix with "project" "data", "file" -- these are both too generic. I do think it's okay to combine them though to "datafile" "template", "script", "style" -- these are used in the front-end framework Vue. It will be very difficult to use search to find related files.
Case
camelCase is used heavily in Javascript
snake_case is another useful alternative, especially in databases and filesystems where case can be problematic. Works fine in HTML templates without flipping to kebab case
kebab-case is good in urls, filenames and as ids (not good for variable names in code. -
gets interpreted as a minus)
Some good reading on the topic:
https://blog.lmorchard.com/2013/01/23/naming-conventions/ Naming Things: CamelCase vs snake_case - blog.lmorchard.com http://xahlee.info/comp/camelCase_vs_snake_case.html camelCase vs snake_case
Seems like camelCase is preferred over names_with_underscores. Variable names-with-hyphens are not allowed in python or javascript.
https://www.w3schools.com/js/js_conventions.asp
And for a laugh:
https://www.youtube.com/watch?v=LH5dOVqqCc8 Coding Style: CamelCase vs. snake_case - YouTube
_id vs id
Personally, I'm not a fan of including the table name in front of all of the column names.
But what to name the id
field?
Leaning toward _id
because it should be easier to identify / find / search for in code.
https://duckduckgo.com/?t=ffab&q=best+name+to+use+for+database+id+field&ia=web
best name to use for database id field at DuckDuckGo
https://stackoverflow.com/questions/208580/naming-of-id-columns-in-database-tables
sql - Naming of ID columns in database tables - Stack Overflow
https://stackoverflow.com/questions/199498/foreign-key-naming-scheme
database - Foreign Key naming scheme - Stack Overflow
https://duckduckgo.com/?t=ffab&q=database+_id+vs+id&ia=web
database _id vs id at DuckDuckGo
https://stackoverflow.com/questions/9694460/difference-between-id-and-id-fields-in-mongodb
mongoid - Difference between "id" and "_id" fields in MongoDB - Stack Overflow
Vue
Some well thought out conventions show up in the Vue Style Guide
Vue Style Guide and Naming Conventions
Linting
Conventions get codified in linting config files.
Style Guides
Style guides often cover more than just naming conventions, but they're a related topic.
Australia has a great developer's style guide on naming conventions:
https://api.gov.au/standards/national_api_standards/naming-conventions.html
Best Practices and Conventions
https://www.thinkful.com/learn/javascript-best-practices-1/
https://blog.risingstack.com/javascript-clean-coding-best-practices-node-js-at-scale/