Categories
54cuatro

Diseño y Desarrollo de Aplicaciones aplicando SOLID

Si hablamos de diseño y desarrollo de #aplicaciones, Cuando mencionamos el principios #SOLID nos referimos a un acrónimo con 5 definiciones que nos ayudan a determinar los patrones de la #arquitectura y el #desarrollo de #software.

Los 5 principios SOLID

Los objetivos de estos 5 principios a la hora de escribir código son los de crear un software que cumpla con el objetivo por el cual fue creado y que sea robusto y estable. El código debe ser limpio y fácil de mantener. El código debe ser reutilizable y mantenible, de manera que puedan incorporarse cambios, nuevas funciones y mejoras de manera ágil. Los 5 principios son:

  • S – Single Responsibility Principle (SRP)
  • O – Open/Closed Principle (OCP)
  • L – Liskov Substitution Principle (LSP)
  • I – Interface Segregation Principle (ISP)
  • D – Dependency Inversion Principle (DIP)

Principio de Responsabilidad Única

La primera letra del acrónimo. Es el principio más importante. La responsabilidad única refiere a la definición teórica que indica que “una clase debería tener una, y solo una, razón para cambiar”, es decir que cada clase que definamos debe tener una única responsabilidad. Si nos encontramos que para agregar una nueva funcionalidad debemos modificar más de una clase o que nuestro software tiene muchas relaciones entre sus clases, evidentemente no estamos cumpliendo este principio.

Principio Abierto/Cerrado

En este principio, se entiende que una entidad de software (clase, módulo, función, etc)  deberían estar abiertas para poder extenderse (lo que significa que una entidad de software debe poder adaptarse a los cambios y nuevas necesidades) y cerradas para modificarse (significa que la adaptabilidad de la entidad se da como resultado de un diseño que facilite la extensión sin modificaciones, no por modificaciones realizadas en el core de dicha entidad)

Principio de Sustitución de Liskov

En el punto 3, se da nombre a este principio gracias a Barbara Liskov, la primera ingeniera en lograr el doctorado en Ciencias de la Computación. El principio de Liskov brinda pautas para trabajar con la herencia entre clases. La principal que debe cumplir si estamos realizando la herencia de una manera correcta es que cada clase que hereda de otra puede usarse como su padre sin necesidad de conocer las diferencias entre ellas. Los objetos deben poder ser reemplazados por instancias de sus subtipos sin alterar el correcto funcionamiento del sistema.

Principio de Segregación de la Interfaz

En este método se hace hincapié, en hacer interfaces específicas, es decir, tener interfaces con pocos métodos para finalidades concretas. Las interfaces nos dan una capa de abstracción que nos ayudan a desacoplar módulos; por lo tanto la interfaz es lo que nos da el comportamiento que nuestro código espera para comunicarse con otros módulos a través de métodos y propiedades.

Principio de inversión de dependencias

Último de los principios de SOLID. En este último punto, se especifica cómo deben ser las relaciones entre componentes para evitar el acoplamiento entre los módulos de un software, lo que busca reducir las dependencias entre los módulos del código para lograr un bajo acoplamiento de las clases.

Conclusión

SOLID tiene muchos detractores que suelen indicar entre sus criticas que solo toma algunos principios muy generales para un buen diseño de software de programación orientada a objetos y luego les coloca etiquetas.

Los principios SOLID son una guía de buenas prácticas, que están relacionados entre sí de forma muy estrecha y que al aplicarlos en nuestros desarrollos facilitan la creación de un código limpio, con menor acoplamiento, más flexible, más estable y más fácil de mantener.


[popup_anything id=”2076″]

Categories
54cuatro

Que soluciona DataOps

Ya hicimos entradas de #DataOps (operaciones de datos), pero para refrescar la memoria decimos: es la conjunción de personas, procesos y tecnología que permiten manejar datos que sean de utilidad para #desarrolladores, #datascientist, #operaciones, #aplicaciones y herramientas (ej #inteligencia #artificial), permitiendo canalizar los datos, mantenerlos seguros durante su ciclo de vida y configurar una #gobernanza sobre los mismos.

Mientras mas rapido manipulemos y entreguemos los datos, mas rápido sera el crecimiento para el negocio por el uso de la informacion, por lo tanto, su objetivo es promover prácticas y procedimientos de gestión de datos que mejoren la velocidad y precisión de los análisis.

Short-list con 5 problemáticas básicas que son resueltas con la implementación de DataOps en una organización.

Veamos que nos resuelve DataOps:

#Corrección de errores: además de mejorar la agilidad de los procesos de desarrollo, DataOps tiene el poder de impulsar el tiempo para responder a errores y defectos reduciendo los tiempos significativamente.

#Eficiencia: en DataOps, los especialistas de datos y los desarrolladores trabajan juntos y, por lo tanto, el flujo de información es horizontal. En lugar de comparar información en reuniones semanales o mensuales, el intercambio ocurre regularmente, lo que mejora significativamente la eficiencia comunicacional y los resultados finales.

#Objetivos: DataOps proporciona a desarrolladores y especialistas en datos en tiempo real sobre el rendimiento de sus sistemas.

#Silos de datos : DataOps enfrenta a los silos de datos que se generan en distintos departamentos o gerencias de una empresa, muchos grupos ven sus operaciones como “quintas” inviolables en las cuales cada silo es una barrera para el éxito para implementar mejores estrategias de administración de datos. La implementación de un governance correcto es crucial para la obtención de todas las fuentes de datos que requiere la organización para cumplir con sus objetivos de negocios.

#Skills: es un hecho que los profesionales de datos no abundan. La falta de disponibilidad de las personas adecuadas para administrar proyectos de #BigData y #BI (#BusinessAnalytics) significa que los proyectos no sean ejecutados en tiempo y forma, o peor aun, que fallen. Es un error poner más datos en un equipo que no tiene el conocimiento y los recursos para manejarlos.

Vea nuestro workshop de DataOps

Los invitamos a unirse a nuestro Grupo en Linkedin de “DataOps en Español

[popup_anything id=”2076″]