Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistemas centralizados.
En estos sistemas hay un servidor que aloja el repositorio (lugar donde se
almacenan todas las versiones de un proyecto). Es el único lugar donde está
todo el código.
Los programadores tienen en local solo los archivos sobre los que están
trabajando.
El programador se conecta con el servidor para enviar los cambios realizados.
Ejemplos: Subversión, CVS, …
Control de versiones
Sistemas distribuidos.
Cada programador tiene en su máquina una copia del repositorio completo.
Al estar en local, no necesito internet ni ninguna red para poder enviar
cambios al sistema de control de versiones.
El repositorio se puede compartir con otras personas.
Ejemplo: Git, Bazaar, Mercurial,
Control de versiones. Terminología
Desplegar (Checkout). Crear una copia de trabajo del proyecto del repositorio en
el equipo local. Por defecto se obtiene la última versión, aunque también se puede
indicar una versión concreta. Con el checkout se vincula la carpeta de trabajo con
el repositorio.
Confirmar (commit o check-in). Se realiza commit cuando se confirman los cambios
realizados en local para integrarlos al repositorio.
Exportación (export). Similar al checkout pero en esta ocasión no vincula la copia
con el repositorio (no incluye los metadatos del control de versiones).
Importación (import). Es la subida de carpetas y archivos del equipo local al
repositorio.
Actualizar (update). Se realiza una actualización cuando se desea integrar los
cambios realizados en el repositorio en la copia de trabajo local (se actualiza a la
última versión).
Control de versiones. Terminología
Fusión (merge). Una fusión consiste en unir los cambios realizados sobre uno
o varios archivos en una única revisión. Se suele realizar cuando hay varias
líneas de desarrollo separadas en ramas y en alguna etapa se necesitan
fusionar los cambios hechos entre ramas.
Conflicto. Ocurre cuando dos usuarios crean una copia local (Checkout) de la
misma versión de un archivo, uno de ellos realiza cambios y envía los cambios
(commit) al repositorio y el otro no actualiza (update) estos cambios y realiza
cambios sobre el archivo e intenta enviar luego sus cambios al repositorio. Se
produce el conflicto y el sistema no es capaza de fusionar los cambios.
Resolver conflicto. La actuación del usuario para atender un conflicto entre
diferentes cambios al mismo documento.
Control de versiones. Terminología
Guía Tortoise:
https://tortoisesvn.net/docs/nightly/TortoiseSVN_es/tsvn-quick-start.html
Control de versiones. Git
Git es una herramienta de control de versiones multiplataforma muy
utilizada.
Fue desarrollada por Linus Torvalds (creador de Linux) en 2005 en código libre
para ayudar al trabajo de mantenimiento del núcleo de Linux.
Es un sistema distribuido, cada desarrollador tiene su propia copia entera del
repositorio en local, es decir todos los archivos del proyecto.
Viene instalado en las últimas versiones de Linux y Mac. En Windows hay que
descargarlo e instalarlo de http://git-scm.com
Documentación https://git-scm.com/documentation
Control de versiones. Git
La forma de trabajar con Git es:
Cada miembro del equipo de trabajo tiene una copia completa del repositorio
del software que se está desarrollando en local.
Existe un servidor con repositorio remoto que al que el equipo enviará los
cambios.
Cada desarrollador podrá enviar los cambios que tiene en local hacia el
repositorio remoto cuando quiera y ese repositorio remoto lo usarán todos los
componentes del equipo para sincronizarse y tener la versión más nueva del
código en cada momento que lo deseen.
Control de versiones. Git
Algunos comandos:
Comprobar la versión instalada: git –-version
Lista de comando más habituales: git –help
Configurar las credenciales del desarrollador: git config
Transformar un directorio en un directorio de trabajo Git: git init
Registrar en el índice los ficheros nuevos o modificados: git add
Generar un nuevo commit con lo registrado en el índice: git commit
Mostrar el estado de los ficheros de un proyecto: git status
Mostrar diferencias en los ficheros modificados respecto al commit anterior:
git diff.
Control de versiones. Git y GitHub
Github es el sitio más popular para compartir código y administrar tus
proyectos. Es como una red social en la que se comparte SW.
Se guardan repositorios remotos en la nube.
Los repositorios públicos (accesibles por cualquiera) son gratis, y muestran
toda la estructura del proyecto, todas las versiones, quien ha colaborado…. Se
pueden descargar y utilizar sin ningún coste.
Si se desea tener repositorios privados hay que pagar. Estos se comparten con
los equipos de trabajo o clientes que queramos.
Una de las mejores tarjetas de visita de las personas que se dedican a la
programación, es el portfolio de proyectos que tenga en su cuenta de GitHub.
Las personas que van a contratar a alguien normalmente miran sus proyectos
en Github.
Git es la herramienta de control de versiones y GitHub es un hosting de
repositorios Git.
Control de versiones. Git y GitHub
En GitHub puedes:
Compartir tus proyectos online.
Hacer publicidad de tus proyectos.
Compartir proyectos de forma privada con las personas que desees.
Otras personas pueden ver el historial de tu proyecto y añadir comentarios o subir
commits para mejorarlo.
Los repositorios se identifican con una URL por la que cualquier usuario que la
conozca puede acceder a él.
Algunos proyectos más importantes de software libre del mundo como Linux,
Eclipse, jQuery, etc están en GitHub.
Control de versiones. Git y GitHub
Algunos ejemplos:
https://gist.github.com/Juesar/8663416
https://github.com/ccastromar/animaciones-css
https://libro.cursohtml5desdecero.com/git_&_github.html
Control de versiones. Git y GitHub
La función principal de GitHub es compartir repositorios con terceros.
Los usuarios han de crear una cuenta con lo que adquieren un perfil.
Las operaciones principales de un usuario registrado son:
Crear un repositorio remoto para albergar un nuevo proyecto (new repository).
Copiar un repositorio guardado en GitHub a otra cuenta (fork).
Importar un repositorio identificado por su URL a GitHub (import repository).
Control de versiones. Git y GitHub
Git en Eclipse
Eclipse trae de serie un plugin denominado EGit que proporciona una interfaz
bastante completa de las operaciones con Git. Para acceder a ella, hay que ir
a la perspectiva Git (en el menú Window > Open Perspective > Other…, y
entonces seleccionar "Git").
EGit tiene una completa documentación, a la que se puede acceder yendo a
Help > Help Contents, y seleccionando el nodo "EGit Documentation" en el
listado de contenidos.
Guía: https://wiki.eclipse.org/Es:EGit/Es:User_Guide
Tutorial: subir proyecto eclipse a GitHub:
https://www.youtube.com/watch?v=8EVG7RmrP-o
Control de versiones. Git y GitHub
Alta en GitHub
Accedemos a https://github.com
Para crear una cuenta nueva hay que pulsar el enlace Sign in que nos permite
acceder a GitHub si ya tenemos una cuenta creada o crear una nueva.
Un asistente nos ayudará en la creación de la cuenta.
Control de versiones. Git y GitHub
Crear un repositorio vacío en GitHub
https://www.youtube.com/watch?v=ZFExu_kqeeo
Control de versiones. Git y GitHub
Ejemplos: Descargar contenido de un repositorio a máquina local.
http://gudh.github.io/ihover/dist/index.html
https://blueimp.github.io/Gallery/
Documentación
Por documentación se entiende el texto escrito que acompaña a los proyectos de
cualquier tipo, en nuestro caso de software.
Podemos distinguir los siguientes tipos de documentación:
Documentación de las especificaciones.
Documentación del diseño.
Documentación del código fuente.
Documentación de usuario final.
Documentación
Documentación de las especificaciones: nos asegura que tanto el
desarrollador como el cliente tienen la misma idea sobre las funcionalidades
del sistema. Las especificaciones deben describir la siguiente documentación:
Introducción. En ella se definen los fines y objetivos del SW.
Descripción de la información. Se realiza un descripción más detallada del
problema incluyendo el HW y SW necesario.
Descripción funcional. Descripción de cada función requerida por el sistema,
incluyendo diagramas.
Descripción del comportamiento. Comportamiento del SW ante sucesos internos y
externos
Criterios de validación. Documentación sobre límites de rendimiento, clases de
pruebas, respuesta esperada del SW, consideraciones especiales
Documentación
Documentación del diseño: en la fase de diseño se decide la estructura de
datos a utilizar, la forma en que se van a implementar, el contenido de las
clases, sus métodos y atributos… También se deciden las funciones, sus datos
de entrada y salida, …
Documentación
Documentación del código fuente: durante la fase de implementación es
necesario comentar convenientemente cada una de las partes que tiene el
programa.
Estos comentarios se incluyen en el código fuente con el objeto de clarificar y
explicar cada elemento del programa, se deben comentar las clases , los
métodos, las variables y en definitiva todo elemento que se considere
importante.
Documentar el código fuente es necesario para explicar claramente lo que
hace el programa, de esta manera TODO el equipo de desarrollo sabrá lo
que se está haciendo y por qué. De esta forma es mucho más fácil:
Reparar errores: todos los programas tienen errores y descubrirlos sólo es cuestión
de tiempo y de que el programa tenga éxito y se utilice frecuentemente.
Añadir nuevas funcionalidades: todos los programas sufren modificaciones a lo
largo de su vida, al menos los que tienen éxito.
Documentación
Documentación de usuario final: es la documentación que se entrega al
usuario tanto especializado como no especializado. Se describe cómo utilizar
las aplicaciones del proyecto
Documentación
Documentación del código fuente
Para documentar proyectos existen muchas herramientas, normalmente cada
lenguaje dispone de su propia herramienta como:
PHPDoc y phpDocumentator para php,
Javadoc para Java o
JSDoc, el Java doc para JavaScript.
En esta unidad nos ocuparemos de Javadoc, para documentar programas
Java.
Documentación
Uso de JavaDoc en Eclipse
JavaDoc es una utilidad para extraer y generar documentación directamente
del código en formato HTML.
Para que la documentación sea útil debemos escribir los comentarios del
código de acuerdo a las recomendaciones de Javadoc. La documentación y el
código se van a incluir dentro del mismo fichero.
Documentación
Uso de JavaDoc en Eclipse
Los comentarios, son anotaciones en el código que el compilador ignora pero son
muy útiles para los programadores.
Existen en los lenguajes de programación desde el principio. Desde hace mucho
tiempo se observó que en realidad los comentarios se usaban para dos propósitos
diferentes:
Para explicar el propósito de sentencias o grupos de sentencias:
Comentarios de línea: comienzan con los caracteres “//” y terminan con la línea.
Comentarios tipo C: comienzan con los caracteres “/*”, y terminan con los
caracteres “*/”. Pueden agrupar varias líneas.
Comentarios explicando qué hace una "pieza" cerrada de código.
Comentarios de documentación Javadoc: estos comentarios se colocan entre los
delimitadores /**...*/ agrupan varias líneas y cada línea irá precedida por un *, y lo
más importante es que estos deben colocarse antes de la declaración de una clase,
un campo, un método o un constructor.
Documentación
Uso de JavaDoc en Eclipse
Dentro de estos delimitadores se podrá escribir etiquetas HTML. Los
comentarios Javadoc están formados por dos partes: una descripción, seguida
de un bloque de tags.
El programa de generación de documentación “JavaDoc” ignorará toda la
información de un fichero de código excepto la que se encuentre entre los
delimitadores /** …*/
Documentación
Uso de JavaDoc en Eclipse
Ejemplo de documentación:
descripción
tags
Documentación
Uso de JavaDoc en Eclipse
Ejemplo:
Documentación
Uso de JavaDoc en Eclipse. Etiquetas
Se pueden usar tags (etiquetas) para documentar ciertos aspectos concretos
como la versión de la clase, el autor, los parámetros utilizados o los valores
devueltos. Las etiquetas de Javadoc van precedidas por @. Las más usadas son:
ETIQUETA DESCRIPCIÓN
@autor Autor de la clase. Sólo para las clases.
@version Versión de la clase. Sólo para las clases.
@see Referencia a otra clase. Ej. @see cadena
@param Descripción de parámetro. Una etiqueta por cada parámetro
@return Descripción de lo que devuelve. Sólo si no es void
@throws Descripción de la excepción que puede propagar
@deprecated Marca el método como obsoleto.
@since Indica el nº de versión desde la que existe el método.