Calculating Complex Big-O Notation

Ahora que tenemos una comprensión básica de la notación Big-O (Algorithmic Complexity), podemos comenzar a buscar cálculos más costosos. Supongamos que se le pide que ordene una matriz de números enteros de menor a mayor valor. El método de fuerza bruta sería comparar cada elemento de la matriz con cualquier otro elemento. Este algoritmo se conoce como Bubble Sort y es conocido por su espantoso rendimiento.

Read More

Algorithmic Complexity With Big-O, Big-θ, Big-Ω

Cada algoritmo o conjunto de instrucciones requiere un tiempo y espacio para ejecutarse, por lo que cuando creamos algoritmos para resolver nuestros problemas técnicos debemos examinar la complejidad temporal y espacial de la ejecución.

Read More

Services vs Pure Objects

Analizaremos diferentes tipos de objetos y las pautas para crear instancias de ellos. En términos generales, hay dos tipos de objetos y ambos tienen reglas diferentes. Proximamente analizaremos las características de cada uno respectivamente.

Read More

Template Objects

En esta ocasión quería dejarles una serie de templates con consejos para escribir 3 de los patrones tácticos relacionados a Domain Driven Design, sirven de guía a la hora de tener que implementarlos en nuestra capa de dominio.

Read More

Guía de objetos DDD

No todos los objetos de nuestra aplicación se van a ver parecidos. Algunos objetos tendrán muchos métodos de consultas, algunos tendrán solo metodos de estilo comando. Algunos tendrán un mix de ambos, pero con un determinado ratio de ellos. Podrás encontrarte con que diferentes tipos de objetos amenudo comparten ciertas caracteristicas, que resultan en patrones reconocidos en la industria. Por ejemplo, los desarrolladores suelen hablar de “entities”, “value objects”, “application services”, “controllers” para indicar la naturaleza del objeto del que estamos hablando.

Read More

Arquitectura Hexagonal

El primer concepto clave de lo que creemos que es una arquitectura limpia a nuestro criterio, es el concepto de una capa. Una capa en sí misma no es nada, si lo piensas. Simplemente está determinado por cómo se usa, por lo que vamos a dejar cierto resumenes de lo que significa cada capa en nuestra arquitectura hexagonal planteada.

Read More

¿Código de infraestructura ó negocio?

Dentro de las arquitecturas limpias como Hexagonal o Ports and Adapters es importante hacer una distinción clara entre el código de negocio (core code) de su aplicación y el código de infraestructura que lo soporta. Este llamado código de infraestructura conecta la lógica de negocio de su aplicación con los sistemas que la rodean, como la base de datos, el servidor web, el sistema de archivos, etc. Ambos tipos de código son igualmente importantes, pero no deben convivir en las mismas clases. El resumen rápido de las razones para hacerlo es que separar el negocio de la infraestructura…

Read More

POO Lección 7: Principios de Diseño de Software

Más adelante veremos los patrones más actuales, diferentes conceptos de diseños de arquitectura, pero antes vamos a discutir el proceso de la arquitectura del diseño de software es decir: cosas a las que debemos apuntar y cosas que sería mejor evitar.

Read More

POO Lección 6: Patrones de Diseño

Anteriormente hablabamos que en la simetría que conocemos y encontramos dentro de nuestro mundo, se esconden en nuestro día a día muchos patrones que la inteligencia humana tiene la capacidad de reconocer continuamente, algo parecido a nuestra realidad se encuentra dentro de nuestro Software ¿Cómo es esto así? bueno basicamente podemos resumirlo de la siguiente manera:

Read More

POO Lección 5: Módelos

Venimos hablando de abstracciones, de simplificar la realidad, de representar con objetos, clases y las relaciones entre ellas según nuestro “modelo de dominio” pero… ¿De que estamos hablando cuando hablamos de modelado?

Read More

POO Lección 2: Jerarquías de clases

Jerarquía de Clases

Todo esta bien cuando hablamos de una sola clase. Pero naturalmente, un programa real contiene más de una clase. Algunas de estas clases podrían ser organizadas dentro de una jerarquía. Vamos a ver que significa esto…

Read More

POO Lección 1: ¿Qué carajos es un paradigma orientado a objetos?

Antes de comenzar algo muy común de pensar es de que estamos hablando cuando decimos un “Paradigma de Programación” bueno en realidad es bastante más sencillo de lo que parece, ya que no es más que un estilo de programación, es decir, diferentes maneras de resolver problemas o de hacer cosas, utilizando enfoques de resolución diferentes.

Read More

Introducción a la Programación: Lección 3

El empleado de la tienda telefónica podría anotar algunas notas sobre las características de un teléfono recién lanzado o sobre los nuevos planes que su compañía ofrece. Estas notas son sólo para el empleado, no son para que los clientes las lean. Sin embargo, estas notas ayudan al empleado a hacer mejor su trabajo al documentar el cómo y el por qué de lo que debe decir a los clientes.

Read More

Introducción a la Programación: Lección 1

Los estudiantes que toman mis clases a menudo han tratado de enseñarse a sí mismos materias como HTML o JavaScript leyendo entradas en blogs o copiando y pegando código, pero no han sido capaces de dominar realmente el material que les permitirá codificar el resultado deseado. Y debido a que no comprenden realmente los pormenores de ciertos temas de codificación, no pueden escribir código poderoso o depurar su propio trabajo, ya que no entienden realmente lo que está sucediendo.

Read More