Control De Versiones Flashcards
En qué consiste Control de versiones
Software con base de datos para que se guarde de manera unificada el código de aplicaciones
Control de versiones centralizados
Los Sistemas Centralizados: todo se sube a un sólo servidor.
- CVS
- Subversion (SVN)
- TortoiseSVN (Cliente)
- TFS/SourceSafe
Control de versiones distribuidos
- Git
- Mercurial
- Bazaar
- Dares
- BitKeeper
Qué es GIT
Es un sistema distribuido (2 repos) de control de versiones, creado por Linus Torvalds para el desarrollo del kernel de Linux.
- Sistema de ramas y mezclas
- Compatible con HTTPs y SSH
- Uso de criptografía SHA-1 sobre objects
En qué casos se crean ramas en GIT
Fix y Features, por ejemplo (cosas complejas)
En qué consiste la rama releases
Es una rama donde se encuentran las versiones finales de tu código (la foto de tu rama master, rama features o fix que pueden haber, etc)
Protocolos de comunicaciones para trabajar con GIT
Local +
- HTTPs
- SSH
- Git Protocol
Qué peculiaridad tiene GIT en cuanto a sus objetos
A todos los objetos se les hace un HASH: SHA-1
Objetos: tree (árbol de directorios), blood (fichero), commit (foto), tag (etiqueta foto del repositorio)
Qué dos modalidades hay en GIT
Como se llama la rama principal en SVN
Trunk
Como se llama la rama principal en GIT
Master y últimamente se usa más Main
Comando para crear un directorio oculto .git
git init
Qué es el Staging Area en GIT
Es un área temporal, al que, enviamos desde el Working Tree, ficheros, de manera temporal, que se pueden consolidar después enviándolos al Local Repository, haciendo que esos cambios sean firmes.
Comando para preguntar estado del repositorio en GIT
git status
Si indica qué los ficheros que ve están sin seguimiento, es porque están en workspace. Cuando esté en staging (cambios para ser confirmados) o en local repository (nada para hacer commit)
Comando para mandar al staging los fichero desde workspace
git add/mv/rm .
Comando para mandar los ficheros del staging al local repository (consolidar fichero)
git commit -m “mensaje”
Comando para pasar ficheros de workspace a local repository (sin pasar por staging)
git commit -a
Para excluir ficheros con extensión .doc, por ejemplo
Se crea un fichero llamado .gitignore:
vi .gitignore
Dentro ponemos .doc
No aparecerá el .doc para ser enviado al staging, pero sí el .gitignore
Comando para ver el historial que muestra los commits con sus códigos hash
git log
Trabajar con ramas a nivel de comandos
- crear la rama primero y moverte
git branch (crear rama) nombre_rama + git checkout (movernos a otra rama) nombre_rama - crear la rama y moverte, todo en uno
git checkout -b nombre_rama
Comando para ver/crear una etiquetas en GIT
git tag
Comando que modifica la estructura de la historia de los commit
Comando peligroso que Mercurial eliminó
git rebase
Comando para fusionar ramas
git merge
Comandos para deshacer en GIT
- git reset –hard : del local repository a la basura (sin pasar por workspace)
- git reset –soft : del local repository al staging
- git reset –mixed : del local repository al workspace
Repo remoto
git clone http://github.com…
- Mismos comando de antes (git add/commit/branch/tag/merge/…)
- git push (subir commits a GitHub)
- git pull (bajarte commit de otros developers que hayan subido al GitHub)
- git fetch (bajarte commit de otros developers pero no te actualiza tu Working Area)
Cuales son los flujos colaborativos de GitHub
- Fork
- Pull Request
Herramientas de sistemas de integración continua
- Jenkins
- Travis CI
- Circle CI
- TeamCity
- Code Ship
- Bamboo
Plataformas de despliegue
- Heroku (PaaS)
- Digital Ocean (IaaS)
- AWS
etc
Plataformas de despliegue
- Heroku
- Digital Ocean (IaaS)
- AWS
etc
Estructura de Métrica 3 (Metodologías de desarrollo)
Define una serie de procesos y una serie de intefaces
- Procesos : EVS (evaluación), ASI (análisis), DSI (diseño), CSI (construcción), IAS (implantación)
- Interfaces : Calidad, Gestión Proxy, Gestión Configuración, Seguridad (procesos transversales que conectan con los procesos de arriba)
Metodología de desarrollo: SCRUM (roles)
- Roles
Cerdo
Product Owner (representa al cliente=manda)
Scrum master (facilitador)
Scrum Team (desarrolladores)
Gallina
Stakeholder (participan)
Metodología ágil de desarrollo: XP (Extreme Programming) Roles
- Programador
- Cliente
- Encargado de pruebas (tester)
- Encargado de seguimiento (tracker)
- Entrenador (coach)
- Consultor
- Gestor (big boss)
Metodología de desarrollo: XP (Extreme Programming) Prácticas
- Pruebas unitarias
- Integración continua
Metodología de desarrollo: XP (Extreme Programming) técnica para especificar requisitos
Técnica de HISTORIAS DE USUARIO (algo parecido a Casos de uso)
Historias de usuario y épicas tienen que ver con la manera de estructurar requisitos funcionales, parejo a los casos de uso (theme e initiative podrían ser también)
En qué consiste Sonar-Qube
Herramienta de análisis de código estático.
En qué consiste Junit
Herramienta de test unitarios
En qué consiste JBOSS, PaaS, Operliverty, etc
Un runtime
Dentro de las tareas de Pipeline, en Extreme Programming, que nos encontremos
- CD (despliegue continuo) : hasta desploy (5 paso)
- CI (integración continua) : hasta los test (4 paso)
Metodología de desarrollo (Pruebas)
Clasificación A
- Caja blanca (conocemos detalles del algoritmo)
- Caja negra (solo nos interesan las entradas y las salidas)
Metodología de desarrollo (Pruebas)
Clasificación B
- Funcionales : unitarias (probar cada componente aislado), integración (prueba sin estar aislado), aceptación (orientadas a usuario final), regresión (mínimo de pruebas para garantizar que el proyecto va bien), alpha (aceptación con el usuario con el desarrollador como observador), beta (por el usuario con el en su entorno de trabajo y sin observadores)
- No Funcionales : compatibilidad, rendimiento, seguridad, usabilidad
Metodología de desarrollo (Pruebas)
Herramientas funcionales
- Selenium
- SOAP-VI
- Watir (ruby)
- WatiN (.net)
Metodología de desarrollo (Pruebas)
Herramientas unitarias
- JUNIT
- NUnit
- TestNG
Metodología de desarrollo (Pruebas)
Herramientas carga
- JMeter
- HP Load Runner
- Load UI
Metodología de desarrollo (Pruebas)
Herramientas análisis código estático
- PMD
- Checkstyle
- FindBugs
Métrica 3 (pruebas no funcionales)
Prueba de rendimiento : determinar tiempos de respuesta
Prueba volumen : cuando trabajamos con grandes volúmenes simulando cargas de trabajo (sin buscar el umbral límite)
Prueba sobrecarga : cuando estamos en el umbral de los recursos (el límite)
Metodología de desarrollo (Pruebas)
Herramientas aceptación
Selenium
Qué es Gherking
Gherking o pepinillo es un lenguaje que genera por debajo pruebas. Lenguaje para definir escenarios
Lo procesa Cucumber y se llevan a cabo las pruebas