Sistemas orientados a objetos, paradigmas e filosofia
(black7375.tistory.com)-
A maior diferença entre classes e protótipos é a forma de criação de objetos [classe -> instância vs objeto -> objeto copiado].
-
O maior ponto em comum é a orientação a objetos: dividir o programa em unidades chamadas objetos e fazê-las interagir entre si.
-
A maneira mais simples de fazer bem o encapsulamento, que é o núcleo da orientação a objetos, é fazer bem a abstração.
-
A abstração pode ser pensada em categorias como propriedades centradas em dados (OOP clássico), forma (tipo), estado (design orientado a dados), e também tempo (programação procedural), comportamento (funcional), definição (lógica) e situação (domain-driven design, AOP), que são centradas em relações.
-
Para classificar e projetar bem, é útil compreender várias categorias que nos façam reconhecer formas de pensamento [ex.: as 4 classes e 12 categorias de Kant].
-
-
Filosofia e paradigmas
-
Procedural: o tempo influencia a maior parte das abstrações, e sintaxes como
Goto, que fazem contextos se misturarem, não são boas. -
Funcional: como busca se expressar na forma de comportamento, tem relação profunda com tipo (forma).
-
Lógica: a lógica é composta por fatos e regras, e ao fazer consultas é possível obter resultados da lógica de predicados.
-
OOP tradicional: intuitivo. Mas é impossível descobrir atributos perfeitos de forma completa.
-
Design orientado a dados: ao contrário do funcional, que tenta lidar com o estado da lógica, tenta reduzir o estado no próprio computador. Isso melhora o desempenho ao aumentar os cache hits.
-
Domain-driven design: diferente do OOP tradicional, projeta de formas distintas conforme o domínio e o contexto (semelhante à teoria pictórica e à semântica do uso); usar AOP para fazer injeção de dependência de subdomínios facilita a implementação.
-
-
MVP
-
Criação de protótipo: deve incluir funções importantes, e pode variar conforme a perspectiva de designers, desenvolvedores, financeiro etc. Requisitos típicos de acordo com a semelhança com o produto que muitas pessoas consideram importante.
-
MVP: deve garantir um nível mínimo de acabamento que permita uso real, e ser projetado de forma semelhante ao produto pensado como etapa final.
-
-
Orientação a objetos e existência
-
Platão: defendia que propriedades universais são imutáveis e reais, e que existências individuais existem sem possuir plenamente essas características universais.
-
Aristóteles: defendia que apenas entidades individuais são substâncias fundamentais, e que os universais são representações que aparecem em relações hierárquicas/de inclusão.
-
Classe-instância é semelhante à teoria das Ideias de Platão, enquanto protótipo-objeto copiado é semelhante à teoria da substância de Aristóteles.
-
Os objetivos que eu pretendia escrever no início eram
-
O OOP tradicional é semelhante à teoria pictórica, e o domain-driven design é semelhante à semântica do uso.
-
Classe-instância é semelhante à teoria das Ideias de Platão, enquanto protótipo-objeto copiado é semelhante à teoria da substância de Aristóteles.
Esses dois, mas acabou ficando bem mais longo do que eu esperava.
Se a pessoa não tiver nenhum conhecimento prévio, pode achar um pouco difícil.
6 comentários
Por que o JavaScript escolheu protótipos?
https://pt.news.hada.io/topic?id=5532
É um texto que escrevi porque isso me veio à cabeça enquanto lia isso.
Vamos ler fazendo uma comparação como neste artigo!
Obrigado!!
Hã? Parece que não dá para inserir vários espaços T_T
Ah, em alguns casos isso ocupava espaço de propósito...
Configurei para reduzir linhas em branco e múltiplos espaços vazios T_T
Entendi.
Vou precisar considerar isso da próxima vez que eu postar.