System design: uma introdução
Este artigo é parte de uma série
Em minha caminhada como desenvolvedor, sempre fiquei fascinado em como sistemas, simples e complexos, que alimentam as tecnologias que consumimos e construímos em nosso dia a dia, são pensados. Arquitetar soluções que possam ser escaláveis, manuteníveis e confiáveis ao longo do tempo, não é tarefa fácil, além do software garantir retorno financeiro ao decorrer do tempo. Construir um software custa muito caro!
E nós, desenvolvedores, somos muito entusiasmados com novos projetos, em utilizar as tecnologias mais hypadas do mercado e rapidamente colocar a mão na massa antes mesmo de pensar em como toda a solução será integrada.
Com isso, o System design é uma disciplina fundamental para que um engenheiro e/ou arquiteto de software possa projetar estruturas de sistemas complexos considerando diversos fatores como escalabilidade, perfomance, segurança, de forma sustentável. Mas o que seria o System design?
System design é o processo de definição de arquitetura, componentes, módulos, interface e dados para atender os requisitos especificados. Em palavras resumidas, é o processo para a definição de uma arquitetura! Entretanto, não se engane, system design não é apenas o desenho arquitetural de um software. Essa metodologia nos apresenta uma gama de importâncias que pode nos oferecer, dentre elas, como pensarmos de forma diretiva na arquitetura que solucionará o desafio proposto, exploração de possíveis soluções e os trade off relacionados, nos oferece uma visão presente e futura da solução, além de exercitar nosso pensamento estratégico!
Recomendados pelo LinkedIn
Você deve estar se perguntando: "mas por onde posso começar?" Não se apavore, padawan! Existe alguns tópicos os quais seguimos para iniciar um system design. Chamamos de 6 elementos. São eles:
O System design é uma parte fundamental do desenvolvimento de software e desempenha um papel crucial na criação de soluções escaláveis e robustas. Ao considerar os princípios fundamentais do design de sistemas e os diferentes componentes de um sistema de software, os engenheiros /ou arquitetos de software podem criar sistemas que atendam às necessidades dos usuários finais e das empresas de forma eficaz e confiável.
No próximo artigo, iremos por a mão na massa projetar um sistema de apostas inserindo todas as informações minimamente importante para que a solução seja funcional! Até mais :)
Sugestões, criticas e debates, podem colocar abaixo :)
Turismóloga | Travel Tech | Viagens Corporativas | Turismo
10 mÓtima ideia esses artigos! É sempre bom compartilhar o conhecimento de maneira simples. Parabénsss! 👏🏾