100% encontró este documento útil (2 votos)
204 vistas89 páginas

Presentacion - Temas - BackEnd

Cargado por

Gina Perea
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (2 votos)
204 vistas89 páginas

Presentacion - Temas - BackEnd

Cargado por

Gina Perea
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 89

Guía.

BackEnd
Codificación de software

Técnico en Programación de Software


Guía. BackEnd
Codificación de software

Competencia: [220501096]. Desarrollar la solución


de software de acuerdo con el diseño y metodologías
de desarrollo.

Resultado de Aprendizaje: Codificar el software


empleando el lenguaje de programación seleccionado.

Conocimiento del Proceso


• Emplear estándares de codificación
• Construir líneas de código para los módulos del software.
• Aplicar casos de pruebas unitarias
• Elaborar el manual de usuario
Conocimientos del Saber. Conceptos.
• Buenas prácticas de programación: Concepto, técnicas, principios, tipos,
importancia, reglas.

• Lenguajes de programación: Tipos, características, usos, elementos,


sintaxis, ambientes de desarrollo (Javascript, Python, Java, Typescript, C#,
Kotlin).
• Paradigmas de programación: Conceptos, tipos.

• Editores de código: Características, instalación, uso y tipos.


• Entornos de desarrollo / Frameworks: Características, instalación, uso y
tipos.

• Servidores de aplicaciones / servidores web: Definiciones, tipos, usos.


Servicios web: definiciones, tipos, paradigmas de Apis Request Response
(REST, RPC, GRAPHQL) y event driven apis (Webhocks, Websockets).

• Casos de prueba: Definición, técnicas de creación, plantillas existentes,


ejecución.
• Pruebas unitarias de software: Concepto, tipos y características.

• Manuales usuario: Características, tipos, requerimientos, procedimiento,


técnicas de documentación de software.
• Buenas prácticas de programación: Concepto, técnicas, principios, tipos,
importancia, reglas.
Diferencia entre FrontEnd y BackEnd
¿Qué es Frontend y
Backend?

El Frontend es el área de un
sitio web que se dedica a
interactuar con los clientes. Por
eso se dice que va a estar del
lado de los clientes.

Mientras que el Backend será


quien tenga la tarea de
conectarse con la base de datos
y el servidor que use una web,
es por eso que se dice que este
siempre estará del lado del
servidor.

Son dos conceptos que pueden dar una explicación en general de cómo trabaja una página web y son
claves para cualquier persona que trabaje en lo digital, sea programador, marketer, diseñador o
emprendedor.
https://ecdisis.com/que-es-frontend-y-backend/
Frontend como el Backend se complementan para cumplir la misión de “usuario satisfecho”.
Evaluación
Material de estudio:
https://www.gluo.mx/blog/frontend-y-
backend-que-son-y-cuales-son-sus-
diferencias

Objetivo: Realizar el siguiente quiz y tomar pantallazo del


primer resultado de la prueba. Clic:
https://es.educaplay.com/recursos-educativos/19668406-
frontend_vs_backend_quiz.html
Buenas prácticas de programación
La programación es uno de los sectores de trabajo más
complejos y competitivos que actualmente existe.

Esto se debe a que es una disciplina cuya base está en la


tecnología y esta siempre está avanzando.
Buenas
prácticas de Cada día aparecen nuevos lenguajes de programación, las
programación tecnologías mejoran y las herramientas son más sofisticadas,
por lo que es necesario que los profesionales de la
Concepto, técnicas, principios,
tipos, importancia, reglas. programación estén en constante actualización de sus
conocimientos.

Fuente: https://www.tucontenido.net/2023/05/10-buenas-practicas-de-programacion.html
• Esfuérzate en estructurar una arquitectura concreta tomando
en cuenta la utilidad del código, su funcionalidad, compatibilidad,
etc.
• Intenta leer mucho código fuente pues esto te ayudará a
nutrirte de conocimiento ajeno y aprenderás a diferenciar entre
un código de calidad y uno mediocre.
• Fase de aprendizaje, es recomendable que coloques
comentarios en tu propio código con la intención de evitar
Buenas desorientarte al leer las funciones más complejas y facilitar la
prácticas de lectura de terceros.
• Testea tu código siempre, sin importar su longitud, para
programación comprobar que todo esté bien. Recuerda que es mejor encontrar
un error a tiempo para evitar así problemas en el futuro. .
• Lleva un control de versiones que te ayude a gestionar los
cambios en tu código.
Ver video:
https://www.tiktok.com/@innovate_stream/video
https://www.tiktok.com/@nextstdio/video/7199 /7235345113457626373?is_from_webapp=1&web_
780844402167046?is_from_webapp=1&sender_ id=7346805390645233158
device=pc&web_id=7346805390645233158

Fuente: https://www.tucontenido.net/2023/05/10-buenas-practicas-de-programacion.html
Lenguajes de Programación
Lenguajes de
Programación
Lenguajes de
Programación
con mayor
demanda
Lenguajes de
Programación.

Campos de aplicación
de Python.

Python es el lenguaje de
programación mas usado,
es fácil de aprender y
tiene muchos campos de
aplicación.
Lenguajes de
Programación.

Campos de aplicación
de Python.
Tipos básicos en
Python.

Este lenguaje se usa en


machine learning web,
seguridad informática,
data science, cloud
computing y tiene una
de las sintaxis mas
sencillas.
Sintaxis básica de
Python.

Este lenguaje se usa en


machine learning web,
seguridad informática,
data science, cloud
computing y tiene una
de las sintaxis mas
sencillas.
Sintaxis básica de
JavaScript.
Es un Lenguaje de
programación que funciona
en el FrontEnd (navegador) y
en el BackEnd (servidor).

También es uno de los


lenguajes con mayor
demanda laboral en el
desarrollo web y con mayor
proyección a futuro.
Sintaxis básica de GO.

Go es un lenguaje creado por


Google en 2009, con él
puedes programar tu
aplicación una sola vez y
luego compilarla para
cualquier sistema operativo,
incluso móviles.

Hoy te mostramos como es su


sintaxis..
Tipos de Lenguaje de sistema
Programación
maquina
BackEnd Technologies
in the industry
BackEnd Technologies
in the industry
Paradigmas de Programación
Que son los
paradigmas de
Programación

Estilos para
programar
Programación
orientada a objetos
Pilares de la
Programación Orientada
a Objetos (POO)
Ejemplos: Aplicación de cursos
La abstracción es pensar
¿Cuáles son los atributos y
métodos que necesita un
objeto? Imagina que
estamos programando la
aplicación de cursos y
queremos crear el objeto
usuarios.

¿Qué atributos y métodos


necesitamos? Este es el
resultado de nuestro
proceso de abstracción

Pilares de la
Programación Orientada
a Objetos (POO) Objeto: Usuarios

• ABSTRACCIÓN

Es el proceso de
definir los atributos y
métodos de una
clase.
Editores de Códigos
Editores de código
NetBeans
Son las herramientas que
todo desarrollador debe
tener a mano. Bluefish

Permiten editar código


fuente en diversos
lenguajes de programación Visual Sublime Text
y ofrecen múltiples Studio Code
herramientas para facilitar
el trabajo y aumentar la Notepad++ Brackets
productividad.

Debemos distinguir entre


editores de código e IDE. Los
editores generalmente son programas
ligeros, que ofrecen lo necesario para
poder ser productivos y tener una
experiencia de desarrollo adecuada, pero
sin complicaciones.

Atom
Visual Studio Code.

Es un proyecto Open Source


desarrollado por Microsoft para
Windows, Linux y MacOS.

Es considerado por muchos como el


mejor editor de código fuente en el
mundo del desarrollo web.

Puedes trabajar con diferentes


lenguajes de programación, usar tus
propios atajos de teclado,
refactorizar el código.
Diferencia entre
Editores de código e
IDE (Entorno de Desarrollo Integrado).
Los Editores generalmente
son programas ligeros, que
ofrecen lo necesario para
poder ser productivos y
tener una experiencia de
desarrollo adecuada, pero
sin complicaciones.
Frameworks
Frameworks
Características y tipos.
Lenguajes, Frameworks y librerías.

Desarrollo BackEnd
Lenguajes,
Frameworks y
librerías.

Desarrollo
BackEnd
Lenguajes de
Programación
/ Frameworks

Desarrollo
BackEnd

https://springtutorials.com/spring-framework-vs-rest-of-the-world/
Lenguajes de
Programación
/ Frameworks

Desarrollo
BackEnd
Lenguajes de
Programación
/ Frameworks

Desarrollo
FrontEnd
Pagina web
vs
Sitio Web
vs
Aplicación Web
Bases de datos
Sintaxis básica
SQL
Es un lenguaje de
consulta estructurada
que permite administrar
y recuperar información
en la base de datos.
Es el sistema de Gestión
de base de datos
relaciones (RDBMS) mas
usado.
Gestores de
Base de datos
Entornos de Trabajo
Si eres programador, seguramente has escuchado los términos: staging, integración, pruebas,
desarrollo y producción. ¿Pero sabes realmente que significan? se trata de los entornos de desarrollo
de software que representan las diferentes etapas por las que va avanzando un software mientras se va
desarrollando hasta salir a su versión final. Cada empresa o equipo puede definir sus propios entornos.
https://ed.team/blog/entornos-de-trabajo-en-el-desarrollo-de-software-44268387-202d-4dec-98d4-b5d31c5aa95a
Entornos de
trabajo en el
desarrollo de
software
Servidores de Aplicaciones /
Servidores WEB
Servidores de
aplicaciones /
servidores web.
Definiciones, tipos, usos.

https://forum.huawei.com/enterprise/es/diferencia-entre-
el-servidor-web-y-el-servidor-de-
aplicaciones/thread/685071778755526656-
667212884846981120
Servidor de
Aplicaciones
Es un software que se encarga de
Características del Servidor de Aplicaciones
ejecutar aplicaciones web dinámicas.
A diferencia del servidor web, el •Ejecución de Código en el Servidor: El servidor de
servidor de aplicaciones puede
procesar y ejecutar código en el
aplicaciones puede procesar y ejecutar código en el servidor, lo que
servidor antes de enviar la respuesta permite la generación dinámica de contenido y la interacción
al cliente. con bases de datos.
Está diseñado para ejecutar •Gestión de Aplicaciones Complejas: Está diseñado para
aplicaciones complejas y gestionar
solicitudes de clientes que manejar aplicaciones web complejas y procesamiento de datos en
requieren procesamiento de datos tiempo real.
en tiempo real.
•Ejemplos Populares: Algunos ejemplos populares de servidores de
https://forum.huawei.com/enterprise/es/diferencia-entre-
el-servidor-web-y-el-servidor-de- aplicaciones son Apache Tomcat, Java EE y Microsoft Internet
aplicaciones/thread/685071778755526656-
667212884846981120 Information Services (IIS).
Servidor web
Es un software que responde a las Características del Servidor Web
solicitudes HTTP (Protocolo de
Transferencia de Hipertexto) de los
clientes y envía páginas web y otros •Procesamiento de Páginas Estáticas: El servidor web puede
recursos estáticos, como imágenes y procesar páginas HTML, CSS y otros recursos
archivos CSS, al navegador del
usuario.
estáticos almacenados en el sistema de archivos del servidor y
enviarlos directamente al cliente.
Su función principal es gestionar las
solicitudes y respuestas HTTP,
procesar páginas HTML y entregar •Configuración Sencilla: La configuración del servidor web es
contenido estático al navegador. generalmente sencilla, ya que su enfoque principal es responder
a solicitudes HTTP y enviar contenido estático.

https://forum.huawei.com/enterprise/es/diferencia-entre-
el-servidor-web-y-el-servidor-de- •Ejemplos Populares: Algunos ejemplos populares
aplicaciones/thread/685071778755526656-
667212884846981120 de servidores web son Apache HTTP Server y Nginx.
Servicios Web
Servicios Web.

El Hosting, es un servicio
de alojamiento web, es
un tipo de servicio que
permite a los usuarios
convertir su espacio web
accesible a través de la
Word Wide Web.
Diferencia entre un
Hosting compartido,
VPN y Hosting
dedicado.
Paradigmas de Apis
API.
Una interfaz es una
capa que conecta dos
sistemas.

Una API es una interfaz


que conecta
aplicaciones para que
compartan información,
por ejemplo el API de
mapas de Google, entre
otros
Request Response (REST, RPC, GRAPHQL)
Event driven apis (Webhocks, Websockets).
Peticion / Respuesta
Request
Response
(REST, RPC, GRAPHQL)

Event driven apis


(Webhocks, Websockets).
Request
Response
(REST, RPC, GRAPHQL)

Event driven APIs


(Webhocks, Websockets).

https://blog.axway.com/learning-
center/apis/basics/event-driven-vs-rest-api-
interactions
Request
Response
(REST, RPC, GRAPHQL)

Event driven APIs


(Webhocks, Websockets).

https://www.getambassador.io/blog/request-
driven-restful-vs-event-driven-in-microservices
Pruebas de Software
Casos de pruebas
Son una parte integral del ciclo
de vida del desarrollo de
software y son la forma de
garantizar y asegurar, entre otras
cosas, la funcionalidad, el
rendimiento y la experiencia de
uso.

Las pruebas de software pueden


ser realizadas manualmente a
través de la automatización o de
forma híbrida y pueden
clasificarse entre funcionales y
no funcionales.
Las pruebas de software
Es el proceso de evaluar y verificar
que un producto o aplicación
de software cumple con su
objetivo.

La detección temprana de fallos


críticos puede ahorrar tiempo y
dinero a su empresa.

Las pruebas de software se deben


realizar desde el comienzo del
proyecto hasta su terminación, en
todas las fases de su desarrollo.

Las pruebas pueden ser manuales


Ver video: https://youtu.be/SDhB2Yzva-w
o automáticas.
Tipos de Pruebas de Software

Los tipos de pruebas de acuerdo


a su objetivo, se clasifican en:

Pruebas funcionales

1.Unitarias
2.Componentes
3.Integración
4.Sistema
5.Humo
6.Aceptación
7.Regresión
8.De Interfaz

Pruebas No funcionales

1.Rendimiento Ver video:


2.Carga y Estrés https://www.youtube.com/watch?app=desktop&v=Uf1Kk52ONYc
3.Seguridad
4.Escalabilidad https://universodigital.org/pruebas-funcionales-y-no-funcionales/
¿ Que tipos de Testing
existen ?

Son pruebas que


permiten asegurar la
calidad y funcionalidad del
producto que estemos
desarrollando.

Es asi, que todo software


debe tener algún tipo de
prueba implementada en
su flujo para asegurar su
calidad.
Top Python
Testing
Frameworks
1. PyTest
2. Py Unit
3. Nose2
4. The Robot Framework
5- Behave
6. Testify
7. Lettuce
8. PyUnitReport
9. PyUnitExt
10. Tox
https://www.geeksforgeeks.org/best-
python-testing-frameworks/
Lettuce
Manuales de Usuarios
Manuales usuario:
características, tipos,
requerimientos.

Un manual de usuario es
el material que
proporcionas a los
usuarios de tu producto
para ayudarles a
utilizarlos
correctamente.
https://www.techsmith.e
s/blog/manual-usuario/
Ejemplo.
Manual Zajuna.

https://zajuna.sena.edu.co/Re
positorio/Titulada/institution/
SENA/Tutoriales/Aprendiz/Ma
nual_LMS_Aprendiz.pdf
Practicas para
crear un buen
Manuales usuario
1. Usa un lenguaje sencillo
2. Añade elementos
visuales
3. Se centra en el problema
del usuario
4. Mantiene una estructura y
un flujo lógico.
5. Incluye un índice.
6. Facilita las búsquedas
7. Contenidos accesibles
8. Opiniones de los usuarios
reales
9. Incluye enlaces a otros
documentos.
Evaluación de Conceptos.
Evaluación de Conceptos.
Objetivo: Realizar el siguiente
cuestionario online.

Criterios de Evaluación.
• Programa los módulos del software de escritorio, web o móvil de
acuerdo con las especificaciones del diseño y el estándar de
codificación.
• Verifica la funcionalidad del software de acuerdo con las pruebas
unitarias.
• Aplica técnicas de documentación en la elaboración de manuales
de usuario según los requerimientos técnicos del software
desarrollado.
Retroalimentación
FrontEnd vs BackEnd
El camino para
aprender
FrontEnd
El camino para
aprender
BackEnd
https://www.tiktok.com/@halltec.co/video/73714
89842653416710?is_from_webapp=1&web_id=734
6805390645233158
Actividad
Proyecto Integrador Ventas de Computadores
Actividad.
Proyecto Integrador
Ventas de Computadores

Objetivo: Construir el Backend de


la aplicación según la arquitectura
del software especificado.

Criterios de Evaluación.
• Programa los módulos del software de
escritorio, web o móvil de acuerdo con las
especificaciones del diseño y el estándar de
codificación.
• Verifica la funcionalidad del software de
acuerdo con las pruebas unitarias.
• Aplica técnicas de documentación en la
elaboración de manuales de usuario según los
requerimientos técnicos del software
desarrollado.
Lenguajes de
Actividad. programación

Proyecto Integrador
Framework
Ventas de Computadores

Objetivo: Construir el Backend de Editores de


la aplicación según la arquitectura código
del software especificado.
Entornos de
desarrollo
Desarrollo Local – Lo que el programador ve en su
computador.
Servidores
web

Pruebas Framework Python


unitarias https://kinsta.com/es/blog/python-frameworks/

Manual de
usuario
Referencias
• Lenguajes de Programación. https://tecsify.com/blog/infografia/top-lenguajes/

• Paradigmas de Programación. https://ed.team/blog/que-son-los-paradigmas-de-programacion-f57de068-6426-4332-


b5dd-dbdcff1aaaec

• Programación orientada a objetos. https://ed.team/comunidad/que-es-la-programacion-orientada-a-objetos

• Programación orientada a objetos. https://tecsify.com/blog/infografia/poo/

• Editores de código. https://www.hostinger.co/tutoriales/editores-de-codigo

• Entornos de desarrollo, https://ed.team/blog/entornos-de-trabajo-en-el-desarrollo-de-software-44268387-202d-4dec-


98d4-b5d31c5aa95a

• Framework. https://springtutorials.com/spring-framework-vs-rest-of-the-world/

• Tipos de testing de software, https://ed.team/blog/tipos-de-testing-de-software

• Aseguramiento de la calidad del software: Pruebas funcionales y no funcionales, https://universodigital.org/pruebas-


funcionales-y-no-funcionales/

• https://ed.team/
Los buenos programadores saben qué escribir.
Los grandes saben qué reescribir y reutilizar"
Eric S. Raymond

Gracias…
Instructor. CzGonzález

También podría gustarte