Iteradores en PHP

(6 comentarios)

Iterador es uno de los patrones de diseño más conocidos, gracias al uso que hacen de él distintos lenguajes de programación, como Python, Java, C++ o el propio PHP. Básicamente, lo que propone este patrón es trasladar la responsabilidad de recorrer una colección a una clase nueva, que debe utilizar una interfaz estándar definida en una clase abstracta o una interfaz, de forma que se pueda recorrer de forma similar tuplas de la base de datos, nodos de un documento XML, elementos de un array, o cualquier otro tipo de colección que se nos ocurra.

Para crear nuestro iterador en PHP tenemos que / podemos implementar la interfaz Iterator. Esto nos permitirá recorrer nuestra colección utilizando un foreach, por ejemplo. La interfaz Iterator declara los siguientes métodos:

[Pulsa para continuar]

La programación

(10 comentarios)

Si la depuración es el proceso de eliminar errores, entonces la programación debe ser el proceso de introducirlos.

~ Edsger Dijkstra

Principios de diseño: fan-in y fan-out

(14 comentarios)

Fan-in (abanico de entrada) es un término utilizado en la Ingeniería del Software para referirse al número de clases que hacen uso de la clase que estamos estudiando. Por otro lado, fan-out (abanico de salida) hace referencia al número de clases que utiliza la clase que estamos estudiando. Estos conceptos, originarios de la electrónica digital, también pueden utilizarse en el resto de niveles del diseño conceptual, para hablar de subsistemas, paquetes o funciones.

Un buen diseño suele tener un fan-in alto, porque eso implica que estamos reutilizando código que de otra forma habría dado lugar a duplicidades en multitud de clases. El fan-in es una medida de reutilización.

Al contrario, un buen diseño cuenta con un fan-out bajo, idealmente de 7±2, que es, según George Miller, uno de los mayores exponentes de la psicología cognitiva, el número máximo de elementos que una persona normal puede almacenar en su memoria a corto plazo. Con un fan-out bajo nos aseguramos de que la clase es lo bastante sencilla para que no nos resulte difícil trabajar con ella. El fan-out es una medida de complejidad, muy relacionado con el Principio de Responsabilidad Única.

¿Cuál es tu lenguaje de programación favorito?

(67 comentarios)

Quizás no sea el lenguaje más potente del mundo, el más legible, o el más ameno, pero aun así, es tu lenguaje preferido. El que te llevarías como único compañero a una isla desierta. ¿Cuál es su nombre? ¿cómo os conocisteis? ¿qué es lo que te da que no te dan otros lenguajes?

[Pulsa para continuar]

Ahorra tiempo y dinero con la Ingeniería del Software

(5 comentarios)

Estos últimos días estoy leyendo por enésima vez Code Complete, mi libro preferido sobre desarrollo de software, y el de mucha más gente. A este libro pertenece esta tabla, basada en diversos estudios, que ejemplifica el coste medio de arreglar un error durante el proceso de desarrollo de software según la etapa en que se introdujo y la etapa en que se terminó solucionando.

Coste Etapa en que se detectó
Requisitos Arquitectura Construcción Pruebas Mantenimiento
Etapa en que se introdujo Requisitos 1 3x 5-10x 10x 10-100x
Arquitectura - 1 10x 15x 25-100x
Construcción - - 1x 10x 10-25x

[Pulsa para continuar]

No es una buena idea

(15 comentarios)

Dar punteros e hilos a un programador es como darle whisky y las llaves de un coche a un adolescente.

~ Anónimo

Programador: La 5ª profesión que menos horas duerme

(45 comentarios)

Basándose en los datos de la última Encuesta Nacional sobre Salud de Estados Unidos la empresa de colchones Sleepys ha elaborado una lista con las 10 profesiones que disfrutan de menos horas de sueño por día. Un top 10 en el que los programadores logran la 5ª posición, en empate técnico con economistas y trabajadores sociales. Me pregunto si será debido a las horas extra, al estrés, a la incapacidad de desconectar o a las altas concentraciones de cafeina en sangre.

[Pulsa para continuar]

97 Things Every Programmer Should Know

(8 comentarios)

97 Things Every Programmer Should Know97 Things Every Programmer Should Know
Calificación:
Autor: Varios
Año: 2010
Editorial: O’Reilly

“97 Things Every Programmer Should Know” (97 cosas que todo programador debería saber) es una colección de 97 artículos cortos sobre programación escogidos por O’Reilly. Estos artículos, de sólo 2 páginas de extensión cada uno, están escritos por profesionales del sector de la más variada procedencia, la mayoría anónimos, aunque también nos encontraremos con un par de artículos del conocido Uncle Bob, autor de Clean Code, entre otros.

[Pulsa para continuar]

Estos pensábamos que serían los lenguajes de programación más populares en 2012

(29 comentarios)

Una de las cosas buenas que conlleva el que esta bitácora tenga ya unos cuantos años, es el poder rememorar viejos tiempos. En este caso, esa vieja encuesta de hace 5 años en la que os preguntaba cuáles pensábais que serían los lenguajes más populares en 2012. ¿Cómo de acertados estuvimos en nuestras predicciones?

[Pulsa para continuar]

Visual Studio ya tiene logros

(5 comentarios)

Hace cosa de 1 año sugeríamos, medio en broma, medio en serio, algunos posibles logros que Microsoft podía implementar en Visual Studio, si decidiera en un futuro extender esta popular característica de su consola de sobremesa a su IDE.

Logros en Visual Studio

[Pulsa para continuar]

Página 1 de 2612345...Último »