I’m trying to come up with the architectural name of a module/struct to act as a container for aspects related to a web site that has a separate frontend and admin interfaces (different UI layout, behaviour, endpoint perhaps, etc). So far, the best I have come up with is “concern”, or perhaps “interface”.
Some background… I’m looking at support for both a front facing web interface and a backend admin interface in ExAdmin. So, I’m going to create the concept of the thing I’m asking about here. It will be used to scope configuration, managed resources, etc. Similar to how the Phoenix EndPoint or Ecto Repo is used.
I don’t want to use a name that already has a significant meaning in Phoenix since that will cause confusion. For this reason, I’ve rejected View, Template and Context.
Based on the description in your first post I thought you would have two of these, one for the user-facing part and one for the ‘admin-facing’ part, but it seems I did not read carefully enough.
I think all of ‘engine’, ‘concern’ and ‘interface’ are terms already have too many conflicting/vague meanings: Isn’t a framework an engine? Does a concern mean that something is bad? Interface: The abstract concept, the Java keyword, application programming interface, user interface? etc.
Maybe you could call it a ‘Cell’, as it is immediately clear that it both is part of a greater whole, have multiple internal parts and have a clearly-defined border (‘membrane’ ;D) where something is either part of it or not.
Probably should not have used ExAdmin there. I’m actually working on the the rewrite of ExAdmin which has a new name, Talon. I’m designing so that it could be used to create both a front end and a backend to a web application. So, the aspects I see are “Admin”, “FrontEnd”, “Vendor Portal”, etc.