Using packages (gems, eggs, etc.) to create decoupled architectures

Posted by Juan Carlos Coto on Programmers See other posts from Programmers or by Juan Carlos Coto
Published on 2014-05-27T18:12:40Z Indexed on 2014/05/28 4:00 UTC
Read the original article Hit count: 184

The main issue

Seeing the good support most modern programming platforms have for package management (think gem, npm, pip, etc), does it make sense to design an application or system be composed of internally developed packages, so as to promote and create a loosely coupled architecture?

Example

An example of this would be to create packages for database access, as well as for authentication and other components of the system. These, of course, use external packages as well. Then, your system imports and uses these packages - instead of including their code within its own code base.

Considerations

To me, it seems that this would promote code decoupling and help maintainability, almost in a Web-based-vs.-desktop-application kind of way (updates are applied almost automatically, single code base for single functionality, etc.).

Does this seem like a rational and sane design concept? Is this actually used as a standard way of structuring applications today?

Thanks very much!

© Programmers or respective owner

Related posts about design

Related posts about design-patterns