Template de proyectos

2018/08/23

¿Porqué usar un template de proyectos?

  1. Para acelerar el inicio de un proyecto.
  2. Para crear un proyecto con los componentes que sean deseables sin tener que invertir tiempo en customizar la construcción del paquete y las elecciones hechas:
    • Programa para construir el paquete
    • Programa para correr los distintos tipos de tests
    • Customización para integración continua y deployment continuo

¿Que programa usar?

Recordando la documentación de pyramid referente a la creación de proyectos, empiezo la búsqueda de opciones por cookiecutter.

La sección similar projects en el sitio web da una idea de alternativas. También el sitio alternativeto: alternativas a cookiecutter, alternativas a yeoman aunque la mayoría son para realizar desarrollos web, las descarto por estar interesado en proyectos genéricos. Por interes (o completitud parcial) busqué algún equivalente en perl sin encontrar algo significativo (en unos 20 minutos de busqueda bastante aleatoria).

Al final elegí entre las siguientes alternativas:

Comparación entre cookiecutter (CK) y yeoman (YM)

A continuación algunas comparaciones entre ellos luego de leer sus respectivas páginas de documentación (docs cookiecutter, docs yeoman (relativa a creación de generadores))

Lenguaje

Conceptos

Impresiones:

  1. No es agradable el uso de expresiones de jinja2 en nombres de archivo que utiliza CK.
  2. Se nota que los conceptos manejados por YM son más potentes y genéricos.
  3. CK solo es útil para la creación de un proyecto.

Disponibilidad de templates/generadores

Disponibilidad del programa en debian

Impresión:

Ejemplos en documentación para creación de templates/generadores

Impresión:

Conclusiones

Ya que:

voy a optar por comenzar a utilizar cookiecutter para la creación de futuros proyectos.

La opción de yeoman quedará para cuando requiera crear un template más complejo de lo que pueda manejar con CK o donde realmente requiera el uso de scaffolding para crear/modificar archivos tal que amerite aprender sobre yeoman.