Envíanos tu consulta
Términos y condiciones *
*Si no puedes asistir en directo de facilitaremos un enlace para verlo en diferido
logoImagina
iconoCurso

Curso completo de Buenas Prácticas en Desarrollo de Software

DISPONIBLE EN MODALIDAD:
Aprende las mejores prácticas para desarrollar software de forma correcta y eficaz. Explora conceptos como patrones de diseño, principios SOLID, metodologías ágiles o código limpio.
iconClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClient
Formación en Buenas Prácticas en Desarrollo de Software bonificable para empresas

¿A quién va dirigido?

Todos aquellos desarrolladores que quieran asentar unas buenas bases en cuanto a buenas prácticas para sus desarrollos

Objetivos

  • Comprender las fases por las que pasa un desarrollo software
  • Gestionar las versiones de SW con GIT y aprender buenas prácticas en la gestión de repositorios y ramas con Gitflow
  • Ser capaces de identificar que metodología se adapta más a nuestras necesidades
  • Conocer y asimiliar conceptos que nos ayuden a generar un código de mayor calidad

¿Qué vas a aprender?

Aprende las mejores prácticas para desarrollar software de forma correcta y eficaz. Explora conceptos como patrones de diseño, principios SOLID, metodologías ágiles o código limpio.

Requisitos

  • Es recomendable tener experiencia previa en algún lenguaje de programación
  • Son necesarios permisos de administrador en el equipo en el que se realice la formación

Temario del curso

tema 1

Entendiendo el ciclo de vida del desarrollo de software

  • ¿Por qué es importante?
  • Identificando las diferentes fases de un desarrollo
  • Planificación
  • Análisis
  • Diseño
  • Implementación
  • Pruebas
  • Instalación o despliegue
  • Mantenimiento
tema 2

Modelos de ciclos de vida del software y metodologías Ágiles

  • ¿Qué son estos modelos?
  • Cascada
  • Repetitivo
  • Espiral
  • En V
  • Big Bang
  • ¿Qué modelo debería usar?
  • Las metodologías ágiles
  • El manifiesto ágil
  • Scrum
  • Kanban
  • eXtreme Programming
  • Desarrollo Ligero (Lean)
  • Peer review
tema 3

Introducción al control de versiones con GIT

  • ¿Qué es el control de versiones?
  • Sistemas de control de versiones locales
  • Sistemas de control de versiones centralizados
  • Sistemas de control de versiones distribuidos
  • Introducción a Git como SCV
  • Gitlab
  • Pautas a seguir para aplicar el mantenimiento sobre el proyecto
tema 4

Instalación

  • Introducción
  • Instalación
  • Configuración
tema 5

Repositorio local en GIT

  • Introducción
  • Configuración de git
  • Gestión de usuarios y permisos de acceso
  • Checkout inicial de un repositorio
  • Obteniendo un repositorio
  • Herramientas visuales para trabajar en Eclipse
  • Herramientas visuales para trabajar en IntelliJ
  • Herramientas visuales para trabajar en Visual Studio Code
  • Fork como aplicación recomendada y otras alternativas
  • Guardando cambios en el repositorio
  • Ver el historial de confirmaciones
  • Instrucciones básicas
  • Ciclo de vida de un proyecto
  • Etiquetas (tagging)
  • Ver historial de confirmaciones
  • Deshacer cambios
  • Branches
  • Merge
  • Update‐>change‐>review‐>commit
  • Rebase
  • Stash
  • Cherry Pick
  • Forking workflow
  • Protocolo 2Phase commit
  • GitHooks
tema 6

Repositorios remotos de GIT

  • Introducción
  • Crear cuenta en Gitlab
  • Crear repositorio remoto
  • Explorar repositorio
  • Clonar repositorios remotos
  • Subiendo un proyecto existente al repositorio
  • Remote
  • Remote/fetch
  • Fetch
  • Fetch/pull
  • Push
  • Archivos GitIgnore
tema 7

Gestión de Conflictos en GIT

  • Cómo se generan los conflictos
  • Resolver los conflictos
  • Recuperar versiones anteriores
  • Revisiones e historia de documentos
tema 8

Gitflow

  • ¿Qué es el desarrollo paralelo?
  • ¿Qué es Gitflow
  • Instalación
  • Estrategias de branching automáticas con GitFlow
  • Comandos esenciales
tema 9

Testing y TDD

  • Introducción al testing unitario y de integración
  • El concepto del Coverage y la importancia de éste para garantizar la robustez calidad
  • Introducción a la metodología TDD
  • Frameworks disponibles y sintaxis empleada
  • ¿Qué se debe probar?
  • Creación de tests unitarios
  • Empleando Mocks y Stubs para dependencias del SUT
  • Introducción a BDD
  • Identificación de features y escenarios
  • Sintaxis de Gherkin
  • Frameworks y herramientas disponibles
  • Automatización CI/CD en Gitlab
tema 10

Principios SOLID

  • ¿Qué son?
  • Principio de la responsabilidad única
  • Principio de abierto/cerrado
  • Principio de la substitución de Liskov
  • Principio de segregación de interfaces
  • Principio de inversión de la dependencia
tema 11

Refactoring

  • ¿En qué consiste el refactoring?
  • Beneficios del refactoring
  • Nombrado
  • Funciones puras
  • Especialización de funciones
  • Otras buenas prácticas
  • Ejemplos prácticos
tema 12

Patrones creacionales y estructurales y de comportamiento

  • Abstract Factory
  • Builder
  • Factory Method
  • Prototipo
  • Singleton
  • Adapter
  • Bridge o puente
  • Composite
  • Decorator
  • Facade
  • Flyweight
  • Proxy
  • Cadena de responabilidades
  • Command
  • Iterator
  • Mediator
  • Memento
  • Observer
  • State
  • Strategy
  • Template Method
  • Visitor
tema 13

Introducción al Código Limpio

  • Introducción al concepto de código limpio y su importancia
  • ¿Qué se entiende como código incorrecto?
  • Las consecuencias de un código incorrecto en términos económicos
  • La importancia de la actitud frente al cambio
  • Los conceptos del código limpio
  • Las diferencias teóricas del concepto
  • La Regla de Boy Scout y los principios del código limpio
  • Herramientas para garantizar la calidad del código
tema 14

La importancia del Nombrado

  • El nombre debe revelar las intenciones
  • El problema de la desinformación involuntaria a través del nombrado
  • Legibilidad y Búsqueda de nombres
  • Prefijos, interfaces, implementaciones y notación húngara
  • El problema de la asignación mental
  • Nombrado de clases y métodos
  • Un concepto, una palabra
  • Juegos de palabras, un error a evitar
  • Nombrado de dominios de problemas y soluciones
  • Contextos innecesarios, una distracción a evitar
tema 15

Las Funciones en el código Limpio

  • El tamaño de las funciones importa
  • La estructura de bloques y la indentación de las funciones
  • Una función, una funcionalidad
  • La regla descendente y el nivel de abstracción único de las funciones
  • Las instrucciones de tipo Switch
  • Cómo plantear de forma limpia los argumentos en las funciones
  • La programación funcional y las formas monádica habituales
  • Los argumentos de indicador
  • Planteando funciones diádicas
  • Las triadas
  • Objetos y listas de argumentos
  • La importancia de los verbos y las palabras clave
  • Los argumentos de salida de una función y sus efectos secundarios
  • Separación de consultas
  • Una excepción, siempre mejor que un código de error
  • La importancia de los bloques Try/Catch
  • DRY, No te repitas
  • La programación estructurada
  • Creación de funciones limpias
tema 16

Documentando a través de Comentarios

  • La importancia de los comentarios
  • Los comentarios no pueden excusar un código incorrecto
  • ¿Qué es un comentario de calidad?
  • Comentarios TODO
  • Comentarios Informativos y legales
  • ¿Qué es un comentario de mala calidad?
  • Comentarios confusos, redundantes, mal descritos y sobrantes
  • Comentarios periódicos
  • Comentarios obligatorios
  • Marcadores de posición
  • Uso de funciones o variables sin comentarios
  • Comentarios como encabezados de funciones
tema 17

Formato del código

  • ¿Qué es el formato y qué funcionalidad tiene?
  • Los dos tipos de formato: Vertical y Horizontal
  • Introducción al formato vertical
  • La densidad y distancia vertical en el código
  • El formato a la hora de declarar variables
  • El formato cuando instanciamos variables
  • Cómo aplicar la verticalidad entre funciones dependientes
  • La verticalidad bajo términos de afinidad conceptual
  • La importancia del orden vertical
  • Introducción al formato horizontal
  • La densidad horizontal en el código
  • La alineación horizontal
  • La indentación o sangrado horizontal
  • ¿Qué son los ámbitos ficticios?
  • Reglas de equipo y formato imprescindibles
tema 18

Diseño atómico

  • ¿Qué es el diseño atómico?
  • ¿Cuáles son sus ventajas?
  • Librería de patrones
  • UI frameworks
  • Átomos
  • Moléculas
  • Organismos
  • Plantillas
  • Páginas
tema 19

Diseño atómico conPattern Lab

  • Introducción de Pattern Lab
  • Instalación de Node.js y Pattern Lab
  • Empezar con Pattern Lab
  • Estructura de patrones
  • Gestión de patrones
tema 20

Uso avanzado de Pattern Lab

  • pseudo-patterns
  • Anotaciones
  • Vincular los patrones
  • Datos de Pattern Lab
  • PatternEngines
  • Starterkit
tema 21

Mixins

  • Introducción a los Mixins
  • Ventajas y desventajas
  • Los lenguajes que usan Mixins
  • Cómo funcionan los Mixins
  • Ejemplo práctico
  • EventMixin

Curso de Buenas Prácticas en Desarrollo de Software bonificado para Empresas a través de FUNDAE

Somos entidad organizadora de FUNDAE, todas nuestras formaciones se pueden bonificar hasta el 100%, sujeto a vuestro crédito disponible y a cumplir con todos los requisitos de realización establecidos por la Fundación Estatal para el Empleo.

 

Si desconoces el funcionamiento de las bonificaciones, ofrecemos el servicio de gestión en FUNDAE, consúltanos cualquier duda que te surja.

Descargar Guía FUNDAE
imagenFundae
iconClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClient