While I think how to direct the future development:
Mini-introduction
As a fixed rule, I start with SOA (and REST as protocol) then I work on the interfaces (and that interface is a customer of my service, and usually is a separate project). I assume my deviation is because I'm first of all a back-end developer (with poor drawing skills).
Considering:
- The BIGs are making a great effort in making quick and easy to use tools for creating interfaces. (I am referring to projects such as the bootstrap, angular, android studio, and many others); This is a relief for those who develop platforms, opens the door to many new applications for their platforms.
- MV*, JSON, Javascript are becoming a standard in building (even) complex applications; It does not matter if the interfaces are all the same, the boilerplate today have reached a level that can be considered viral.
- The increasingly common repository of modules (ex. NPM), enable even novice programmers the use and implementation of external APIs with great ease.
- fate can always kiss our products and this maybe become the new facebook (with this I am referring to the fact that a product, even if required as a standalone, it can easily attract the interest of many, and it is very likely that new interfaces are required out of the initial planning).
Questions:
- Is SOA an approach that architects (and programmers) should encourage and consider starting new design?
- Is SOA the most suitable architecture to react to unplanned expansion?