interface
, component
, base
, project
or workspace
, we need to come up with a good name. Finding good names is one of the hardest and most important thing in software. Every time we fail to find a good name, it will make the system harder to reason about and change.validator
, invoicer
or purchaser
. Sometimes a component operates around a concept that we can name it after, e.g.: account
or car
. This can be an alternative if the component does more than one thing, but always around that single concept.-api
is a good pattern, like myexternalsystem-api
. API's that are heavily used like aws
can skip the suffix.invoicer
, where the invoicer
component contains the business logic, while the other component only delegates to a service that includes the invoicer
component, then we can name the component that does the remote call, invoicer-remote
.invoicer-rest-api
. If it's a lambda function that generates different reports, then report-generator-lambda
can be a good name.invoicer
or report-generator
.