Discusión: "¿cuál es tu grado de madurez en POO?"
Todo surgió respondiendo una consulta en un foro y me pareció interesante discutirlo aquí. Les comparto los "niveles" o "etapas" que considero que todo desarrollador pasa cuando decide dejar atrás la programación estructurada.
Generalmente todos empiezan por el primero y luego pocos llegan hasta el último (la mayoría solo logra llegar al 2 y se estancan en el 3):
- "Programación Estructurada": el inicio, desde donde parten, la "nada" ;-)
- "Programación Estructurada con uso de Objetos": usan objetos "sueltos / aislados", no los saben relacionar entre ellos, se reusan a leer material con "conceptos", creen que es mejor aprender a través del "prueba y error".
- "Programación Orientada a Objetos Sin Conceptos Claros": "creen que lo hacen bien" pero luego heredan clases mecánicamente pensando que es el mejor mecanismo para reusar código.
- "Desarrollo 100% OO": personas que invirtieron sabiamente su tiempo para aprender primero los conceptos para luego poder aplicarlos de forma correcta

Puedes seguir desarrollando estructurado y apoyarte en algunos objetos, pero lo ideal es que te vayas adecuando a la forma de trabajo con objetos y estructures todo el sistema de esta forma (y eso empieza por "pensar en objetos", no en código).
Nuevamente, "crear clases y jugar con objetos" es algo que todos podemos hacer, pero desarrollar "orientado a objetos" es un tema más de tener los conceptos claros que de saber la sintaxis de cómo se codifica.
Recomiendo que antes de preguntar qué es o qué no es POO, revisar el apartado de Wikipedia sobre POO y paradigmas de programación y las diferencias entre ellos.
¿Tú, en qué nivel de madurez estás? ¿crees que hay otros niveles o etapas más? ;-)













5 comentarios:
¿En que nivel están los que, conociendo POO empiezan a desarrollar su propio framework? :-P
Creo que en la escala faltan los patrones de desarrollo... y la Programación Orientada a Aspectos, aunque PHP todavía está muy verde en ese tema.
Aun no entiendo la diferencia que tu le das entre la 3 y la 4; a que te refieres con que "creen"??
Algo como crear una clase simplemente para rehusar métodos?.
Bueno yo me considero en la 4º. Aprendí poo con java, y pues eso ayuda bastante por que no te deja practicar programación estructurada.
Cada vez que veo proyectos en el estado 2 en PHP me dan ganas de dejarlos, y salir corriendo... El claro ejemplo está en Wordpress :-p
Situarme en algún punto... Entre el 3 y el 4... Me molesto y muy mucho en programar orientado a objetos (no recuerdo la última vez que hice una simple función), pero de ahí a hacerlo perfecto.... Pero bueno, estamos en ello! Que para aprender siempre hay tiempo ;-)
Simplemente la frase de Alan Kay: "I invented the term Object-Oriented, and I can tell you I did NOT have C++ in mind". El termino "POO" esta muy distorcinado, por ejemplo segun Alan Kay C++ NO es OOP, porque no tiene garbage collector. POO se refiere a "ambientes puros en Objetos" como Smalltalk y Self o se refiere a hibridos como C++, Java, C#, etc.
pues.. yo digo que por hay de un 3.7, digo ese "creen" ps deja a la duda, pero igual tu "crees" que lo que haces es lo mejor y estas en 4, creo el "creer" es muy subjetivo, tabien yo traigo mucha filosofia de Java y trato de implementar la OOP que se maneja en java en PHP
Fco Diaz
www.devitics.com.mx
Publicar un comentario en la entrada