A definição mais simplória de microservices seria a de uma abordagem para desenvolvimento de aplicações compostas por uma série de pequenos serviços. Ao pensar rapidamente sobre essa descrição, a arquitetura SOA ressurge na mente como uma arquitetura intimamente ligada a abordagem de microservices. De fato, microservices é uma evolução do pensamento orientado a serviço tradicional…
Category: Metodologias
Modelagem ágil com AMDD
A revista Engenharia de Software magazine deste mês traz um artigo meu sobre agilidade na modelagem arquitetural. A AMDD pode desempenhar um papel fundamental para melhorar o cenário atual de produtividade no desenvolvimento e na manutenção do software. Esse artigo é útil, uma vez que a AMDD possibilita, durante a implementação do software, além de…
Arquitetura de software com tempo de expiração e modularidade
Provavelmente você já deve ter ouvido muitas vezes que a solução para algum sistema, cuja manutenção tenha se tornado um grande problema, é jogar toda a base de código no lixo e reescrever tudo de novo, repensando e reformulando sua arquitetura. Martin Fowler escreveu recentemente sobre isso em seu blog, num post intitulado “Sacrificial Architecture”…
DevOps: Estudo de caso sobre erros de build no Google
O build do código é uma fase muito importante no desenvolvimento de software, sem o build não há executável, ou seja, o processo de build é primordial para obter um software funcional. O processo de build (ou compilação dos fontes), parece uma tarefa trivial, mas é, na verdade, um processo bastante complexo. Esse processo consiste…
Software Intelligence: ferramentas e técnicas para a qualidade de software
Software Intelligence é mais um termo recente no mundo da engenharia de software. Apesar de ser um termo recente, ele se refere a práticas aplicadas desde que os softwares começaram a ser desenvolvidos, embora neste momento o refinamento de Software Intelligence seja bem maior do que no passado. O termo vem ganhando alguma popularidade com…
Kata e TDD: um exemplo prático
Nas artes marciais, um kata é um conjunto preciso de movimentos que simula um lado de um combate. O bjetivo de um kata é atingir a perfeição, é treinar a mente e o corpo para agir em uma situação real particular, de forma que os movimentos perfeitos se tornem automáticos e esteja a disposição quando…
Conciliando arquitetura com agilidade
Arquitetura de Software A arquitetura de software é uma subárea da engenharia de software, é uma ponte entre os requisitos e o código (implementação). Quando a arquitetura de software é bem implementada, o resultado é um software que satisfaz as principais exigências do projeto, tais como desempenho, confiabilidade, portabilidade, etc. É a arquitetura de software…