Mostrando entradas con la etiqueta desarrollar. Mostrar todas las entradas
Mostrando entradas con la etiqueta desarrollar. Mostrar todas las entradas

miércoles, 29 de octubre de 2014

En esta entrada hablaremos sobre el patrón creacional Object Pool, recordemos que en la entrada anterior de este hilo vimos una introducción a los patrones en general, pueden apreciarla aquí (además de ver un índice de patrones)

En primera instancia hablaremos sobre los patrones creacionales, son aquellos patrones diseñados para solventar problemas enlazados a la creación o instanciación de objetos.

El patrón object pool está diseñado para almacenar instancias de los objetos, un cliente del Object Pool, solicita un objeto, el Object Pool lo devuelve, el cliente lo utiliza, y luego se lo devuelve al Object Pool, de modo que éste lo almacena y espera su próxima solicitud, cuando le solicitan el objeto nuevamente, el Object Pool lo devuelve y así continúa el ciclo, la idea de este patrón es reciclar un objeto. Como apreciará la utilización de este patrón implica que un objeto no se construye y destruye varias veces, sino que se recicla.

Pero hay que ser muy conciente de su funcionamiento, ya que es únicamente útil en situaciones donde el costo de crear una instancia sea relativamente alto, a diferencia del costo de mantenerla almacenada, de modo que solo es útil en ocaciones tales como clases de sockets o de recursos gráficos.

Hay situaciones en donde el costo de utilizar este patrón es mayor al costo de no utilizarlo, y hay situaciones en las que es al reves.

Un ejemplo de object pool en php:


Saludos, espero les haya gustado la entrada y sigan pendientes de las siguientes entradas.

martes, 21 de octubre de 2014

Buenas lectores, hoy hablaremos de UML (Lenguaje Unificado de Modelado) en particular sobre el diagrama de clases. UML se divide en tres grandes grupos de diagrama (Estructura, Comportamiento, Interacción) y veremos cada diagrama de cada grupo a lo largo de las futuras entradas. En particular recomiendo leer la entrada introductoria al tema aquí.

En primera instancia tengo que aclarar que es uno de los diagramas que más me gustan y uno de los pocos que realmente utilizo, no es precisamente el primero a realizar, pero es bueno que conozcan su existencia desde el principio.

El diagrama de clases representa las clases que tendrá nuestro sistema (siempre y cuando el sistema sea orientado a objetos), creando una visión simple y sencilla de las distintas clases del sistema, podemos apreciar en la siguiente imagen extraída de wikipedia como se ve un diagrama de clases.


 Cada clase se ve representada por un recuadro el cual en su cabecera debe estar su nombre en un recuadro interno, luego en el siguiente recuadro interno se encuentra la lista de atributos de la clase, (propiedades) los cuales deben su nombre estar precedido por un + o - dependiendo si son públicos o privados, en los anteriores casos la primer letra debe estar en mayusculas, luego sigue la lista de funciones en un recuadro interno nuevo, también deben ser precedidos por un + o - dependiendo si son publicos o privados, el +/-nombre_funcion() debe tener ese formato, se deben agrupar aquellas funciones publicas por un lado y privadas por el otro escribiendo primero los púlbicos y luego los privados, lo mismo ocurre con las propiedades. De esta forma se representan las distintas clases.



Ahora veremos las relaciones que hay entre las clases y como se representan, usaremos la imagen de arriba para especificar de que hablamos.

Las clases pueden tener relaciones simples como lo vemos entre la clase universidad y trabajador, al lado de la tabla trabajador hay un 1 lo que significa que esa clase esta relacionada de forma que solo 1 de esas pueda estar relacionada con una universidad, de modo que un trabajador pueda estar relacionado con una sola universidad y no más de una. En cambio el asterisco al costado de universidad indica que en esa relación la universidad en si puede tener 0, 1 o la cantidad que sea de trabajadores, también se podría escribir 1..* lo que significaría que podría tener 1 o más trabajadores, 0..1 por lo que podría tener ninguno o un solo trabajador, etc. Para relaciones simples la dirección se indica con una flecha sobre la linea de relación.

La siguiente relación que veremos es la que indica una flecha vacía (sin relleno) como se puede apreciar entre trabajador y persona, y estudiante y persona, ambas indican una flecha hacia persona, esta relacion representa "es un" quiere decir, trabajador es una persona, estudiante es una persona, o entre doctor y trabajador, doctor es un trabajador, en este caso la dirección está indicada por la flecha vacía, también puede significar "es un tipo de".

Luego tenemos la relación "tiene un" conocida como agregación, está representada por un diamante vacío, en el diagrama podemos ver como trabajador tiene un departamento.

 Luego para continuar tenemos composición, es una relación que representa el todo/parte, podemos ver entonces como funciona en la relación departamento/universidad, todos los departamentos pertenecen a una universidad.

La flecha con la linea punteada, es una relación de dependencia donde una clase depende de la otra, como por ejemplo en la imagen doctor depende de departamento.

Eso es todo para esta entrada y espero les haya gustado, un saludo!

jueves, 16 de octubre de 2014

Buenas tardes lectores, mientras espero para ver el lanzamiento del satelite geoestacionario argentino arsat-1, voy a escribir una publicación para compartir mi manual para trabajar con sockets en php.


En este manual utilizaremos la librería PHPSocketMaster que pueden ver su repositorio oficial aquí, para realizar clientes, servidores y servidores para websockets en php, entre otras cosas.

miércoles, 8 de octubre de 2014

Buenas tardes lectores, hoy traigo algo muy interesante que me llamó la atención, es un blog que publican las "buenas prácticas" para programar en php.-

¿Con qué me refiero a buenas prácticas? al hecho de poner " o ', en que situaciones usar cada una, cuando usar o no tal o cual cosa, el punto es que aprendas como programar de buena manera para que tu código cumpla los requisitos básicos para empezar a pensar en calidad de software.

lunes, 6 de octubre de 2014

Buenas tardes a todos los lectores, hace mucho no publicaba nada, pero hoy decidí desarrollar y llevar adelante un nuevo pdf sobre programación orientada a objetos.


Hablaremos sobre varias cosas, además de una introducción para iniciados en el tema de la programación orientada a objetos hablaremos sobre la falencia de Singleton, y el error que representa, sobre Wrappers, mi property nunca puede faltar, sobre Factory en php, y sobre el gran problema que tienen hoy en día los framewroks (referido al gran error que tienen en el concepto de programación orientada a objetos)

martes, 29 de julio de 2014

Buenas tardes lectores, en la entrada del dia de hoy hablaremos sobre un tema que siempre es interesante para debatir, la diferencia entre un programador y alguien que escribe codigo.

Cualquiera puede escribir un par de lineas de codigo, hasta un programa entero si se quiere, pero no cualquiera en realidad puede programar, hay una gran diferencia y de eso quiero hablar.

lunes, 28 de julio de 2014

Buenos días, voy a continuar mi trilogía de documentos relacionados con la programación, les recuerdo que deben leer primero Introducción a la programación I y también Introducción a la programación II

Requisitos para comprender este documento:

Conocer los conceptos básicos de Introducción a la programación I.
Tener conocimiento de un lenguaje. Y manejarlo con fluidez.
Llevar al menos un año programando.
Haber trabajado de programador en algún proyecto o más de uno.


jueves, 3 de abril de 2014

Buenas tardes lectores, vamos a volver un poquito al hilo del Arte de Programar para hablar sobre un tema interesante, ¿Por que se dice que el desarrollo de software es un proceso iterativo e incremental?


Se dice que el desarrollo de software es un proceso iterativo e incremental, esto esta completamente relacionado con los sistemas de versionado, de hecho estos surgieron en base a esta idea, mas alla de que se utilizen las versiones para correccion de bugs, evolucion o mejora de codigo.

sábado, 29 de marzo de 2014


Buenas tardes lectores, en la entrada de hoy hablaremos sobre el paradigma de la orientación a objetos, y la razón por la que fue ampliamente aceptado, por otra parte luego de esto hablaremos sobre el futuro del blog STD-IO y sus entradas.


El paradigma de la orientación a objetos organiza sistemas de abstracciones alrededor de estructura y comportamiento común y variaciones en estructura y comportamiento.

viernes, 28 de marzo de 2014

Buenas tardes, en esta entrada hablaremos sobre la Abstracción, Ocultamiento de información y encapsulación, además hablaremos también sobre el rol de la abstracción...

Abstracción, Ocultamiento de Información y Encapsulación son conceptos diferentes pero fuertemente relacionados. Podríamos argumentar que la abstracción es la técnica que nos ayuda a identificar que es significativo y que no lo es de un objeto. La encapsulación es la técnica que nos permite construir con estos aspectos, los de significación y aquellos que no lo son, una entidad cohesiva, una cápsula. El ocultamiento de información es la técnica que nos permite enfatizar, hacer visibles, que aspectos son esenciales a la entidad y cuales no.

jueves, 27 de marzo de 2014

esto va septimo.
Buenas tardes, para continuar las publicaciones diarias que volvimos a realizar, hoy hablaremos sobre Encapsulamiento, uno de los temas que nos quedaron pendientes sobre el hilo del Arte de Programar.
En entradas anteriores vimos de todo un poco, incluyendo criterios de calidad, abstracción y otras teorías importantes que deben ser tenidas en cuenta.


Al igual que ocurre con la idea de abstracción y ocultamiento de información, la palabra encapsulación puede ser utilizada para describir diferentes cosas. A continuación se presentan algunas de las definiciones o ideas vinculadas al termino encapsulación en el contexto del desarrollo del software:

miércoles, 26 de marzo de 2014


Para concluir con el tema de abstracción dejaré una última publicación para cerrar el tema, con mejores definiciones dadas por distintos autores, una publicación bastante completa y lo más explícita posible para tratar el tema de Abstracción que comencé en un par de entradas anteriores y que desarrollé estos días.


La abstracción es el concepto clave de la teoría de la programación. El refinamiento del concepto y la evolución de los mecanismos que le dan soporte han permitido, a lo largo de la historia de la programación, no solo abordar niveles crecientes de complejidad, sino además, permitir que esta, como actividad industrial, logre crecientes niveles de calidad, volumen y economía en el desarrollo de software.

lunes, 24 de marzo de 2014

Continuando con el tema de abstracción que como habrán notado en entradas anteriores es sumamente importante en la programación, ahora hablaremos sobre la abstracción y la programación


En los primeros días de la programación los programadores introducían instrucciones en el computador como secuencias de unos y ceros. Los códigos mnemónicos del lenguaje ensamblador fueron abstracciones diseñadas para liberar a los programadores de recordar los patrones de bits que componían cada instrucción.

sábado, 22 de marzo de 2014

Para continuar con la series de entradas que iniciamos hace un tiempo del hilo de El Arte de Programar, donde hablamos de criterios de calidad, y de programación en general, hoy vamos a hablar de Ocultamiento de Información


El principio de ocultamiento de información puede ser establecido de manera informal de la siguiente manera: Toda la información acerca de un modulo debería ser privada al él, a menos que específicamente sea declarada pública.

martes, 18 de marzo de 2014

Buenas tardes a todos los lectores, ayer estaba yo en un curso en la UNICEN (Universidad del centro sede Tandil), y para mi sorpresa empezaron a discutirme que una multiplicación consumía menor tiempo de ejecución que una división.
Claro esta, e imagino que el lector comprende que no haría nunca una entrada para hablar precisamente de eso, por lo que voy a basar mi entrada en la persecutoria que tienen algunos en relación al "consumo" o mejor conocido como Eficiencia, dando algunos motivos para dejar de lado esta postura.


Vamos a hablar en la entrada de hoy precisamente del Criterio de calidad numero 6, Eficicencia.

lunes, 17 de marzo de 2014

Buenas tardes queridos lectores!!! imagino que extrañaban mis entradas sobre todo aquellas del hilo El Arte De Programar, se que hace rato no escribo y como ya me han dicho mis publicaciones se extrañan.
Se que a mas de uno le cuesta comprender muchas veces lo que escribo pero bueno, nadie dijo que sea fácil.



Hoy hablaremos sobre la abstracción, una palabra que junto con su significado desempeñan un papel muy importante a la hora de captar conceptos importantes en la programación.

jueves, 5 de diciembre de 2013

Buenas tardes queridos lectores, bienvenidos a otra entrada de mi blog de programación...
Seguro que me deben de haber visto publicar cosas como que a mi php me interesa porque simplemente paso el tiempo haciendo a algunas aplicaciones interesantes...

Hoy quiero publicar una entrada que marca el final de php, hoy estaba viendo unos códigos de Haskell (muy interesante lenguaje de programación, un mundo diferente para ser sincero), y recordé que hoy ya no tengo muchos motivos para programar en php, si bien es un lenguaje que me agradó durante un tiempo, hoy en día considero que no vale la pena seguir haciendo monstruitos jajaja.-
Subscribete al RSS Follow me on Twitter!