Decisões de arquitetura de software fazem parte do dia-a-dia de todo desenvolvedor. Tais decisões são estratégicas para que os requisitos não-funcionais de um sistema sejam bem atendidos como performance, escalabilidade, segurança, entre outros. Nesta apresentação serão discutidos conceitos básicos de arquitetura de software como camadas (layers e tiers) e as diferentes abordagens adotadas para se dividir as responsabilidades, como acesso a dados, regras de negócios e apresentação em diferentes blocos interdependentes. Discutiremos também conceitos de concorrência e como lidar com problemas como deadlock e leitura inconsistente.

Clique e assista ao vídeo!