Modularity against complexity
Modularity against complexity
When is software too complex? If you are evaluation software, a key point is complexity. If a software is complex and bad documented, it is hard to maintain. It gets worse if new developers should learn to extend this software. At a point, they will start guessing about code rather than knowing how it works. In the long run, this results in workaround solutions and an even more complex code that is at some point unmaintainable.
Magento 2 complexity
Magento is by far the most complex open source ecommerce system out there, but it does a good job. By splitting the source code into a core part and a modular construction, it is never too complex to maintain or to further develop. There are developers who are responsible in developing core Magento – this is what you know as Magento version 2.2, 2.3 and so on. They implement core features or change how data is processed during runtime. On the other hand, there are developers who create modules that hold business logic and creates input and output. The software itself, or its individual modules, are never too complex. The complexity of an Magento online shop is the sum of its modules and settings.
Magento 2 splits up its functionality into multiple modules. Each module has an individual usage for example newsletter, orders or customers. A shop needs at least a minimal set to work – your Magento 2 setup. You may turn off modules you do not need, but that only works for some. You are able to get more functionality by installing more special modules or implementing it for your own. In sum, each Magento 2 shop is a different sum of modules.
Conclusion
Modularity is a modern approach in keeping things as simple as possible by providing a complex software solution. Software of this size can never be implemented nor maintained by one person, so it is the only possibility to split responsibilities.
What do you think about Magentos modular approach? Are there other shop systems that do things better with different code structures?