Dependency injection in GO programming language
Abstract
Currently, one of the features most sought in a software project is the flexibility since the requirements tend to change during the development process. One way to get uncoupled code is through the use of Dependency Injection (DI). This document is about the construction of a library of open code for the use of DI in projects developed with programming language Go, also known as Goland. This library was built following the principle of Inversion of Control (IoC), trying to follow the common structure found in the most popular DI containers and taking into account the limitations that the language has. The final product is an easy to use library, which allows writing code easier to maintain.
Downloads
References
E. Gamma, R. Helm, R. Johnson, and J. Vlissides (1995). Design patterns: Elements of reusable object-oriented software. Reading, Mass.: Addison-Wesley.
Gamma, E. (1995). Design patterns: Elements of reusable object-oriented software. Reading, Mass.: Addison-Wesley.
E. Arisholm (2002). Dynamic coupling measures for object oriented software. IEEE Symposium on Software Metrics, 30(8), pp. 33-34.
C. Rajaraman and M.R. Lyu (1992). Reliability and maintainability related software coupling metrics in c++ programs. In Third International Symposium on Software Reliability, North Carolina, USA, pp. 303311.
S. R. Chidamber and C. F. Kemerer (1994). A metrics suite for object oriented design. IEEE Transactions on Software Engineering, 20(6), pp. 476-493.
L. Briand, J. Daly, and J. Wust (1999). A unified framework for coupling measurement in object-oriented systems. IEEE Transactions on Software Engineering, 24(1), pp. 91-121.
M. Seemann. (2011). Dependency Injection in .Net. Recuperado de: http://www.manning.com/seemann/MEAP_Seemann_01.pdf
S. Chacon and B. Straub (2010, Agosto 2). Pro Git. Recuperado de: http://labs.kernelconcepts.de/downloads/books/Pro%20Git%20-%20Scott%20Chacon.pdf
S. Chacon and B. Straub. (2010, Agosto 2). Pro Git. Recuperado de: http://git-scm.com/book/en/v2/GitHub-Account-Setup-and-Configuration
M. Fowler. (2006, Mayo 1). Continuous Integration. Recuperado de: http://www.martinfowler.com/articles/continuousIntegration.html
R. Johnson and B. Foote. (1988, Junio/Julio). Designing Reusable Classes. Recuperado de: http://www.laputan.org/drc/drc.html
D. Cheney. (2013, Junio 30). How to write benchmarks in go. Recuperado de: http://dave.cheney.net/2013/06/30/how-to-write-benchmarks-in-go
E. Razina and D. Janzen. (2007, Noviembre 19-21). Effects of dependency injection on maintainability. Recuperado de: http://digitalcommons.calpoly.edu/cgi/viewcontent.cgi?article=1035&context=csse_fac
In order to promote the development and dissemination of research in education in Latin America, the Ibero-American Journal for Educational Research and Development (RIDE) adhered to the Budapest Open Access Initiative, which is why it is identified as a Open access publication. This means that any user can read the complete text of the articles, print them, download them, copy them, link them, distribute them and use the contents for other purposes. Creative Cummons licenses allow users to specify the rights to use an open access journal available on the Internet in such a way that users know the rules of publication. Authors who publish in this journal accept the following conditions: Authors they keep the author's rights and give the magazine the right of the first publication, with the work registered with the attribution license of Creative Commons, which allows third parties to use the published material whenever they mention the authorship of the work and the first publication in this The authors can make other independent and additional contractual agreements for the non-exclusive distribution of the version of the article published in this journal (eg, include it in an institutional repository or publish it in a book) as long as they clearly indicate that The work was published for the first time in this magazine. Authors are allowed and recommended to publish their work. low on the Internet (for example on institutional or personal pages) before and during the review and publication process, as it can lead to productive exchanges and to a greater and faster dissemination of the published work