Ir al contenido principal

Entradas

Patrón DAO en PHP (Data Access Object in PHP)

Este patrón es de gran ayuda a la hora de separar la manipulación de datos y acceso a la DB de la lógica propia de la aplicación. Una versión simplificada de este patrón posee tres componentes principales: El acceso a los datos El objeto de transferencia de datos (value object) El cliente que consume esos datos Antes de presentar el diagrama de clases analicemos el problema el cual consiste en encontrar una forma de manipular los datos de manera tal que el modo de acceder a los mismos sea transparente al cliente que los consume. Esto quiere decir que el cliente no tiene la necesidad de conocer cómo se acceden a los datos (SQL, conectores, motor de base de datos, tipo de base de datos, etc.). El objeto de acceso a los datos debe ser capaz de poder proveer lo que el cliente requiera y además el cliente debe poder utilizar cualquier otro objeto de acceso sin que esto afecte su lógica interna asegurando así que el sistema funcionará aún cuando se cambie de motor de base de...
Entradas recientes

Como llevar a cabo una refactorización

Introducción La refactorización siempre es uno de los procesos de desarrollo más complejos y riesgosos, sin embargo es crucial para la evolución del software que se está desarrollando. La forma de comenzar un proceso de refactorización depende de tres factores: Madurez del equipo de desarrollo Antigüedad del proyecto y de las herramientas utilizadas Evolución del cliente Estos factores pueden propiciar el proceso o bien bloquearlo por completo. Razones por las cuales refactorizar Aquellos que piensen que una refactorización no debería suceder nunca, están equivocados, este proceso es la clave de la evolución de todo software. No es factible comenzar desde cero cada vez que hay una revolución en la tecnologia o el mercado. Basta con que el cliente decida invertir para cambiar la tecnología lo cual impacta directamente en los sistemas que tenga implementados y en consecuencia en la velocidad que nuestro producto deba adaptarse. Pero hay muchas más razones por las cuales es n...

Cómo implementar clases testeables

Clases testeables lineamientos básicos Para lograr una implementación testeable se recomienda cumplir con los siguientes lineamientos: Bajo acoplamiento Capa de acceso a datos intercambiable Minimizar las interfaces privadas Comportamiento de cada interface debe ser parametrizable y tener valor de retorno División en componentes más pequeños Reutilizar la mayor cantidad de componentes posible Cada uno de estos puntos contribuye a la implementación de una clase testeable. Esto garantiza que podrá ser modificada sin propagar errores inprevistos a otras partes del sistema. Bajo acoplamiento El bajo acoplamiento es uno de los principales puntos a tener en cuenta a la hora de programar, pero no siempre se cumple. Capa de acceso a datos intercambiable El origen de los datos no suele cambiar periodicamente durante la vida de un sistema pero si durante el desarrollo, más aún en la etapa de investigación. Implementar una capa de acceso a datos que no sólo permita utilizar cualq...

Por qué la planificación es importante

La importancia de planificar radica no sólo en la enumeración de  pasos, especificación de tiempos del proyecto sino en detectar los desvíos (hechos eventuales que alteran el curso normal del proyecto) más probables y determinar los cursos de acción para tales eventos. Este ejercicio es vital para que el equipo pueda trabajar sobre suelo firme la mayor parte del tiempo posible. Siempre habrá momentos de incertidumbre pero reducir esa incertidumbre al mínimo es lo que marca la diferencia entre planificar y no planificar. Una buena planificación debería brindar las herramientas necesarias para afrontar los momentos de incertidumbre además de indicar el camino del proyecto. Cuando uno sabe exactamente qué hacer la planificación deja de ser explícita, se interioriza hasta el punto de ser un conjunto de actos reflejo. Esto sólo ocurre cuando se adquiere la suficiente experiencia en la materia al punto tal de convertirse en un experto. Aún así siempre será necesario plani...

Cómo elegir tu nueva notebook?

Tips para elegir tu notebook Al momento de elegir una nueva (o la primera) notebook muchos me consultan ¿cuál es la mejor? Es una pregunta simple pero que para cada uno tiene una respuesta diferente. Mi idea al responderla es siempre averiguar el uso que esa persona le dará a la notebook ya que en definitiva la mejor elección es la que se adapta a la vida de su usuario. Si estás buscando comprarte una nueva notebook yo te recomiendo hacer lo siguiente: Establece un presupuesto máximo . Es muy importante saber hasta cuánto puedes invertir, para mi un buen presupuesto no supera los $4000 (ARS) con un margen aceptable de $500 (ARS) Busca promociones o descuentos . Una muy buena opción a la hora de comprar es buscar los lugares que ofrecen descuentos o promociones con diferentes medios de pago esto te permitirá adquirir un buen producto a un mejor precio Elige tres marcas . De todos los fabricantes disponibles en el mercado  elige los tres que más te gusten por alguna de estas...

Herramientas para el desarrollo de software

En el desarrollo de software se conjugan muchas habilidades, personas, conocimientos, áreas, entre muchas otras cosas; y como es de esperarse también se necesitan muchas herramientas diferentes. En este artículo se intenta dar un pequeño listado de herramientas que ayudan a llevar la ardua tarea de desarrollar software de la manera más cómoda y eficiente posible. Cada una de las herramientas aquí listadas tienen un propósito, sin embargo su uso no es obligatorio ni indispensable pero sí de gran ayuda a la hora de realizar un trabajo ordenado y en equipo. Análisis y Diseño ArgoUML y Gaphor , son aplicaciones para crear diagramas diversos, principalmente utilizando UML. En el caso de ArgoUML, en mi opinión, es uno de los mejores en su categoría por tres detalles que lo destacan: 1) es Open Source, 2) al estar desarrollado en JAVA corre en cualquier SO, 3) permite crear diagramas de clases desde archivos fuentes y viceversa. Sin embargo, uno de los puntos en con...

Cómo aplicar el patrón DAO en Force.com (Parte 1)

En ocasiones es necesario añadir comportamiento tanto a objetos estándar (Standard Objects) como a objetos personalizados (Custom Objects) y a la vez desacoplar los objetos nativos de Force.com para que el componente desarrollado pueda ser reutilizado. El patrón de diseño que permite dejar la implementación nativa en una capa más baja y crear capas superiores de manera tal de potenciar las funcionalidades es el patrón de diseño DAO. Este patrón de diseño utiliza tres clases: Una clase para el acceso a los datos (Data Access Object) Una clase intermedia que representa una instancia del dato (Transfer Object) Una clase que procesa o utiliza los datos (Business Object) ¿Cómo funciona esta implementación? La clase DAO, por la cual recibe el nombre este patrón, es la que se encarga de la recuperación, actualización e incorporación de datos a la base de datos. Force.com se basa en otro patrón de diseño como lo es MVC (Model-View-Controller) el acceso directo a la ba...