Características de um Arquiteto de Software

Quais são as características básicas que um bom arquiteto de software atualmente deve possuir? Resumidamente, temos 6 itens primordiais:

  • Se Comunicar  bem
  • Agir como Líder
  • Ser um desenvolvedor
  • Ter o foco no sistemas
  • Pensar como um empreendedor
  • Balancear estratégica com pensamento tático

wellroundedarchitect-1024x574-1

A partir de hoje estarei escrevendo gradativamente sobre cada um desses itens, criando uma série de posts a respeito do assunto. Te vejo por ai😉 !

“Que o Senhor os faça compreender melhor o amor de Deus por vocês e a firmeza que ele, Cristo, dá!”2 Tessalonicenses 3:5

Operações com Retry em Java

retryNa engenharia de software ágil que eu prático, existe uma regra simples que me salva de muitas dores de cabeça:

“O menos é mais!” 

Isso quer dizer que como regra, eu sempre tento ao máximo fazer ou criar uma solução mais simples possível. Nesse contexto, algumas soluções Java precisam de operações com”retry” automático. Antes de você concluir que precisa de um servidor de mensageria + persistência de filas como a maioria diz por ai, considere outras opções mais simples. Você pode se surpreender! Segue algumas estratégias de retry simples com Java:

“Respondeu-lhes Jesus: A obra de Deus é esta: que creiais naquele que por ele foi enviado.” João 6:29

Design Patterns – SourceMaking

abstract_factory_example1-2xNa engenharia de software, um padrão de projeto é uma solução repetível geral para um problema que ocorre comumente em design de software. Um padrão de design não é um projeto acabado que pode ser transformado diretamente em código. É uma descrição ou modelo de como resolver um problema que pode ser utilizada em muitas situações diferentes.

Confesso que mesmo lendo vários livros sobre esse assunto, foi nesse site chamado de sourcemaking que eu encontrei a melhor documentação, os melhores gráficos e explicações sobre design patterns. Leitura obrigatória para os projetistas e arquitetos de software! t+

“O Senhor não demora a fazer o que prometeu, como alguns pensam.” 2 Pedro 3:9

Desabafo Total

professor burroEu não costumo postar textos negativos e nem falar mal de “pessoas”, mas hoje eu vou sair da minha ética profissional e vou “chutar o pau da barraca”. Tenho passado por situações que eu realmente não entendo, como tem no mercado profissionais desinformados, usando tecnologia de forma totalmente errada. Segue os casos:

Usar SOAP para retornar uma String contendo um XML…

Como pode??? SOAP é um protocolo pesadíssimo com o objetivo de determinar e garantir um “contrato” de envio e recebimento de objetos no formato XML no qual faz parte do contrato o esquema e a validação do próprio envelope do objeto. Declarar um WSDL com retorno de String e colocar um XML la dentro só pode ser coisa de manézãooooo mesmo!! Não faz nenhum sentido isso!! Meu Deus do céu!!! Peguei + de 3 empresas grandes fazendo isso e ainda tiver que ler e transformar o xml via String!!

Usar MongoDB como se fosse relacional….

Tem gente copiando modelo relacional para dentro do MongoDB, usando referencia de ID’s em diferentes collections, criando processos compostos “transacionais” manuais, implementando roolback manuais e um trilhão de porcaria de código para suprimir as buscas com JOIN. Meu Deuuusss do céuuu!! Volta para o banco de dados relacional cabeçudooooo! MongoDB não foi feito para isso….La no mongo você desnormaliza os dados, cria uma única collection por transação e persiste somente 1 objeto único atômico com todos os seus agregados por transação de sistema. Você esta querendo economizar espaço? Pra que? Não ta usando um NoSQL para escalar horizontalmente? kkkkkkk…….É verdade que o mongo tem recursos para fazer joins entre collection, mas é para ser usada na exceção e não como regra.

Usar microservices para meia duzia de serviços…

Microservice não é uma coisa boa! Microservice é uma coisa ruim! Microservice é como se fosse uma última atitude arquitetural desesperada para tentar arrumar e organizar uma solução monolítica que chegou ao caos por ser muito grande e complexa de gerenciar. A introdução dessa arquitetura em si já gera muitos problemas e contornos que se forem aplicadas para soluções sem perfil acabam só estragando ao invés de melhorar. Para de abelhuuudarrrrr !! Fazer soluções pequenas usando microservices vai mais gerar problemas que o próprio contexto de negócio da solução!  Arquitetura monolítica sempre sera para 90% dos casos….

Ufa…agora estou mais leve! E desde já, me perdoem pelo desabafo….

Livro Building Maintainable Software – Java Edition

lrgVocê já se sentiu frustrado, quando trabalhou com código de outra pessoa? O código fonte de uma solução é difícil de manter e é o grande problema no desenvolvimento de software de hoje, levando a atrasos onerosos e defeitos constantes. Seja parte da solução! Veja neste livro: Building Maintainable Software, Java Edition 10 diretrizes a ser seguidas para a entrega de um software Java que seja fácil de manter e adaptar-se. Estas orientações foram derivadas da análise de centenas de sistemas do mundo real.

Para você que deseja realmente aprender tais conceitos, veja nosso curso de Introdução a Arquitetura de Software que cobre os mesmos princípios arquiteturais.

“Procurem ter paz com todos e se esforcem para viver uma vida completamente dedicada ao Senhor, pois sem isso ninguém o verá.” Hebreus 12:14

SourceMaking – Um site muito informativo e divertido

Sem título“Eu sou o SourceMaking. Vou contar-lhes muitas histórias sobre boa arquitetura de software e ensiná-lo a usar bons padrões de design. Vou guiá-lo através de anti-padrões, armadilhas e erros comuns que as pessoas fazem quando planejam, criam e gerenciam projetos de software. No final, eu vou ensiná-lo a sentir cheiro de código ruim e melhorá-lo com refatoração.”

Dias atras eu acabei descobrindo esse site https://sourcemaking.com que ensina de forma muito didática e divertida a respeito de padrões de projeto e anti- patterns em geral. De todos os livros que eu já li, esse site incrivelmente foi a que fez explicações e imagens altamente fáceis, didáticas e intuitivas a respeito de todos esses assuntos. Leitura obrigatória para todos os arquitetos de plantão! Um ótimo final de semana😉 .

“Mas o Senhor Jesus é fiel. Ele lhes dará forças e os livrará do Maligno.” 2 Tessalonicenses 3:3