El 02/10/16 a las 14:12, Pablo Rodriguez escribió:
Buenos días
En las cañas posteriores a la reunión hablabamos de las dependencias
de los módulos, y que a veces era un criterio muy importante para
elegir un módulo u otro. Es decir, elegiamos un módulo porque no tenía
dependencias frente a otros que sí tenían.
La carga de la complejidad informática que resuelve un problema es casi
la misma -el número de líneas que necesitamos para resolver un problema
es casi el mismo si usamos muchas o pocas dependencias: no hay atajos en
la resolución del problema-. Pero solemos pensar que si usamos un módulo
con pocas dependencias reducimos otra complejidad: la de la
administración de los módulos de terceros. ¿Realmente es un problema, si
estamos seguros que esos módulos funcionan en nuestro entorno?
Otro tema que salió por parte de Roberto es que tenían hecho una
herramienta que analizaba un directorio cualquiera para sacar las
dependencias del código Perl encontrado. ¿Era así, verdad?
En CPAN encontré Module::Dependency
<https://metacpan.org/release/Module-Dependency>, más en concreto,
Module::Dependency::Indexer, que parece que hace algo parecido, pero no
lo he probado. Y posiblemente habrá más.
Comenté también que había un módulo que permitía cargar un módulo en
CPAN en tiempo real:
CPAN::AutoINC <https://metacpan.org/pod/CPAN::AutoINC> - Download and
install CPAN modules upon first use
Mejor dicho: detecta que un programa necesita un módulo que no está en
el sistema, y en ese momento lo baja, instala, y el programa continúa en
ese punto.
A mi me gusta tener funcionalidad reutilizable, es decir, partiendo de
una serie de componentes construir sobre ellos. Personalmente creo que
tiene más ventajas que inconvenientes, y no tengo ningún problema en
utilizar módulos con muchas dependencias. Si además los autores de los
módulos se adhieren a alguna convención, por ejemplo:
https://metacpan.org/pod/SemVer mejor todavía.
¿Qué opinais?
Por lo que he visto en algunos sitios, a medida de que dependes de más
módulos, se te hace imprescindible usar un gestor de módulos, como Pinto
y Carton, y no depender exclusivamente de CPAN.
Un ejemplo: Una vez usé el módulo *Date::Set*, para hacer operaciones de
conjuntos con periodos de tiempo (en concreto, "unir" conjuntos de
meses). Pues bien, un día ese módulo desapareció de CPAN: el autor lo
renombró a *DateTime::Set*. Eso podría provocar un problema a la hora de
hacer una reinstalación, si el administrador no se da cuenta del cambio.
Este artículo es un buen resumen de las herramientas actuales con las
que contamos en desarrollo Perl, incluida la gestión de módulos propios
y de terceros:
https://engineering.semantics3.com/2016/06/15/a-perl-toolchain-for-building-micro-services-at-scale/
--
JF^D
_______________________________________________
Madrid-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/madrid-pm