domingo, 12 de agosto de 2012

Gestión de configuración con Github para Windows en las aulas de clase

"Advertencia para antes de leer este post: Si usted es experto o amante de Git, evítese molestias, este post va dirigido a proponer una actividad en el aula de clase y a un público que recién empieza en el ámbito de la programación e ingeniería de software. Además no pretende ser un instructivo de Git, Github o Bitbucket, solo una propuesta de una posible buena práctica. La herramienta es solo una elección que hace esta actividad menos compleja en el aula de clase."

Ultimamente tratando de entrar menos de palabra y más de acción con pequeños aportes al conocimiento libre y código abierto, he empezado a usar Github y Bitbucket por consejo de mis buenos amigos @hernandgr y @orendon

Este post se debe a que la interfaz y herramientas disponibles para Github me enamoró (con sus ojos pueden ver este blog y entender por qué) y solo es registrarse para verlo


Soy de las que piensa, que a un programador pro o de los que les gusta todo a bajo nivel y sentirse lo máximo, les encantan las cosas de consolas y tener que aprenderse mil comandos para poder interactuar con las herramientas.

Yo no manejo ni amor ni odio por el tema, pero si puedo ser absolutamente productiva dando un par de clicks y llegando al mismo resultado, me parece bueno en variado ámbito. Sin embargo el tema en este post es plantear una actividad que puede llevar a acercar a los programadores Junior no solo a tener la costumbre de compartir su código, si no de aprender sobre buenas prácticas como lo es la gestión de la configuración.

"Se denomina Gestión de la Configuración al conjunto de procesos destinados a asegurar la calidad de todo producto obtenido durante cualquiera de las etapas del desarrollo de un Sistema de Información (S.I.), a través del estricto control de los cambios realizados sobre los mismos y de la disponibilidad constante de una versión estable de cada elemento para toda persona involucrada en el citado desarrollo. 

Estos dos elementos (control de cambios y control de versiones de todos los elementos del S.I.) facilitan también el mantenimiento de los sistemas al proporcionar una imagen detallada del sistema en cada etapa del desarrollo. La gestión de la configuración se realiza durante todas las fases del desarrollo de un sistema de información, incluyendo el mantenimiento y control de cambios, una vez realizada la puesta en producción." Wikipedia

Hay buenas soluciones que nacen de problemas, y este semestre me encontre con uno en mi salón de clase, ese de como hacer que la gente deje las excusas de yo si envíe la tarea y demás, y buscando como hacerlo recordé que Github tiene un tool específico para Windows y muy al modo de Microsoft es bien fácil de manejar y se vé sencillamente simple como para llevarlo al salón de clase



En este post no hablaré de nada específico, es de hecho más una invitación a los programadores a aprender a usar herramientas de este tipo y aprender sobre practicas profesionales como para hacer software, como lo es la gestión de la configuración, además de un llamado a los docentes para que llevemos herramientas y prácticas actualizadas al salón de clase.

Para quienes quieren hacer gestión de configuración de sus proyectos sin compartir, la opción es Bitbucket, el cual puede accederse a travéz de Github para Windows siempre que el repositorio soporte Git (Gracias Rafael), la que uso con tutoria de @hernandgr no son tan amigables, pero son muy buenas también, y son Mercurial y Tortoise HG y VisualHG como plugin para Visual Studio.

Les comparto la guía que hice para mis estudiantes y para algún profesor que quiera intentarlo, esto es para mi el primer intento, ya les contaré las lecciones aprendidas.

Espero les sea útil, hasta la próxima

Hasta pronto.
Sorey

3 comentarios:

Johan Naranjo dijo...

Hola Sorey, yo soy de los que apoyo el uso de herramientas libres cuando son útiles y prácticas y últimamente me ha picado el bicho de implementar un sistema de versionado para mis proyectos.

Por ahora lo que utilizo es visualsvn+tortoisesvn que es lo más facil y rápido de utilizar y al no ser proyectos distribuidos (foreveralone developer) suple mis necesidades.

Estoy empezando a utilizar ubuntu y ya me encontré con el inconveniente de no encontrar una herramienta como visualsvn para administrar los repositorios y sus accesos, que si hay tutoriales pero aunque no me asusta la consola creo que me restaría mucha productividad el consultar los comandos cada que quisiera hacer alguna operación.

En resumidas cuentas buen post, he querido mirar la parte de GIT pero creo que su complejidad se extiende mas allá de mis necesidades, al menos las actuales.

Carlos Adolfo Ortiz Q dijo...

Muy bien.

Solo tengo una observación. GitHub está basado en Git que es el que permite realizar esta gestión de la configuración y como te puedes dar cuenta es un sistema de manejo de versiones concurrente (DCVS), lo cual quiere decir que cualquiera puede ser servidor y cualquiera ser cliente. Pero para facilitar el proceso, se crea un nodo central o servidor central que ayude a conectar los miles de repositorios. En otras palabras, uno puede crear un respositorio local como lo indicas en las diapositivas y en el mismo computador crear un respositorio Remoto.

Otro aspecto a tener en cuenta es que la comunicación se hace mediante SSH.

En la diapositiva mencionas Check in y Check out, sugiero que la revises en términos de Git, ya que alli no se habla de esto, sino de git push y git pull, y de vez en cuando si es bueno saber los comandos de línea, lo cual es igual discutible.

Conviene aclarar además que lo que guarda git es todo el archivo y las lineas de versiones las guarda en el repositorio local.

Falta o quizas no lo vi es la explicación de como se hace commit, push y pull.

Gracias.

Sorey García dijo...

Saludos Carlos.

Se tomarán algunas de tus observaciones, algunas otras no, debido a que esta es solo una propuesta, y lo que se pretende transmitir es el concepto, que de por si es más valioso, no las acciones en determinada herramienta.

La herramienta solo hace que el proceso sea menos complejo en el salón de clase.

Por otro lado, solo te quiero recordar el tipo de público al que se dirigen mis publicaciones.

Como último, averiguaré el tema de las líneas BASE, ya que esto es indispensable para la gestión de la configuración tema sobre el que obviamente están basados estos servicios, y sería bastante raro que no quedaran en línea.

Gracias, por tus siempre críticos aportes.