Sistemas orientados a objetos, paradigmas y filosofía
(black7375.tistory.com)-
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
¿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.
¡Leámoslo comparándolo con este artículo!
¡¡Gracias!!
¿Eh? Parece que no se pueden poner varios espacios T_T
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 ;_;
Entendido.
Tendré que tenerlo en cuenta la próxima vez que publique algo.