Entradas

Mostrando las entradas de mayo, 2020

Este no es un artículo sobre DDD

Hace poco publiqué en twitter dos mensajes sobre la relación entre Domain Driven Design y la fase de análisis o diseño que siempre nos recalcaron en la universidad:

DDD es la parte de la programación orientada a objetos en la que más énfasis nos hicieron durante la Universidad, pero que olvidamos por andar pensando en entregar rápido. Ahora toca estudiarla otra vez, para arreglar el despelote que también nos advirtieron que íbamos a armar. En esa época tenía un nombre menos fancy: le llamaban análisis. Con variantes como “divide y vencerás”, “primero resuelve el problema y luego escribe el código”, “identifica el contexto”, etc.Yo no soy experto en DDD -lo escuché por primera vez en septiembre de 2019-, pero después de estudiarlo un poco vi que muchos de los conceptos ya los conocía. Empezaron a encajar en vacíos que tenía en mi código y caí en cuenta que había cometido muchos errores en la fase de diseño. El principal de ellos: no dedicar suficiente tiempo a identificar todos context…

Mis indispensables de C#. Parte 3: Configuraciones

Esta es una serie de 3 artículos cortos sobre características de C# que uso en todas mis aplicaciones.

Configurar el serializador de JSON
Cuando quiero usar la misma configuración en toda la aplicación, creo mi propio serializador. Este esquema me permitió migrar fácilmente desde Newtonsoft.Json a System.Text.Json. Reconocimiento especial al método ToHttpJsonContent()... parece que .NET 5 va a incluir extensiones al HttpClient que ayudan a eso.

usingSystem.Net.Http;usingSystem.Text;usingSystem.Text.Json;namespaceMyApplication.Helpers{publicstaticclassJsonGenerator{publicstaticreadonlyJsonSerializerOptionsserializerOptions=newJsonSerializerOptions{PropertyNamingPolicy=JsonNamingPolicy.CamelCase};publicstaticreadonlyJsonSerializerOptionsdeserializerOptions=newJsonSerializerOptions{PropertyNameCaseInsensitive=true};publicstaticstringSerialize(objectobj){returnJsonSerializer.Serialize(obj,serializerOptions);}publicstaticStringContentToHttpJsonContent(objectobj){returnnewStringContent(Seria…