Simples complexidade

November 5th, 2009 § 0 comments

Everything should be made as simple as possible, but not simpler.

— Albert Einstein

Estava lendo hoje o texto do pessoal do GitHub sobre como eles bolaram a arquitetura de suas aplicações para escalar para a enorme quantidade não só de acesso mas também de cenários de uso que a aplicação apresenta.

O texto é um exemplo excelente de como eles conseguiram sinergia arquitetural através da combinação criativa de aplicações proprietárias customizadas especificamente para o que precisam e reuso de sistemas de sistemas para atender cenários diferentes que, no final das contas, convergem para o mesmo padrão de uso.

De fato, o texto todo me lembrou da citação acima de Einstein de como as coisas deve ser simples ao ponto máximo possível mas não mais simples do que isso. Tomada de um ponto de vista bem pragmático, a arquitetura do GitHub é bastante complexa, apresentando dezenas de partes separadas que se falam coerentemente para servir uma única requisição. Eu gosto especialmente de como um uso judicioso de NIH contribuiu para a solução como um todo–uma aplicação bem clara de simplicidade e elegância.

A propósito, é bem interessante também acompanhar os textos da Anchor, que fez a arquitetura da nova solução de provimento do GitHub. Como é fácil perceber nos textos anteriores, a solução foi desenhada a despeito da infra-estrutura existente mas, obviamente, com o objetivo de ser relativamente simples–novamente, tão simples quanto possível–de ser migrada.

Isso é essencialmente o que eu estava falando quando escrevi o gap arquitetural: enquanto, sim, é possível evoluir a solução e deixá-la emergir–exatamente o que o GitHub fez–é virtualmente impossível escapar da necessidade de uma arquitetura específica, planejada, para obter a consistência e integridade desejados.

Em resumo, um caso muito bom para aprendizado.

Tagged

Leave a Reply

Your email address will not be published. Required fields are marked *

What's this?

You are currently reading Simples complexidade at Superfície Reflexiva.

meta