Mientras leía Los peores antipatrones con los que te has encontrado , hice clic en el enlace de esta publicación para aterrizar en el sitio web sobre antipatrones.
Y la página http://sourcemaking.com/antipatterns/functional-decomposition me hizo preguntarme.
¿Qué tan malo es este antipatrón, y es un antipatrón en absoluto? Porque, aunque actualmente estoy haciendo principalmente programación OOP, todavía siento renuencia contra los lenguajes OOP puros, como Java, y también las prácticas de diseño que traen. Y supongo que todavía tengo algunos rasgos de la programación funcional mientras escribo el código.
Y esto planteó una pregunta, ¿estoy haciendo mal al apegarme al estilo funcional OOP +, o es común en la industria y en realidad no es tan malo?
Lo que sí sé por experiencia es que el estilo funcional de OOP + no es completamente compatible con los desarrolladores de OOP puro. Pero al mismo tiempo, si bien los desarrolladores de OOP tienen problemas con el desarrollo funcional de OOP +, el argumento en contra es que las soluciones de OOP a menudo están sobredimensionadas y son demasiado difíciles de usar, y desde mi experiencia, ni siquiera fueron un poco más fáciles, y en realidad introdujo algunos puntos ciegos para que los errores MUY serios se oculten.
Entonces, aunque tuve una discusión con mi colega sobre estos temas, llegué a la conclusión de que ninguna de las formas es realmente perfecta. Y todavía tengo la pregunta sin respuesta.
El problema OOP también fue reforzado por un enlace de otra publicación en el mismo hilo. El enlace mira el estilo Java OOP http://chaosinmotion.com/blog/?p=622
Entonces, ¿cuál es la actitud general hacia la mezcla de programación funcional con OOP? ¿Y cuál es el equilibrio que un desarrollador debe esforzarse por lograr?
fuente
Respuestas:
En primer lugar, la programación funcional es actualmente lo que están haciendo todos los niños geniales. El Anti-Pattern estaba hablando de programación procedimental realmente (sería más claro si la técnica se llamara "descomposición procesal" pero no lo es), y creo que tú también lo estabas.
El antipatrón hablaba de las malas formas de escribir código de procedimiento en un lenguaje orientado a objetos, la otra página hablaba de mal era escribir Java; en verdad, no hay un lenguaje tan fantástico que puedas hacer todo lo que quieras pero no puedas Escribe un código incorrecto.
En la práctica, he visto un poco más de ingeniería en código orientado a objetos que de procedimiento, un poco menos en ingeniería y un poco más en ingeniería.
En su caso, dependería de los detalles, y no estoy seguro de lo que realmente hace en un estilo de procedimiento. ¿Es correcto, claro, comprobable, fácil de modificar, etc.? Los criterios para juzgar el código deben basarse en tales preocupaciones prácticas, y no en la pureza de un estilo particular. Parece que en su caso personas razonables y conocedoras podrían estar en desacuerdo (¡y lo hacen!) Sobre esas preocupaciones, y de ser así, probablemente no haya una forma objetiva de determinar la verdad del asunto.
fuente