Programateando #2. Repositor acertivo depurado

Hola de vuelta!!!.
Acá ya dejamos la lista completa del Programateando #2 con un pequeño resumen de los videos.

En esta lista hablamos del SASE que se hizo en el mes de Agosto, ultra-recomendado, más bien indispensable.
Hablando de indispensable, seguimos con repositorios, no importa si trabajás solo, también te va a servir, prometido.
Después terminamos con el testeo de fifo introduciendo assert, otra herramienta que nos va a ayudar a encontrar errores en forma automática.
Por último hacemos una sesión de depuración con gdb, si venís del mundo Arduino esto te puede ser muy útil para entender esta característica de la que adolece esa plataforma.

Esta serie nuevamente se dedicó más a testeo, metodologías y herramientas que al código de aplicación en sí mismo. En las próximas series esto se va a balancear mejor. Después de todo, si hablamos de soldadura primero preciso hablar del soldador, estaño, temperaturas...
icon_smile.gif

Hasta la próxima!!!.

Series anteriores:

 
Última edición por un moderador:
SASE 2016, proyecto CIAA, repositorio GitHub:


En este primer video hablamos del SASE 2016, el proyecto CIAA, y una pequeña motivación para usar repositorios (compartir el código!!!). Bautizamos oficialmente al proyecto de interfaz de comandos como "comandita" :unsure: (sí, a mí tampoco me convence del todo).
 
En este video nos metemos de lleno en el manejo de repositorios.

Desde eclipse creamos un repositorio local, hacemos commits, traemos (fetch) los archivos creados automáticamente creados en GitHub, y hacemos un merge.
No me gusta como quedan los archivos, así que directamente los muevo manualmente, con lo que Eclipse pierde el rastro y tengo que importar el proyecto desde repositorio local.
Luego de dejar los archivos en los lugares que queremos, y de editarlos para dejarlos como en el video de fifo test, terminamos haciendo un push al repositorio remoto.

Terminamos en condiciones de continuar programando en el próximo video. Si no les interesa este tema o ya lo conocen pueden omitirlo directamente.


El video está cargando, en una hora ya podría estar.
Se hizo largo y llevó mucho tiempo editarlo, así que este vale doble!!!! :D

Como siempre, feedback de cualquier clase bienvenido (y).
 
Retomamos el test de la Fifo, implementamos el campo de cuenta, elaboramos tests, hacemos una primitiva versión de assert.
Assert es una ayuda para el desarrollo de software, podemos usarlo en el código de nuestra aplicación y/o en nuestro código de test.

Para la aplicación nos permite bloquear el funcionamiento de la misma si detectamos que al llamar una función el estado del sistema no es el adecuado, o el parámetro de entrada es incorrecto.

En el código de test similarmente, verificamos que están las condiciones dadas para correr el test, y además evaluamos sus resultados.

Dejamos todo listo para hacer una sesión de depuración en el próximo video ;)


////////////////////////////////////////

Otro record de longitud. ¿Tendría que buscar la forma de ir haciendo código más rápido?. ¿El ritmo es muy lento, muy rápido?.

Hasta ahora casi todo fue tests, herramientas, metodología de trabajo, poco código que haga el trabajo real (código de aplicación) ni siquiera llegué a recibir una cadena por puerto uart
icon_redface.gif
. Y todavía me falta editar y subir el video con la sesión de depuración (que no es escribir código)...

Me han mencionado que sería más accesible si hubiera utilizado Arduino, pero tendría que desviarme de hacer código de aplicación para hablar de portar código entre distintas plataformas...

Me inclinaría por seguir avanzando con el código de aplicación, ya hicimos el grueso del tema de metodologías/herramientas y me gustaría mostrar eso en funcionamiento con el proyecto en avance, que lo quiero sacar de pausa. Pensaba continuar con las interrupciones con uart, y bueno, explicar volatile y concurrencia puede llevar lo suyo.

En fin, si alguien se tomó el tiempo de verlo no dejen de contarme que les pareció!!!!. Y si no lo vieron también!!! :) (aburrido, tema no interesa, el estilo...).

Saludos.
 
Hacemos una sesión de depuración/debugging y vemos que tal funciona esto de assert y código de test.

Elegí hacer esto porque suele pasar que los iniciados en Arduino no entienden a que nos referimos al decir que tal placa no tiene un depurador. Lo mismo si empezaron con mBed, o solo tienen un programador a mano sin el hardware de depuración.

Esto se contradice con el espíritu de mis otros videos, porque normalmente al escribir código de test y hacer TDD queremos evitar en lo posible hacer una sesión de depuración/debug. Con una sesión de debug no queda un registro de que pruebas se hicieron, cuales funciones, con que valores de entrada, el procedimiento.

Pero a veces no queda más remedio, el código de test solo contempla un conjunto de situaciones limitado, el mundo físico real trae nuevos factores y limitaciones. Por eso viene bien saber que tenemos esa herramienta a disposición, que quizás la utilicemos con otras herramientas físicas (osciloscopio, tester, otras placas del sistema, etc).

El código de test nos permite probar nuestras ideas, corregir errores de lógica, el código de test no testea hardware, testea nuestro código.

31:50 Para terminar - si todavía no logre convencerlos de la ventaja de usar repositorios - espero que visualizar la posibilidad de seguir cambios en forma ordenada y detallada consiga unos adeptos más. Pero todavía estamos lejos de explotarlo al 100% ;)


///////////////////////////////////////////
Ultimo video del programateando #2. Día de lluvia... ideal para poner la pava, preparar el mate, y acompañarme en la programateada :D.
 
Atrás
Arriba