„My Life with Isis (so far).“
Did I finally make it and write one of those “catchy” headlines? (*)
There is little that makes my curious technicianheart go boom boom like the opportunity to learn something new. A couple of months back I got the opportunity to support a project with an unknown framework and approach.
Of course I talk about Isis, which was only known to me as an egyptian goddess and of the recent past… well, you know!
Apart from that it’s also a JVM-based Apache project of the same name. Apache Isis (https://isis.apache.org/) is based on the idea of naked objects. To summarize shortly, the three base principles:
Firstly: All Business-logic is encapsulated in domain objects.
Secondly: The user interface should depict the domain objects directly
Thirdly – and this is the speciality of this pattern: The user interface should be generated automatically from the domain objects. (Interested readers should have a look at: http://www.nakedobjects.org/)
I see the biggest strength of Isis in the third point. Isis itself even promises >UI & REST “for free”< (and it delivers)!
With very minor work investment you get an easy to use GUI that shows all the relevant data of the domain object and allows actions on them as well. Therefore administration of these domain objects by human operators becomes childsplay. This also shows in the typical Usecases (see: https://isis.apache.org/pages/common-use-cases/common-use-cases.html and https://isis.apache.org/pages/powered-by/powered-by.html)
Especially for rapid prototyping this approach is ideal, as the focus may lay on the actual business model and one does not “waste” precious time during each (modeling) iteration to update ones GUI or database, just to get a feel for the model and how it works.
(*) In case you’re part of a secret agency: Don’t shoot please!