← Glossário
Desenvolvimento

O que é Extensibility?

Extensibilidade é a capacidade de um software obter novos recursos com plug-ins e módulos sem alterar seu código principal.

Definição e origem da palavra

O termo "extensibilidade" deriva da raiz inglesa estender. Está intimamente relacionado ao Princípio Aberto-Fechado em engenharia de software: um módulo deve estar aberto à extensão, mas fechado à modificação. Assim, quando um novo recurso é necessário, em vez de quebrar o código existente, basta adicionar uma nova parte ao sistema.

Analogia: É como um canivete suíço; O corpo permanece o mesmo, você pode adicionar uma nova chave de fenda ou lanterna.

Como conhecer e usar no dia a dia?

Como usuário final, você encontra extensibilidade todos os dias:

Complementos do navegador: Instale um bloqueador de anúncios ou gerenciador de senhas em seu navegador.
Plug-ins do editor: Você precisa adicionar o plugin Python ou Prettier ao VS Code.
Sistemas de conteúdo: Instale um formulário de contato ou plugin de cache em seu site WordPress.
Ferramentas de projeto: Você instala um pacote de componentes prontos da comunidade Figma.

Profundidade Técnica e Arquitetura

O núcleo de um sistema extensível é pequeno e seu entorno cresce com complementos. As partes típicas desta arquitetura são:

Interface do plug-in (API do plug-in): É a porta controlada que o kernel abre para as extensões. O plugin só toca no sistema através desta interface.
Sistema de ganchos e eventos (Hooks & Events): O kernel transmite eventos em determinados momentos. Plugins assinam esses eventos.
Arquivo de manifesto (Manifesto): Cada plugin carrega um pequeno arquivo que declara seu nome, versão e as permissões solicitadas. O sistema não instalará o plugin que não estiver de acordo com as regras.
Sandbox e permissões: O acesso aos plug-ins é limitado. Dessa forma, um plugin defeituoso não pode travar todo o sistema.
Compatibilidade de versão: A interface precisa ser mantida compatível com versões anteriores durante a atualização do kernel. Caso contrário, os plugins irão quebrar.

Aqui está um pequeno exemplo, uma declaração típica de plugin:

{
  "name": "ornek-eklenti",
  "version": "1.0.0"
}

Use em diferentes disciplinas

Arquitetura: Estruturas pré-fabricadas onde novos módulos podem ser adicionados sem tocar nas paredes estruturais.
Produção: Processadores de alimentos que podem ter diferentes acessórios ligados ao mesmo corpo.
Jogo: Comunidades mod que adicionam novos mapas e missões sem alterar o jogo principal.

Perguntas e respostas

Todo software é extensível?

Não. A menos que o software seja projetado com essa flexibilidade desde o início, adicionar suporte a plug-ins posteriormente costuma ser caro e arriscado.

Qual é a diferença entre um plugin e um fork?

Você não copia o código principal do plugin, você se conecta ao sistema de fora. Na bifurcação, você copia todo o código e segue para um caminho separado.

Os plug-ins são seguros?

Varia dependendo da fonte. Escolha plug-ins atualizados e amplamente utilizados em lojas oficiais. Tenha cuidado com plugins que solicitam permissões desnecessárias.

A extensibilidade reduz o desempenho?

Cada plugin impõe alguma carga. Quando você usa poucos plug-ins bem mantidos, o efeito geralmente passa despercebido.

Termos relacionados

Esta explicação foi escrita em linguagem simples para a TreScout com IA e traduzida automaticamente do original em turco · a versão turca é a que vale. Se algo parecer errado ou faltando, escreva para hello@trescout.com. Ler em turco →