OOP vs. programación procedimental - página 9

 
Реter Konow:
Entiendo porque no lo entiendo, no es mi código, además es solo una parte. Pero tú tampoco pareces entenderlo, ¿o me equivoco?

No uso punteros...

Antes trabajaba de la misma manera que tú, sólo con funciones, pero con el tiempo había que almacenarlas de alguna manera, luego tenía que buscarlas, cada función hacía sus propias acciones extra.

Ahora he reconstruido todo en clases y cuando llamo a la clase Order obtengo todo lo que necesito y una lista de funciones y métodos disponibles...

 
Реter Konow:
Por eso me gusta hacer grandes bloques de código genéricos.

No puedo creer que el autor de una buena GUI sin OOP

¡¿Ahorrar líneas de código?!

 
СанСаныч Фоменко:

No, su ejemplo es muy bueno.

No se trata de programación procedimental.

Hay un criterio mucho más importante de la calidad del programa: la claridad del código.

La solución que has dado es pésima: no queda nada claro a qué función se está llamando con sentido. Escribiría un interruptor normal y un comentario contra cada llamada. Este es el código correcto.

De tu ejemplo deduzco que la OOP es algo perjudicial.


¿Y por qué cambiar por 100 variantes si se sabe de antemano que sólo se utilizará una?

¿De qué sirve una bobina de 100 variantes de interruptor comparada con tres líneas de código?

No es correcto hacer complejo, grande y lento lo que se puede hacer de forma racional, óptima (incluso perfecta).

La OOP sólo es perjudicial si se utiliza de forma incorrecta.

Por favor, responda a este comentario.

 
Реter Konow:
Por eso me gusta hacer bloques de código grandes y universales.

¿Qué los hace universales?

 
Dmitry Fedoseev:

¿Por qué se necesita un interruptor de 100 variantes si se sabe de antemano que sólo se va a utilizar una?

¿Cuál es la claridad de un interruptor de 100 variantes en comparación con tres líneas de código?

Hacer cosas complejas, grandes y lentas que se pueden hacer de forma racional, óptima (incluso perfecta) no es el enfoque correcto.

Por favor, responda a este comentario.


No es un spoiler, es una documentación de la funcionalidad del programa combinada con el texto del mismo. Esto es lo más importante, no lo que va a funcionar solo

 
Vladimir Pastushak:

No uso punteros...

Antes trabajaba de la misma manera que tú, sólo con funciones, pero con el tiempo había que almacenarlas de alguna manera, luego tenía que buscarlas, cada función hacía sus propias acciones extra.

Ahora he reconstruido todo en clases y cuando llamo a la clase Order obtengo todo lo que necesito y una lista de funciones y métodos disponibles...

Si te resulta más cómodo, no tengo nada en contra. Desde mi experiencia bastante rica en programación, puedo decir que cualquier tarea puede resolverse sin POO con la misma eficacia, si aplicas la universalización y la compresión a tus soluciones. Es una experiencia confirmada por la gran práctica. Tal vez uno u otro enfoque esté relacionado con las peculiaridades individuales de nuestro pensamiento. Este es el punto principal que me gustaría transmitir.
 
СанСаныч Фоменко:

No se trata de un spoiler, sino de la documentación de la funcionalidad del programa combinada con el texto del mismo. Esto es lo más importante, no lo que va a funcionar solo


Tanto el pendiente como el lastre. Las moscas deben estar separadas, las chuletas separadas. La documentación es importante, pero no debe interferir en el funcionamiento del programa.

 
Dmitry Fedoseev:

¿Qué los hace universales?

Por ejemplo, se necesita un bloque que posicione los objetos gráficos en relación con los demás creando controles. Al mismo tiempo, el mismo bloque controla el fenómeno de los objetos, es decir, oculta algunos objetos y revela otros. También calcula las dimensiones de la barra de desplazamiento y las dimensiones generales de la ventana. También calcula el movimiento del deslizador en la barra de desplazamiento. Este es el bloque universal de las relaciones de los objetos.


O un bloque que controla el tamaño de la ventana cuando se agarra la manilla de la ventana. O un bloque que controla los estados de los controles. O el bloque que calcula en qué elemento se encuentra el cursor y, al mismo tiempo, pone en foco muchos parámetros globales...

 
Реter Konow:
Por ejemplo, se necesita un bloque que posicione los objetos gráficos de forma relativa creando controles. Al mismo tiempo, el mismo bloque controla el fenómeno de los objetos, es decir, oculta algunos objetos y revela otros. También calcula las dimensiones de la barra de desplazamiento y las dimensiones totales de la ventana. También calcula el movimiento del deslizador en la barra de desplazamiento. Este es el bloque de relación de objetos universal.

Pero esto se implementa a través de si y de si, ¿no es así?

 
Dmitry Fedoseev:

Pero esto se implementa a través de si y de si, ¿no es así?

Sí, estos bloques tienen ambas cosas. Pero créanme: están comprimidos al máximo y son versátiles, porque resuelven una amplia gama de problemas.
Razón de la queja: