Está en la página 1de 10

CONCEPTOS

Null-Coalescing Operator ??( Operador Nulo-Coalescente.)


Con este operador, podemos evaluar si nuestro objeto es null o no.
Son variables no utilizadas e ignoradas que se representan en su código con un guión bajo
(_). En combinación con el operador Null-coalescing (??), puede escribir la verificación
nula de esta manera:
_ = name ?? throw new ArgumentNullException(nameof(name));

INTERFACES
Es un contrato que se hace y se deben cumplir las normas que pide dicha interfaz cualquier
clase o estructura que la implemente.
Es la base practica de los patrones de diseño y sirve para resolver los problemas de la
múltiple herencia.

PATRONES DE DISEÑO
Los patrones de diseño de basan en herencia e implementación de interfaces y clases.

Las Interfaces de Programacion de Aplicaciones (APIs)


son construcciones disponibles en los lenguajes de programación que permiten a los
desarrolladores crear funcionalidades complejas de una manera simple. Estas abstraen el
código más complejo para proveer una sintaxis más fácil de usar en su lugar.
Es un conjunto de funcionalidades o recursos que nos expone un sistema para poder
interactuar con él desde otro sistema.

Las APIs se dividen en dos categorías:


Las APIs de navegador: están integradas en tu navegador web y pueden exponer datos del
navegador y del entorno informático circundante y hacer cosas complejas y útiles con él.
Por ejemplo, la API de Geolocalización proporciona algunas construcciones simples de
JavaScript para obtener datos de ubicación con los que, por ejemplo, trazar tu ubicación en
un mapa de Google.
Las APIs de terceros: no están incluidas por defecto en el navegador, y por lo general es
necesario obtener el código e información desde algún lugar de la Web. Por ejemplo, la
API de Twitter, Facebook, Youtube,etc…

API REST (tranferencia de datos representacional)


es una interfaz de comunicación entre sistemas de información que usa el protocolo de
transferencia de hipertexto (hypertext transfer protocol o HTTP, por sus siglas en inglés)
para obtener datos o ejecutar operaciones sobre dichos datos en diversos formatos, como
pueden ser XML o JSON.
Se basa en el modelo cliente-servidor donde el cliente es el que solicita obtener los recursos
o realizar alguna operación sobre dichos datos, mientras que el servidor es aquel ente que
entrega o procesa dichos datos a solicitud del cliente.
También es una técnica de arquitectura de software usada para construir APIs que permitan
comunicar a nuestro servidor con clientes usando el protocolo HTTP mediante URIs lo
suficientemente inteligentes para poder satisfacer la necesidad del cliente.
API RESTfull
Es la implementación del concepto de REST. Osea hacerlo con los estándares que pide
REST.

VERBOS HTTP (Hypertext transfer protocol )

Son aquellos verbos propios del protocolo HTTP que fueron tomados para definir
operaciones muy puntuales y específicas sobre los recursos de la API.
Son aquellos tomados para definir operaciones muy puntuales.

Los más utilizados son:


GET: listado de recursos. Detalle de un solo recurso.
POST: creación de un recurso.
PUT: modificación total de un recurso.
PATCH: modificación parcial de un recurso.
DELETE: eliminación de un recurso. En muchas ocasiones es un soft delete, es decir, no
se elimina definitivamente un recurso sino que únicamente es marcado como eliminado o
desactivado.
URL orientada a recursos: la definición de las URL de los endpoint de la API están
orientadas a recursos, es decir, a entidades que tienen coherencia dentro del contexto de la
API. Por ejemplo, en una API para un sistema que administra libros sería fácil encontrar
entidades como libros, autores, editoriales, colecciones, etc. Estas entidades las veremos
reflejadas en URL orientadas a recursos que las representen, por ejemplo:
/api-libros/v0/autores: identifica los recursos autores
/api-libros/v0/autores/{id-autor}: identifica un recurso autor
/api-libros/v0/autores/{id-autor}/libros: identifica los libros de un autor en específico
/api-libros/v0/libros: identifica los recursos libros
/api-libros/v0/editoriales: identifica los recursos editoriales
/api-libros/v0/editoriales/{id-editorial}/libros: identifica los libros de una editorial

CÓDIGOS DE ERROR O HTTP STATUS

Son aquellos estatus de respuesta propios del protocolo HTTP que fueron tomados para
informar sobre el resultado de la operación solicitada. Los más comunes en API REST son:

1XX = Códigos informativos que el servidor devuelve para indicarle al cliente que la
solicitud está en curso.
2XX = Códigos correctos que indican que la solicitud se reconoce y se está gestionando.
3XX = Códigos que especifican que habrá una redirección.
4XX = Códigos de error que indican un problema con la solicitud enviada desde el
cliente(navegador).
5XX = Códigos de errores originados en el servidor web que impiden el envío de una
respuesta validad.
EJEMPLOS:
200 – OK
201 – CREATED
204 – NO CONTENT = SIN CONTENIDO
400 – BAD REQUEST = SOLICITUD INCORRECTA
401 – UNAUTHORIZED = NO AUTORIZADO
403 – FORBIDDEN = PROHIBIDO
404- NOT FOUND = NO ENCONTRO
500 – INTERNAL SERVER ERROR = ERROR INTERNO EN EL SERVIDOR

AutoMapper
Es un mapeador entre dos objetos. Es decir, AutoMapper es un mapeador de objeto-objeto.
Mapea las propiedades de dos objetos diferentes transformando el objeto de entrada de un
tipo en el objeto de salida de otro tipo. Ya que controla la conversión manuelmente.
Una buena manera de organizar sus configuraciones de mapeo es con perfiles. Cree clases
que hereden Profile y coloque la configuración en el constructor:

Crear objetos de transferencia de datos (DTO)


Un DTO es un objeto que define cómo se enviarán los datos a través de la red.

ORM (object to relational mapping) mapeador de objetos relacional


Es un modelo de programación que permite mapear las estructuras de una base de datos
relacional como: Sql Server, Oracle, Mysql, PostgreSql, etc. Y tiene mejor rendimiento que
una sintaxis normal de base de datos.

Mapeador de objeto relacional (ORM):


Entity Framework (EF)(.NET)
infraestructura de acceso a datos.

Permite a los desarrolladores de .NET trabajar con una base de datos utilizando objetos
de .NET.
Elimina la necesidad de la mayor parte del código de acceso a datos que normalmente debe
escribirse
Es compatible con muchos motores de bases de datos.
El acceso a los datos se realiza mediante un modelo. Un modelo se compone de clases de
entidad y un objeto de contexto que representa una sesión con la base de datos. El objeto de
contexto permite consultar y guardar datos

Hibernate, Ebean, MyBatis(JAVA)


NHibernate, MyBatis.NET(.NET)

Pruebas Unitarias
Las pruebas unitarias nos van a servir únicamente para probar un bloque de
código(método), ya que es la forma más efectiva de comprobar el correcto funcionamiento
de las unidades individuales más pequeñas. Otra característica es que se aísla de otro
código, es decir, la prueba unitaria probará únicamente el código con el que se relaciona el
requerimiento.
El propósito de las pruebas unitarias es validar que cada unidad del software funcione
según lo diseñado.

xUnit.net
Es una herramienta gratuita de prueba unitaria, de código abierto y centrada en la
comunidad para .NET Framework. Es la última tecnología para pruebas unitarias C#, F#,
VB.NET y otros lenguajes .NET. xUnit.net funciona con ReSharper, CodeRush,
TestDriven.NET y Xamarin.

NUnit
Es un framework open source de Pruebas de unidad para Microsoft .NET y Mono. Sirve
al mismo propósito que JUnit realiza en el mundo Java, y es uno de muchos en la familia
xUnit.
¿Qué es un Framework?
Un framework es un conjunto de directrices y mejores prácticas bien definidas que se
deberían seguir para lograr los resultados esperados.

Pruebas de integración
Como su nombre indica, las pruebas de integración verifican la conexión entre dos o más
módulos y también pueden, en algunos casos, cubrir toda la aplicación. Se realiza después
de las pruebas de unidad y sistema en el proceso de prueba de software de extremo a
extremo.
Pruebas de carga
Consisten en comprobar el funcionamiento del sistema en el umbral límite de los recursos,
sometiéndole a cargas masivas y esto ayudará a identificar y descubrir numerosos
problemas, como errores y ralentizaciones de la base de datos.

Triple A en las pruebas

Arrange (Organizar/Inicializa) = inicializa los objetos y establece los valores de los datos
que vamos a utilizar en el Test que lo contiene.
Act (Actuar) = realiza la llamada al método a probar con los parámetros preparados para tal
fin.
Assert (Confirmar/Comprobar) = comprueba que el método de pruebas ejecutado se
comporta tal y como teníamos previsto que lo hiciera.

Que es un CRUD (crear,leer,actualizar,eliminar)


Es hacer los procedimientos de Crear, leer , actualizar y eliminar registros desde una base
de datos creada por medio de una aplicación.

¿Qué es Azure Repos?


es un conjunto de herramientas de control de versiones que se puede usar para administrar
el código
¿Qué es Azure Pipelines?
Azure Pipelines compila y prueba automáticamente los proyectos de código. Admite todos
los lenguajes principales y tipos de proyecto y combina la integración continua.
Ósea es la integración continua.
Pipeline generalmente toma código, lo construye, prueba y crea un artefacto.

¿Qué es Azure Release?


Representa la entrega continua. Release toma el artefacto y lo libera/implementa.

¿Qué es Azure DevOps?


Azure DevOps admite una cultura colaborativa y un conjunto de procesos que reúnen a
desarrolladores, administradores de proyectos y colaboradores para desarrollar software.

SonarQube
Es una plataforma para evaluar la calidad del código fuente. Es software libre y usa
diversas herramientas de análisis estático de código fuente como Checkstyle, PMD o
FindBugs para obtener métricas que pueden ayudar a mejorar la calidad del código de un
programa.
el propósito es hacer el código fuente más fácil de entender para su mantenimiento o
reutilización.

SonarLint
Es una extensión IDE que lo ayuda a detectar y corregir problemas de calidad mientras
escribe código. Como un corrector ortográfico, SonarLint corrige las fallas para que puedan
corregirse antes de enviar el código.

¿Qué es la arquitectura de software?


La arquitectura de software hace referencia a "las estructuras de un sistema, compuestas de
elementos con propiedades visibles de forma externa y las relaciones que existen entre
ellos”.
La arquitectura de software se refiere a la estructura que ha de tener un software, las partes
que vamos a construir y la forma en la que las vamos a combinar y juntar para poder
trabajar con ellas.

Tipos de arquitectura de software


Espagueti, multicapas, exagonal, onion
La arquitectura hexagonal aísla las entradas y salidas de aplicación de la lógica interna de la
aplicación. Gracias a este aislamiento, se generan partes independientes que no dependen
de los cambios externos, de esta forma, estos pueden cambiarse de forma individual sin
afectar al resto.
Tiene como principal motivación separar nuestra aplicación en distintas capas o regiones
con su propia responsabilidad. Para cuando se puedan cambiar de forma individual no
afecten el resto.

DDD (diseño basado en dominio)


es una práctica de desarrollo de software que pone en el centro el Dominio del Negocio
como faro del proyecto y en su Modelo como herramienta de comunicación entre negocio y
Es un enfoque de arquitectura usado para diseñar sistemas de grandes dimensiones y que
pone en el centro el Dominio del Negocio.
Capa de presentación
Esta solo se ocupa de la lógica de presentación y no puede tener nada de lógica de negocio
como cálculos.

Capa de dominio
Es el componente que codifica las reglas comerciales y el flujo de trabajo del mundo real
que determina como se pueden crear, almacenar y cambiar los datos de un objeto
comercial(entidad).
Esta capa es el corazón del software empresarial.

Capa de acceso a datos/Persistencia


Se encarga de almacenar u obtener datos desde un almacén de datos, como una base de
datos, servicio externo o un archivo plano.

Qué es Code First


Es un enfoque más orientado al programador. Donde se crean clases por cada uno de las
tablas de la base de datos.
La persistencia de datos
Es la existencia residual de datos digitales que permanecen incluso después de eliminarlos.
Es la capacidad de guardar la información de un programa para poder volver a utilizarla en
otro momento

ENCAPSULACIÓN: Agrupa datos y códigos en una única clase.


HERENCIA: Permite la creación de una nueva clase a partir de otra ya existente, de la
cual se hereda todo y puede personalizarse añadiendo o modificando propiedades y
métodos heredados. Las clases creadas a partir de otras existentes se llaman CLASES
DERIVADAS.
POLIMORFISMO: Gracias a esta propiedad se pueden utilizar diferentes clases de forma
intercambiable. Otros conceptos asociados al polimorfismo son la SOBRECARGA,
SOBREESCRITURA y la OCULTACIÓN.

Abstracción = Es la representación de un objeto del mundo real, ejemplo un avión, una


persona, un carro, etc…

También podría gustarte