Ponderando sobre quais deveriam ser os princípios centrais para o desenvolvimento de microsserviços, estes provavelmente seriam:
- Faça cada serviço fazer apenas uma coisa bem feita. Para um novo “trabalho”, comece algo novo no lugar de complicar serviços existentes adicionando features.
- Considere que a “saída” da cada serviço possa ser a “entrada” de outro, mesmo que este outro serviço não seja conhecido durante o desenvolvimento. Não coloque “informações demais” na “saída” de um serviço.
- Projete e construa serviços que possam ser colocados em produção rapidamente, não mais do que em semanas. Não hesite em descartar partes mal escritas e reconstruí-las.
- Use ferramentas para apoiar a atividade de desenvolvimento, mesmo que você tenha que construí-las e descartá-las quando estas não forem mais necessárias.
O curioso, entretanto, é que esta lista é uma adaptação de outra proposta na década de 70 sintetizando a filosofia de desenvolvimento do Unix.
Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface. – McIlroy
Filosofia do Unix
A Filosofia do Unix, proposta por Ken Thompson, é um conjunto de normas e abordagens para o desenvolvimento de software modular e minimalista. Ela é baseada na experiência dos principais desenvolvedores do Sistema operacional Unix. […]
A filosofia enfatiza importância da a simplicidade, clareza, economia e extensibilidade no código para que esse possa ser facilmente mantido e reutilizado por seus autores e outros interessados. A filosofia do Unix opta pela composição em lugar do design monolítico.
— Livremente adaptado da Wikipedia
[tweet]Boa parte dos “novos” princípios que regem o desenvolvimento de microsserviços, são apenas “releituras” de velhos princípios que orientam o desenvolvimento de software bom há décadas.[/tweet]