Framework vs Platform: qual a diferença?

Olá Habr! Apresento a você a tradução do artigo "Framework vs. Platform Qual é a diferença?" autor G. Harris.


Confesse: sou pedante. Apesar de falhas pessoais neste campo, acredito profundamente que o uso da linguagem correta agrega muitos benefícios. Para citar o aforismo de Mark Twain :


A diferença entre uma palavra quase correta e uma palavra correta realmente significa muito. Essa é a diferença entre o erro de raio (erro de raio) e o raio (raio).

Em vista dessa diferença, vejo que, de tempos em tempos, fico incomodado com a falta de clareza em torno dos dois conceitos da estrutura e da plataforma . Qualquer empresa do mundo relacionada ao desenvolvimento possui algum tipo de plataforma. O mundo do código aberto está cheio de estruturas. Mas poucos podem definir esses conceitos quando solicitados. Se não sou capaz de fornecer definições claras da terminologia básica, posso afirmar que tenho um entendimento completo do assunto da discussão?


Eu gostaria de oferecer uma das definições possíveis por analogia.


Uma plataforma é algo que pode ser comparado à caixa de designer que meus filhos tinham na sala quando eram pequenos. Cubos individuais são componentes. Em uma plataforma ideal, muitas combinações diferentes estão disponíveis para a montagem de componentes e uma grande variedade de produtos finais pode ser criada. As plataformas oferecem o santo graal da reutilização de software: é por isso que elas são tão populares.


Mas quais são os pré-requisitos para a construção da plataforma? Para ter sucesso, a plataforma deve atender a alguns requisitos técnicos obrigatórios e satisfazê-los é a tarefa da estrutura.


  • , ? , . , , . . , «» — , , . , (well-defined) .
  • , , — . , ? , . . Lego (tm) Fischer-Price (tm). , ( ) . .
  • , . () , , () . , . , , .

, , , :


  1. , .

— , .


, .


, . , . . . , .


: . . , . , , , . , . , , .


Uma estrutura pode ter responsabilidades adicionais. Idealmente, ele apoiará o conceito de relações de causa e efeito (em alemão Wirkketten), que permite identificar dependências de tempo de execução, fluxos de dados e fluxos de controle. Além disso, ele deve conter (e ocultar) o mecanismo necessário para trabalhar com simultaneidade. Mas isso servirá de material para outro artigo.


All Articles