Taller POO / PHP5: El lunes 27/10 sería la última fecha teórica posible...

... para iniciar un taller de POO para PHP. Hace días que me vienen consultando de la posibilidad de hacer otro grupo para este año y lo mismo me han preguntado algunas empresas para hacer un "taller privado" para capacitar a sus equipos de desarrollo.

Por lo pronto, si se desea iniciar un grupo más con una duración de 2 meses, como última fecha, se podría iniciar el lunes próximo para que que termine el 19/12, antes de fin de año (luego se vienen las fiestas, etc, etc).

Si hay interés, podemos evaluarlo rápidamente, ya que tendríamos que cerrar un grupo de 20 personas esta semana.

Ahora les estoy enviando un email a la base de registrados para saber si hay verdadero interés.

Espero sus comentarios para ver qué hacemos o el taller sigue cerrado hasta el año que viene ;-)

Martin Fowler: "Código como documentación"

Releyendo algunos artículos de Martin Fowler (gurú/pensador relacionado con Análisis & Diseño en POO) caigo en este artículo que, fuera de no ser tan técnico, considero un tema base a tratar en los equipos de desarrollo como así también sobre cómo se podría aumentar la calidad del código de un desarrollador que se considere "profesional".

En lo personal prefiero ser siempre "simple", clarificar lo suficiente el código como para que hasta un novato pueda entenderlo y esto no me hace menos "experto" por hacer código "entendible".

Lo que hay que evitar es la "sobre-ingeniería", es decir, ser complejos por el simple hecho que nuestra mente sea -tal vez- un poco más rápida que el resto, o simplemente, porque llegamos a tal grado de "optimización temprana" que creemos que nuestra calidad es elevada cuando "resumimos" 50 líneas en unas pocas 5.

Nota al margen: tanto "sobre-ingeniería" como "optimización temprana" son dos males detectados en la ingeniería de software y deben evitarse.

Algunos ejemplos de lo histérico que puedo llegar a ser ;-). Tengo la costumbre inconsciente de:
  1. Separar las sentencias relacionadas entre sí como si fueran párrafos de un artículo: veo a muchos desarrolladores que toman un método de una clase y en todo su contenido no hay una sola línea de separación, todo junto, todo "pegado". Lo primero que hago es empezar a separar como párrafos de un artículo: cuando las líneas de código están relacionadas, van juntas ("punto y seguido"), pero cuando las líneas tratan otro tema agrego una línea en blanco ("punto y aparte"). A mi me costaría leer un libro o un artículo que tiene contenido sin separar, ¿por qué no me pasaría eso con el código de un sistema?
  2. Evitar los "elseif" porque anidar condiciones genera un código difícil de seguir, ya que tenemos que estar evaluando cada condición y todos sus caminos alternos. Si no quedara otra simplificación, trato de cambiar el elseif por un simple else y coloco dentro un "if" aparte y agregarles lineas de separación. En parte está relacionado con el punto anterior (no mejora la lógica pero sí su lectura y entendimiento).
  3. Inmediatamente eliminar cualquier "número mágico", técnica de refactoring que dice algo así como "sustituir todos los códigos numéricos que hay por todo nuestro sistema y cambiarlo por una constante que lo describa", lo cual ya evita que tengamos que hacer un comentario antes del "número mágico".
  4. Cambiar los nombres de variables y hacerlas más descriptivas, sin importar lo largas que me queden: si el caso es muy obvio, no tengo problemas de agregar una variables del tipo "ret" o "retorno", pero en el caso donde lo obvio es peligroso, o donde no es tan obvio, trato que las variables sean tan descriptivas que no haga falta agregar un comentario para explicar para qué sirven, y el lugar más indicado es con los parámetros de un método.
  5. Abrir el código en varias líneas hasta que sea entendible: no tengo pudor en ampliar una línea de código en varias hasta que quede claro, aún sabiendo que puedo yo mismo entenderla con una sola línea. Lo importante, otra vez, no es si solo yo lo entiendo, es si el que viene detrás puede hacerlo, y esto es fundamental para trabajar en equipo y que todos seamos productivos.
Tan malo es hacer código que nosotros mismos nos cueste entender dentro de unos meses, como ser los únicos que lo puedan entender. Un código de alta calidad es el código que todos pueden entender, y hay que comprender que en algún momento u otro, vamos a trabajar en equipo con otra persona, y el código, además de ser entendible para nosotros poder trabajar de forma productiva, debe poder ser entendido por los demás.

Experto es quién hace código entendible, y experto es quién entiende la diferencia entre "código de calidad" y el que no lo es.

Y ahí entra la disciplina "refactoring" que busca, sin cambiar de funcionalidad, que el código mejore su calidad.

¿Y tú, haces código entendible para los demás, para ti, o para nadie? ;-)

Presentaciones de la ZendCon 08 (PHP)

Visitando el sitio de Crónicas de un Mundo Gris me encuentro con el link a las Presentaciones de la ZendCon 08 (PHP) que sabía se iba a hacer, pero no estaba al tanto de la disponibilidad del material de las presentaciones.

Todas tienen muy buena pinta, pero me quedo con la primera que usaron de apertura del evento: muy buenos ejemplos, frases y argumentos que cuentan el crecimiento y adopción que está teniendo hoy día PHP en el ámbito empresarial.



La verdad que viendo de afuera, la empresa Zend ha hecho mucho por estar donde está, y que el framework oficial haya crecido tan prolijo y rápido, a logrado que este último se haya vuelto un gran apoyo a la valoración del Desarrollador PHP en un mundo que dominan las "plataformas complejas".

Grupo 4, iniciado lunes 20:50


Por las dudas lo comento aquí si el email con la notificación para entrar al taller llegara a caer en la bandeja de Spam. Ya les envié un email a todos los que han hecho el pago para le Grupo 4, que fuera de todos los pronósticos cerramos con 21 personas ;-)


Como he comentado en el blog, estuve todo el fin de semana sin conexión a Internet, y recién se solucionó a la misma hora que envié la notificación (estuve haciendo todo el ingreso de los usuarios desde otra conexión)

Para tratar de bajar la ansiedad de todos (lo cual es entendible) creé los usuarios lo más rápido posible, por lo tanto verán que sus datos no están completos (solo aparece la cuenta de gmail, sin nombre y apellido, sin foto). En el correr de los días iré actualizando esta información, ya que considero muy importante que entre todos nos tratemos directamente a través de nuestros nombres y poder asociar una "cara humana".

PD: si todavía quedó alguien fuera, muy sobre la hora, envíame un email y veo la posibilidad de agregarte en este último grupo que recién inició (uno más, uno menos, no va a hacer la diferencia).

Saludos y gracias a todos por el interés y la confianza en este talle ;-)

Fin de semana sin conexión, iniciamos lunes con todo atrasado

Estimados, luego de un mes con cortes intermitentes en mi conexión a Internet, última semana sin conexión de tarde y para premio este fin de semana sin conexión el sábado y domingo (a lo que se sumó también la señal de clave).

Luego de estar a los insultos con la empresa, Fibertel / Argentina, obviamente a la fecha aún sin conexión, y estoy viendo desde el trabajo que tengo 55 correos sin leer, la mayoría relacionados con el taller (consultas, usuarios nuevos para el grupo 4, etc).

Sepan entender la demora, en el correr del día estará todo en orden e iniciado el Grupo 4 (aunque me tenga que quedar a dormir en el trabajo o morir en un cybercafé hasta la madrugada).

Ahora me actualizaré con las nuevas altas y los pagos, obviamente se respetará el orden de entrada de cada uno.

Saludos, no desesperen (que para eso ya estoy yo).

Sobre el Grupo 4 del taller: "la última vez que lo digo"



Estimados, ya será de conocimiento público que este es el último grupo del año para el taller de Programación Orientada a Objetos para PHP5, y no tengo claro en que fecha del año que viene retomaré este dictado (tal vez después de marzo).


Como ha sucedido con los últimos grupos, la registración es más rápida (muestra el interés sobre el taller) pero los pagos generalmente son más lentos -pero seguros- que se confirman día a día: hoy fueron 4 y ayer 3, por lo tanto ya estamos en 11 personas que confirmaron su lugar de 29 registrados en el sistema interesados en el taller.

Son los últimos lugares, si te registras y pagas rápidamente, obtienes uno de los 9 lugares que restan y se cierra el taller de este año.

No digas luego que no te avisé ;-)

"Oferta de trabajo / Uruguay: Programador PHP / 1 año de experiencia"


Estimados lectores, me llega un email de Marcelo Lopez de una empresa uruguaya llamada UruIT, paso a comunicarles su solicitud por si les puede servir (los resaltados son mios):

"Represento a UruIT, una empresa joven de desarrollo de software.

Tenemos una posicion abierta para un desarrollador PHP con al menos 1 año de experiencia y buen ingles, para incorporarse en modalidad full time a nuestro equipo. Si tiene conocimientos de .NET mejor todavia.

Se me ocurre que quizas puedas conocer a alguien que este interesado, ya que me imagino que tienes contacto con gente con este perfil. La remuneracion es buena.

desde ya muchas gracias!
saludos,"

Luego me aclara algunos requerimientos deseables:
  • "Conocimientos de MySQL / DB tuning"
  • "Programación estructurada, preferentemente Programación Orientada a Objetos"

Pueden enviarle un mail a luismarlopez en gmail

<disclaimer>No conozco a la empresa ni a sus integrantes, no tengo relación alguna y menos responsabilidad por lo que suceda posteriormente con la empresa (lo cual no le quita ningún mérito mi desconocimiento ;-))</disclaimer>

Últimos lugares para el Grupo 3 y finalmente abrimos el Grupo 4

En las últimas horas hubieron varios movimientos ;-) Hasta hace un momento solo quedaba un lugar disponible para el "Grupo 3" y varios interesados para abrir un "Grupo 4".

Captura con la sección del sistema que muestra los resultados de la tarea 1 realizada por el primer grupo del taller.

Hace un rato uno de los participantes que ya había pago su lugar solicitó iniciar unos días más tarde, por lo que entonces se liberó un lugar para el Grupo 3 que inicia este lunes próximo (22/9), y ya estoy confirmando entonces el último Grupo 4 del año, que iniciará tentativamente el lunes 28/9.

Listado de las tareas que se van presentando por semana (estas apuntan a resolver problemas sobre diseño orientado a objetos)

Recordatorio: a pesar del registro con sus datos, el lugar solo se cierra con el pago, son 2 meses completos por 50 dólares y el límite por grupo es de 20 alumnos.

Foro del sistema para discutir cada uno de los materiales que se van presentando por semana y solucionar todas las dudas que se vayan presentando.

Si quieres aprender de una vez por todas Programación Orientada a Objetos (POO) en PHP5 y que te responda todas las dudas hasta que entiendas cómo sacarle provecho a este paradigma, esta es tu última oportunidad del año 2008 ;-)

Grupo 3, solo 2 lugares disponibles y se cierra

A esta hora de la madrugada pagaron 3 de los 5 lugares que quedaban, por lo tanto con 2 pagos más el grupo se cierra e inicia el lunes próximo.

Luego, todo registro será para el Grupo 4 a iniciar una semana después del Grupo 3.

¡Saludos!

Estado Grupo 3: restan pagar 5 lugares

A esta hora hay 27 registrados para el Grupo 3, de los cuales ya han cerrado sus pagos 15 personas, estarían faltando solo 5 pagos para cerrar el grupo e iniciar el lunes próximo (22/9).

Recordatorio: solo el pago confirma el lugar en el grupo, si te registras hoy y pagas rápidamente, adquieres uno de esos 5 lugares.

Aclaración:
  • Si por casualidad en estos días se superan los 5 pagos restantes y son relativamente pocos, entran en el mismo Grupo 3.
  • Los restantes registrados pasan automáticamente a un tentativo Grupo 4 a iniciar la semana siguiente al Grupo 3.
  • En ningún caso se pierde el dinero del pago, si no entra en un grupo entra en el siguiente, sea un grupo de 20 o menos.
Cualquier duda, a las órdenes. ;-)

Entradas populares