From e81137474f102d71fe0b25307bcf88810c1b2d43 Mon Sep 17 00:00:00 2001 From: Ekaitz Zarraga Date: Wed, 4 Mar 2020 13:41:02 +0100 Subject: New arrangement for multilanguage and metadata support --- src/A_devtools.md | 90 ------------------------------------------------------- 1 file changed, 90 deletions(-) delete mode 100644 src/A_devtools.md (limited to 'src/A_devtools.md') diff --git a/src/A_devtools.md b/src/A_devtools.md deleted file mode 100644 index e856373..0000000 --- a/src/A_devtools.md +++ /dev/null @@ -1,90 +0,0 @@ -# Anexo I: Herramientas de desarrollo {-} - -IDLE es una herramienta de desarrollo muy limitada, suficiente para seguir los -ejemplos que se recogen en este documento pero insuficiente para desarrollar -aplicaciones avanzadas. - -## Desarrollo de código fuente - -Existen gran cantidad de entornos de desarrollo (IDE) avanzados y editores que -pueden ser recomendables, aunque es cuestión de gusto personal decantarse por -uno de ellos o por otro. - -La diferencia entre un entorno de desarrollo integrado y un editor es la -siguiente: los entornos de desarrollo cumplen varias funciones adicionales, -como en el caso de IDLE, dar acceso a una REPL de python y la posibilidad de -analizar las variables en memoria. Los editores únicamente sirven para escribir -el código, aunque en muchos casos la línea que separa ambos conceptos es -bastante borrosa: existen editores con funcionalidades avanzadas y entornos -integrados muy sencillos que parecen un simple editor. Resumiendo, los entornos -integrados de desarrollo (IDE *integrated development environment*) tienen -editores entre sus herramientas. - -### Entornos de desarrollo integrados - -Quien no utiliza entornos de desarrollo avanzados (una cuestión de gusto -personal), por lo que se le hace difícil recomendar alguno en particular. Sin -embargo, el wiki de python recoge una larguísima lista de editores y entornos -de desarrollo integrado interesantes[^ides]. - -[^ides]: - -En el entorno del análisis de datos, la distribución *Anaconda* es muy usada. -Anaconda es más que un entorno de desarrollo integrado. Incluye un entorno de -desarrollo llamado Spyder, una shell propia, un gestor de paquetes y -dependencias propio llamado Conda, posibilidad de integración con el lenguaje -de programación R y gran cantidad de paquetes instalados por defecto. - -En otros entornos PyCharm es bastante común, aunque también son muy comunes los -entornos de desarrollo integrados pensados para otros lenguajes que han -comenzado a soportar python posteriormente como KDevelop, NetBeans y otros. - -Te recomiendo que, si usas un entorno de desarrollo integrado en otros -lenguajes, investigues si soporta python. De este modo no tendrás que aprender -una nueva herramienta. Al ser un lenguaje tan común, probablemente lo soporte. -Si no lo soporta prueba con un IDE que siga una filosofía similar al que uses. - -### Editores de código - -Quien te escribe usa Vim, un editor de texto muy antiguo con muchas -características que le hacen ser un editor muy eficiente. Existe gran variedad -de editores de código que recomendar: Emacs, gEdit, Kate, Sublime, Atom... Todo -dependerá de tus gustos personales. - -La ventaja principal de los editores de código es que conociendo uno en -profundidad es más que suficiente para cualquier lenguaje, ya que están -diseñados únicamente para escribir el contenido de tus programas, dejando las -peculiaridades de ejecución de cada lenguaje a parte. Esto les aporta una -ligereza difícilmente alcanzable por los IDEs. - -Sin embargo, esta virtud también es su mayor defecto. Al no integrar ninguna -herramienta adicional, es necesario trabajar todo manualmente. En el caso de -python, te fuerzan a usar una shell independiente y a interactuar con ella de -forma manual. Al principio puede ser tedioso, pero aprender a gestionar los -detalles manualmente es interesante ya que te permite obtener un gran -conocimiento del sistema y lenguaje en el que trabajas. - -## Herramientas de depuración - -El propio diseño de python permite que sea fácilmente depurable. La REPL -facilita que se pruebe la aplicación a medida que se va desarrollando, función -a función, para asegurar que su comportamiento es el correcto. Además, la -capacidad introspectiva del lenguaje es una buena herramienta, en conjunción -con la REPL para comprobar el comportamiento. - -Además de estas características, la instalación de python viene acompañada del -programa `pdb` (*Python Debugger*), un depurador de código similar al conocido -[GNU-Debugger](https://en.wikipedia.org/wiki/GNU_Debugger). Existen otros -depuradores de código más amigables que este, pero la realidad es que no suelen -ser necesarios. - -## Testeo de aplicaciones - -Hoy en día el testeo de software es muy común, en parte gracias al desarrollo -guiado por pruebas, o TDD (*Test Driven Development*). - -La librería estándar de python incluye un módulo para pruebas unitarias llamado -`unittest` en que la librería Nose, muy conocida y usada, se basa para -facilitar el trabajo de modo similar a lo que ocurre con Requests y `urllib`. - -Por supuesto, existen otras alternativas, pero estas son las principales. -- cgit v1.2.3