23 puntos por alstjr7375 2021-12-14 | 6 comentarios | Compartir por WhatsApp
  • La mayor diferencia entre clases y prototipos es la forma de crear objetos [clase -> instancia vs objeto -> objeto copiado].

  • La mayor similitud es que ambos son orientados a objetos, es decir, dividen el programa en unidades llamadas objetos y hacen que interactúen entre sí.

  • La forma más simple de lograr bien la encapsulación, que es el núcleo de la orientación a objetos, es hacer bien la abstracción.

    • La abstracción puede pensarse dividida en propiedades centradas en los datos (OOP clásica), forma (tipo), estado (diseño guiado por datos), y en elementos centrados en relaciones como tiempo (orientación procedimental), comportamiento (funcional), definición (lógica), situación (diseño guiado por dominio, AOP), etc.

    • Para clasificar y diseñar bien, conviene tener comprensión de diversas categorías que ayuden a reconocer las formas del pensamiento [ej.) las 12 categorías en 4 grupos de Kant].

  • Filosofía y paradigmas

    • Procedimental: el tiempo influye en la mayoría de las abstracciones, y una sintaxis como Goto, que hace que se mezclen los contextos, no es buena.

    • Funcional: como intenta expresarse en la forma del comportamiento, tiene una relación profunda con el tipo (forma).

    • Lógica: la lógica se construye con hechos y reglas, y al hacer consultas se pueden obtener resultados de la lógica de predicados.

    • OOP tradicional: intuitiva. Pero es imposible descubrir atributos completamente perfectos.

    • Diseño guiado por datos: a diferencia de la programación funcional, que intenta tratar el estado de la lógica, intenta reducir el estado dentro de la propia computadora. Aumenta el cache hit y mejora el rendimiento.

    • Diseño guiado por dominio: a diferencia de la OOP tradicional, diseña de manera distinta según el dominio y el contexto (similar a la teoría pictórica del significado y la semántica del uso), y usar AOP para hacer inyección de dependencias de subdominios facilita la implementación.

  • MVP

    • Creación de prototipos: debe incluir funciones importantes y puede variar según la perspectiva del diseñador, desarrollador, finanzas, etc. Es un requisito típico según el grado de similitud con el producto que muchas personas consideran importante.

    • MVP: debe poder usarse con un nivel mínimo de completitud garantizado, y debe diseñarse de forma similar al producto que se imagina como etapa final.

  • Orientación a objetos y existencia

    • Platón: sostenía que las propiedades universales son inmutables y reales, y que las existencias individuales existen careciendo de esas características universales.

    • Aristóteles: sostenía que solo los individuos particulares son sustancias fundamentales, y que los universales son representaciones que aparecen en relaciones jerárquicas o de inclusión.

    • Clase-instancia se parece a la teoría de las Ideas de Platón, mientras que prototipo-objeto copiado se parece a la teoría de la sustancia de Aristóteles.

Al principio, los objetivos que quería escribir eran

  • la OOP tradicional es similar a la teoría pictórica, y el diseño guiado por dominio es similar a la semántica del uso.

  • clase-instancia se parece a la teoría de las Ideas de Platón, mientras que prototipo-objeto copiado se parece a la teoría de la sustancia de Aristóteles.

esos dos, pero terminó siendo mucho más largo de lo que esperaba.

Si no tienes nada de conocimiento previo, puede sentirse un poco difícil.

6 comentarios

 
alstjr7375 2021-12-14

¿Por qué JavaScript eligió los prototipos?

https://es.news.hada.io/topic?id=5532

Es un texto que escribí porque me acordé de eso mientras lo veía.

 
laeyoung 2021-12-14

¡Leámoslo comparándolo con este artículo!

 
alstjr7375 2021-12-14

¡¡Gracias!!

 
alstjr7375 2021-12-14

¿Eh? Parece que no se pueden poner varios espacios T_T

 
xguru 2021-12-14

Ah, había algunos casos en los que ocupaba espacio intencionalmente...

Dejé configurado para reducir las líneas en blanco y los múltiples espacios vacíos ;_;

 
alstjr7375 2021-12-14

Entendido.

Tendré que tenerlo en cuenta la próxima vez que publique algo.