3 ms·
My university SE class was during those heady days of MDA, and my opinion, nicely summed up in this article, hasn't changed one bit: Yes, I could create a clas
by morelisp 4y ago
My university SE class was during those heady days of MDA, and my opinion, nicely summed up in this article, hasn't changed one bit:
Yes, I could create a class diagram as a PIM; press a button and create a PSM; and press another button and generate Java code. But the Java code had all sorts of holes in it that I had to fill in — and if I changed the model in any way, half of the code I'd written would no longer compile, let alone run correctly. In other words, OptimalJ automated the most trivial things, leaving all the hard work to the end user.
Unfortunately while MDA died, this same scheme is dominant today for OpenAPI definitions with exactly the same problems.
- mikro2nd 4y agoAllow me to introduce you to the "Generation Gap" design pattern. ["Pattern Hatching", John Vlissides, p85]
- cratermoon 4y agoOh wow, thank you for the reminder. I started work consulting on a project recently where the team is using protobufs and grpc. While they aren't directly changing the generated files, they aren't keeping them appropriately gapped. I knew this problem had been around since forever, but I couldn't remember where I'd seen it covered. This is exactly the pattern I had in mind but couldn't remember. I hope that I can help the team overcome some difficulties by discussing this with them.
- morelisp 4y agoIMO this works for RPCs, ORMs, and certain event streaming architectures but not REST APIs beyond some trivial cases. As soon as you might want separate middleware processors but the same terminal handler it starts breaking down.