¿Puede tener éxito una aplicación en PHP estructurado?

Para hacer un proyecto grande, ¿tenés que utilizar PHP Orientado a Objetos?

¿Podés lograr lo mismo programando estructurado mientras que lo hagas de forma limpia y organizada?

¿Tendrá futuro un proyecto desarrollado con PHP estructurado?

Estas son algunas de las preguntas que surgen cuando tenés algo de experiencia programando y empezás a pensar en grande.

A continuación te comentaré las ventajas de incorporar estas técnicas.

También intentaré despejar la confusión sobre ciertos mitos para que puedas tomar la mejor decisión para tu carrera.

Pero, antes de meterme en los detalles, contestaré a la pregunta original.

Qué determina el éxito de una aplicación

Para responder a ¿Puede tener éxito una aplicación en PHP estructurado? lo primero que necesitas es tener una definición clara de éxito.

Parece una obviedad, sí, pero no creas que lo es tanto.

Si por éxito te refieres a éxito comercial la respuesta es un sí rotundo. Proyectos muy exitosos desde el punto de vista comercial como remoteok se basan en un código extremadamente sencillo.

En otras palabras: el éxito comercial y la estructura del código no guardan una relación estrecha en general.

Por otro lado, si por éxito te refieres a la posibilidad de generar aplicaciones a las que puedas agregar funcionalidad en forma sencilla y eficiente la Programación Orientada a Objetos te ofrece mejores chances.

Diferencias entre Programación Estructurada y Orientada a Objetos

Las principales características de la Programación Estructurada son:

  • Una separación muy fuerte entre datos y procesos
  • Una forma de escribir los programas indicando con mucho detalle cómo deben ser resueltos los problemas

La POO (Programación Orientada a Objetos) no es esencialmente diferente de la estructurada.

La forma de resolver los problemas también se basa en una serie de instrucciones que la computadora ejecutará en forma secuencial.

Pero las similitudes llegan prácticamente hasta aquí.

En POO los programas se parecen más a descripciones de la colaboración entre diversos actores.

Cada actor ofrecerá a los demás algunos servicios (Llamados métodos) y, a su vez, contará con una serie de propiedades o atributos, los cuales le servirán para llevar a cabo sus tareas.

Tomemos por ejemplo un cruce de calles con semáforo. 

En este escenario existen:

  • 2 semáforos (Cada uno de los cuales puede tener encendida una luz color rojo, amarillo o verde)
  • Autos que se acercan hasta la bocacalle

Lo único que hacen los semáforos es cambiar el color de la luz encendida y esperar.

Mientras tanto, los autos pueden acelerar, frenar, abrir sus puertas, etc…

A su vez, las luces de colores pertenecen al semáforo, junto con la acción de cambiar la luz activa.

En un programa diseñado bajo el paradigma estructurado escribirías una función de cambiar la luz activa de un semáforo.

Probablemente esta función recibiría el número de semáforo como parámetro y el color de la luz de cada uno se guardaría en un arreglo.

En POO sería el propio semáforo el reponsable de cambiar su luz activa, informar al sistema cuál es su estado actual y velar por que las transiciones sean correctas (Por ejemplo, que no se pase de Rojo directo a Verde).

Como para darle algo más de concretud a estos conceptos, y para acercarlo un poco más a algo que ya conoces, los métodos se implementan mediante funciones (Sí, con la palabra clave function) y las propiedades mediante variables (De esas que empiezan con $).

¿Es malo Programar en PHP Estructurado?

Existen algunos mitos como que los programas desarrollados usando POO son más seguros o más eficientes que sus pares desarrollados usando Programación Estructurada.

Lamentablemente, el mundo no es blanco o negro… se pueden hacer muy buenos programas estructuras y muy malos programas Orientados a Objetos.

La calidad de los desarrollos depende de factores más sutiles que el paradigma en que estén escritos los programas.

Lo que sí diría es que, si se escribe correctamente, el código Orientado a Objetos es más sencillo de matener y testear.

La Programación Orientada a Objetos y el mercado laboral

Más allá de tus preferencias personales, hay una realidad que no te conviene ignorar: la gran mayoría de las empresas de programación utilizan Programación Orientada a Objetos.

De hecho, un número cada vez más grande de desarrollos se realizan utilizando frameworks basados en POO (Laravel, Symfony, CodeIgniter y Yii son los ejemplos más prominentes).

Personalmente, siempre que puedo, elijo Symfony, pero los otros también tienen sus méritos.

¿Vale la pena aprender Programación Orientada a Objetos con PHP?

El soporte que tiene PHP para implementar los conceptos principales de Programación Orientada a Objetos es muy bueno (especialmente en las versiones superiores a la 7.0).

En todo caso, no tenés por qué tomar una decisión a ciegas.

Hacé alguna prueba con una aplicación simple (Una calculadora por ejemplo). Intentá hacerla usando POO y después contame cómo te fue.

mchojrin
Publicada el
Categorizado como Reflexiones Etiquetado como

Por mchojrin

Ayudo a desarrolladores PHP a afinar sus habilidades técnicas y avanzar en sus carreras

¿Te quedó alguna duda? Publica aca tu pregunta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.