Skip to main content

Posts

Showing posts from 2022

Aprender

Crear un modelo mental de causa-efecto Ir bajando mientras se incrementa la rapidez y el detalle de causa-efecto La ia viene a dar amplitud y profundidad a nuestras labores y a resolver problemas  Aprender es saber donde empiezan y terminan las cosas y como interoperan Saber hacer raíz cuadrada es saber donde empieza y en donde terminan el concepto... Y donde empieza y termina el trabajo

Excepciones

La cacho si Quiero añadir alguna nota No se q hacer con ella pero con las otras si y tengo q relanzarla Quiero reintentar  Quiero continuar con el ciclo  Quiero bitácorear Quiero mostrar el error(print, dialog) 

SOLID

S no se atreve a declarar que es una sola responsabilidad, yo si, muchas entradas una sola salida D denme las herramientas e insumos y me dedico a lo mío. O no declara las opciones de extension, yo si, file system, db, control declarativo, no declara lo que no puede modificarse, no puede modificarse el flujo y las reglas de validación del negocio L, I tiene q ver con la extensión deben poderse sustuir un objeto por otro sin q haya problemas para ello la segregación de interfaces acota y enumera las. Extensiones que puede soportar el sistema La segregación tiene q ver con Single Responsability que métodos son necesarios (interace) para tomar varias entradas y producir una única salida Las extensiones son como me hago de los insumos (url, fs, db, keyboard...) y como presento los resultados (pantalla, correo, sonido,...) y el strategy pattern (Control declarativo) 

Dependency Injection

Yo no busco ustedes proveen Un electricista no baja y sube cada vez q necesita algo, ya lo tiene en su bolsa de herramientas  La app transforma entradas en salidas pero no es su labor minar y recuperar esas entradas, es como si un cocinero tuviera q ir al campo a cosechar las cebollas o ir a comprarlas en el momento q las necesita En ese caso sería agricultor, transportista y cocinero y choca contra el principio de responsabilidad única 

Livosky

Es una taradez, es como decir, no uses integers si declaras floats, no uses char si declaras string Me da flojera... Siempre no... La segregación de interfaces debe ir de la. Mano con la responsabilidad única 

Open Closed

Puede extenderse pero no modifcarse Se cambian las cosas que se gastan q se tiene q Cargar, una batería, uan broca, db, fs,... La decisión de como y cuando llamar la define la arquitectura  Yo hago la máquina (no puede modificarse)  Tu haces las herramientas de corte (extiende)  Las variaciones: Almacenamiento endpoints Control declarativo (Lenguaje c/kotlin?) dentro del dominio de la aplicación (dfsort, ejemplo)  Almacenamiento persistente siempre debe ser extensible el hecho de almacenar NO Hay q pensar en términos de conectar y desconectar herramientas  Puedes vender y comprar en mercado libre y Amazon al vender y comprar se extiende el sistema pero las. Reglas de. Negocio y el flujo no cambian esas las impone la empresa Para un taladro puedo diseñar una nueva herramienta giratoria de corte pero no debes cambiar el movimiento circular por uno horizontal xq romperia el espíritu del diseño, romperia con la idea de abrasión por rotación Que hace y como lo hace l...

Single Responsability

Puedes leer entradas pero debes producir una y solo una salida de almacenamiento persistente, estructurado o efimero Todas las. Entradas colaboran en la generación de la salida de manera directa, si es forma indirecta, es decir requiere de Una operación adicional antes de ser la entrada deseada debe estar en su propio metodo Pueden encadenarse ent sal ent sal si 

Normalizacion de base de datos

1era Atomicidad horizontal y vertical 2da Dado un matrimonio los atributos deben describir a la pareja, no sólo al novio no sólo a la novia 3era Los hijos son parte del matrimonio pero los atributos que los describen deben ser parte de otra identidad 

Excepciones

Solo el componente que controla el flujo cacha las excepciónes y logea y despliega mensajes Si otro componente cacha las excepciónes es para anexar información específica para resolver el problema antes de relanzarla otra vez. Cada catch debe agregar algo de valor para identificar el problema...  Se puede usar catch para reintentar aunque los reintwntos tipo http ya están considerados en las apis Dejala ir a menos que puedas agregar datos específicos para el. Diagnóstico del problema

Criterios de diseño MÉTODOS

Los parámetros de los métodos deben indicar entrada salida gen_file_constancias(bucket, file)  gen - > generar file, df, obj, si un método genera primitivos solo será  Necesario el nombre gen_df_constancias(fname, dic) se indica: fname entrada dic params _df_ salida Los métodos no tienen if de negocio solo  If de error o técnicos (si dpi >200, si color, si b/n) Si requieren un if de negocio crea dos métodos con nombres distintos