Dependency injection in GO programming language

  • Carlos Eduardo Gutiérrez Morales Instituto Tecnológico de Colima
  • Jesús Alberto Verduzco Ramírez Instituto Tecnológico de Colima
  • Nicandro Farías Mendoza Instituto Tecnológico de Colima

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

Download data is not yet available.

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. 303­311.

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

Published
2015-06-24
How to Cite
Gutiérrez Morales, C. E., Verduzco Ramírez, J. A., & Farías Mendoza, N. (2015). Dependency injection in GO programming language. RIDE Revista Iberoamericana Para La Investigación Y El Desarrollo Educativo, 5(10), 316 - 334. Retrieved from http://ride.org.mx/index.php/RIDE/article/view/115
Section
Education And Educational Technology