Inyección de Dependencias en el Lenguaje de Programación Go
Resumen
Actualmente, una de las características más buscadas en un proyecto de software es la flexibilidad debido a que los requerimientos tienden a cambiar durante el proceso de desarrollo. Una manera de obtener código desacoplado es mediante el uso de Inyección de Dependencias (DI por sus siglas en inglés). Este documento trata sobre la construcción de una librería de código abierto para el uso de DI en proyectos desarrollados con el lenguaje de programación Go, también conocido como Golang. Esta librería fue construida siguiendo el principio de Inversión de Control (IoC por sus siglas en inglés), tratando de seguir con la estructura común encontrada en los contenedores de DI más populares y teniendo en cuenta las limitaciones que el lenguaje posee. El producto final es una librería fácil de usar, que permite construir el código más fácil de mantener.
Descargas
Citas
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
Con el propósito de promover el desarrollo y divulgación de la investigación en educación en América Latina, en La Revista Iberoamericana para la Investigación y el Desarrollo Educativo (RIDE) se adhirió a la Iniciativa de Acceso Abierto de Budapest, por lo que se identifica como una publicación de acceso abierto. Esto significa que cualquier usuario puede leer el texto completo de los artículos, imprimirlos, descargarlos, copiarlos, enlazarlos, distribuirlos y usar los contenidos para otros fines. Las licencias Creative Cummons, permiten especificar los derechos de uso de una revista de acceso abierto disponible en Internet de tal manera que los usuarios conocen las reglas de publicación.
Los autores/as que publiquen en esta revista aceptan las siguientes condiciones:
Los autores/as conservan los derechos de autor y ceden a la revista el derecho de la primera publicación, con el trabajo registrado con la licencia de atribución de Creative Commons, que permite a terceros utilizar lo publicado siempre que mencionen la autoría del trabajo y a la primera publicación en esta revista.
Los autores/as pueden realizar otros acuerdos contractuales independientes y adicionales para la distribución no exclusiva de la versión del artículo publicado en esta revista (p. ej., incluirlo en un repositorio institucional o publicarlo en un libro) siempre que indiquen claramente que el trabajo se publicó por primera vez en esta revista.
Se permite y recomienda a los autores/as a publicar su trabajo en Internet (por ejemplo en páginas institucionales o personales) antes y durante el proceso de revisión y publicación, ya que puede conducir a intercambios productivos y a una mayor y más rápida difusión del trabajo publicado