Dudas sobre POO

Iniciado por Drewermerc, 6 Septiembre 2015, 23:42 PM

0 Miembros y 1 Visitante están viendo este tema.

Drewermerc

Hola a todos.

Me encuentro trabajando en un sistema de noticias en php, pero me surgieron varias dudas sobre cuando aplicar POO.
Aun que el sistema lo este realizando en php, decidi hacer el post en este subforo porque mis dudas es sobre POO en general.
Mis dudas son las siguientes:

1- ¿Cuando usar POO?, esta duda la tengo porque me encontrado con articulos que algunos dicen que hasta para hacer un simple login en php es recomendable usar POO cuando otros dicen que es mas recomendable en sistemas grandes por las cuestiones de escalabilidad, refactorizacion del codigo, reutilizacion del codigo, etc.Tambien me surge porqu he visto personas hacer programas de 40 lineas o menos en c++ usando POO.

2- Se puede saber si un sistema es chico, mediano o grande y de ahí decidir si usar POO o programacione structurada.

3- ¿Es recomendable usar siempre POO? ¿porque?

4- ¿Es recomendable usar patrones de diseño? ¿porque?

Espero me puedan ayudar.
Saludos.
Drewermerc.

Eleкtro

#1
No puedo hablar sobre PHP ya que la programación orientada a nivel web no es lo mio y por ese motivo no quiero acabar dándote un mal consejo por no saber lo suficiente, pero lo que si puedo hacer es hablar sobre la OOP para intentar que tengas una perspectiva general y te ayude en algo.

Cita de: Drewermerc en  6 Septiembre 2015, 23:42 PMotros dicen que es mas recomendable en sistemas grandes por las cuestiones de escalabilidad, refactorizacion del codigo, reutilizacion del codigo, etc.

Cualquier código, ya sea orientado a objetos o no, debería ser refactorizado si se da la ocasión de poder mejorarlo, o rehutilizarlo si de igual manera se da la ocasión de poder aprovecharlo para otros propósitos/aplicaciones.

Esos argumentos que has mencionado se podrían interpretar en plan "No necesitas usar OOP para tus propósitos, es tontería." ...y eso sería algo bueno, no usar más de lo que realmente debas usar, si a ti te va bien así ...¿entonces por que usar OOP?, pero basicamente, y en mi humilde opinión, leo esos argumentos y más bien los percibo en plan cómo intentar justificar las razones de por qué ser un programador vago ...en lugar de intentar evolucionar o superarte para llegar a hacerlo lo mejor que puedas, algo que realmente es injustificable, vaya.




Cita de: Drewermerc en  6 Septiembre 2015, 23:42 PMhe visto personas hacer programas de 40 lineas o menos en c++ usando POO.

Habría que saber cual es la funcionalidad del programa en cuestión para poder dar un punto de vista crítico al respecto, yo no puedo opinar nada sobre un código tenga el tamaño que tenga sin haberlo visto, quien sabe si puede ser un "Hello world" de 40 lineas xD o un sistema de gestionamiento de punto de venta (cosa imposible en 40 lineas, pero es un decir).

Si tu preocupación es que si la aplicación del paradigma OOP implica muchas más lineas de desarrollo de código en comparación con otros paradigmas entonces estás equivocado, además en ciertos lenguajes multiparadigma (ej. C#/VB.Net) puedes aplicar el uso del AOP (Aspect Oriented Programming) para una mayor reducción de código a la vez que consigues simplificación, algo que es genial, aunque por supuesto al final el tamaño de código depende del tipo de persona que haya desarrollado el código (su forma de programar y su experiencia con el lenguaje), de su forma de documentar código, de lo refactorizado que esté el código, etc, ya que obviamente una persona puede hacer algo en 40 lineas y otra persona hará exactamente lo mismo en 80 lineas, o 20 lineas de código y 50 de comentarios.




Cita de: Drewermerc en  6 Septiembre 2015, 23:42 PM3- ¿Es recomendable usar siempre POO? ¿porque?

En lo referente a la programación Web no sabría decirte si es recomendable o no, pero que tiene ventajas desde luego que si, empezando por los tipos genéricos o también conocidos cómo Generics (de Generic programming), encapsulación de datos, herencia, y demás, los cuales al aplicarlos te resultarán muy útiles y toda una ventaja en comparación por el aumento de rendimiento general que supone saber utilizarlos, no en la app o web-app (que en parte también), sino en el rendimiento del programador o la comfortable experiencia de usuario que proporciona la OOP.




Cita de: Drewermerc en  6 Septiembre 2015, 23:42 PM4- ¿Es recomendable usar patrones de diseño? ¿porque?

Los patrones de diseño están ahí para ayudarte a resolver problemas estructurales, creacionales o de comportamiento. Si crees que tu código no está lo suficientemente optimizado o estructurado correctamente entonces busca un patrón de diseño al que puedas adaptarlo, de lo contrario no deberías tener motivo para preocuparte, a menos que quieras seguir de forma "lineal" (es decir, desde el principio del desarrollo del código) la aplicación de algún patrón conceptual o no-conceptual cómo costumbre para adquirir buenas prácticas de programación o también para ir conociendo maneras en la que poder resolver problemas en el futuro aplicando algún patrón de diseño de esos que ya practicaste ;), sea cómo sea desde luego que mal no le vendría a nadie estudiarlos, por que además se supone que un patrón de diseño está bien estructurado a la vez que optimizado/simplificado, y eso solo puede ayudar.

Saludos








Drewermerc

Hola Elektro.
Perdon por tardar en responder.
Gracias por tu respuesta, ya me esta quedando un poco mas claro esto de OOP, preo creo que la unica forma de entender OOP es practica y leer mas.
Saludos.
Drewermerc.