No Silver Bullet, de novo

A exploração dos conceitos de Frederick Brooks e a análise dos hypes contemporâneos destacam a incessante busca por uma bala de prata no desenvolvimento de software. Ele desafia a ideia de soluções mágicas, enfatizando a importância de mentes brilhantes. Ao investigar os hypes e abordagens em voga, reforçamos que a maturidade tecnológica surge da compreensão profunda e aplicação consciente de cada ferramenta. Nesse cenário, onde No-code, Low-code, Metaverso e Computação Quântica coexistem, a sabedoria está em discernir entre modismos e soluções duradouras, enquanto a busca pela excelência continua como uma jornada incremental, guiada por mentes excepcionais e princípios sólidos diante das marés da inovação tecnológica.

API HTTP, REST ou RESTFul

O post desvela não apenas uma metodologia técnica, mas uma visão filosófica sobre a construção de sistemas distribuídos. Os princípios fundamentais de transferência de estado, a linguagem universal do HTTP e a aplicação do conceito HATEOAS não apenas conectam sistemas, mas redefinem a própria essência da interconectividade digital. Além disso, o Modelo de Maturidade de Richardson oferece uma bússola, que embora questionável ela é didática, guiando as implementações.

O post desvela não apenas uma metodologia técnica, mas uma visão filosófica sobre a construção de sistemas distribuídos. Os princípios fundamentais de transferência de estado, a linguagem universal do HTTP e a aplicação do conceito HATEOAS não apenas conectam sistemas, mas redefinem a própria essência da interconectividade digital. Além disso, o Modelo de Maturidade de Richardson oferece uma bússola, que embora questionável ela é didática, guiando as implementações.

Porque você precisa saber HTTP

Então, o HTTP é a base da World Wide Web. Assim, desde suas origens simples na HTTP 0.9 até a complexidade robusta da HTTP 3, essa evolução trouxe inovações substanciais que impactaram a forma como interagimos e nos conectamos online. Desse modo, à medida que avançamos, é fundamental acompanhar essa evolução para compreender as tendências atuais e futuras na navegação na web. O protocolo HTTP, em sua jornada de evolução, continua a moldar o futuro do ambiente digital, proporcionando uma experiência web mais rápida, segura e eficiente para todos os usuários.

Fuja da otimização prematura

À medida que exploramos os meandros da otimização prematura, torna-se evidente que essa prática pode ser uma armadilha sutil que pode prejudicar mais do que beneficiar o desenvolvimento de software. Infelizmente nem sempre a vaidade dos desenvolvedores se atém a isso. O renomado cientista da computação Donald Knuth nos alerta que a otimização prematura é a raiz de todos os males, destacando a importância de evitar decisões precipitadas e buscar um entendimento completo dos requisitos do projeto.

À medida que exploramos os meandros da otimização prematura, torna-se evidente que essa prática pode ser uma armadilha sutil que pode prejudicar mais do que beneficiar o desenvolvimento de software. Infelizmente nem sempre a vaidade dos desenvolvedores se atém a isso. O renomado cientista da computação Donald Knuth nos alerta que a otimização prematura é a raiz de todos os males, destacando a importância de evitar decisões precipitadas e buscar um entendimento completo dos requisitos do projeto.

Core Web Vitals

Ter um site disponível para a internet sendo bem classificado pelo Google é para poucos. Para garantir essa proeza seguir as práticas de SEO (Search Engine Optimization) pode não ser o suficiente. O Google em 2020 lançou o conceito dos Core Web Vitals, que são conceitos associados a experiência do usuários (UX ou User Experience). Então, ficar no topo do Google já era difícil e após esses novos conceitos o desafio ganhou outra dimensão. Assim, o artigo Core Web Vitals vai te dar um panorama sobre o conceito e contexto bem como validar a qualidade do seu próprio site.

Ter um site disponível para a internet sendo bem classificado pelo Google é para poucos. Para garantir essa proeza seguir as práticas de SEO (Search Engine Optimization) pode não ser o suficiente. O Google em 2020 lançou o conceito dos Core Web Vitals, que são conceitos associados a experiência do usuários (UX ou User Experience). Então, ficar no topo do Google já era difícil e após esses novos conceitos o desafio ganhou outra dimensão. Assim, o artigo Core Web Vitals vai te dar um panorama sobre o conceito e contexto bem como validar a qualidade do seu próprio site.

Principais Conceitos de Python

Finalmente, no artigo Principais Conceitos de Python, apresentamos os principais conceitos de Python, abrangendo desde a criação de funções até a interação com APIs e bancos de dados. Então, com sua sintaxe clara e ecossistema robusto, Python se destaca como uma linguagem versátil e popular, sendo amplamente utilizada em diversas áreas da computação. Assim, ao dominar esses conceitos fundamentais, você estará preparado para explorar todo o potencial que Python oferece, permitindo que desenvolva soluções criativas e inovadoras para os desafios da programação. Continue praticando, aprendendo e aprimorando suas habilidades em Python, pois essa linguagem continuará a inspirar e impulsionar sua jornada no mundo da programação.

Finalmente, no artigo Principais Conceitos de Python, apresentamos os principais conceitos de Python, abrangendo desde a criação de funções até a interação com APIs e bancos de dados. Então, com sua sintaxe clara e ecossistema robusto, Python se destaca como uma linguagem versátil e popular, sendo amplamente utilizada em diversas áreas da computação. Assim, ao dominar esses conceitos fundamentais, você estará preparado para explorar todo o potencial que Python oferece, permitindo que desenvolva soluções criativas e inovadoras para os desafios da programação. Continue praticando, aprendendo e aprimorando suas habilidades em Python, pois essa linguagem continuará a inspirar e impulsionar sua jornada no mundo da programação.

Formatos de serialização para bigdata

O conceito de bigdata pressupõe a variedade dos tipos de dados. Temos imagens, vídeos, músicas, mas também temos postagens em redes sociais, e temos sistemas tradicionais com dados tabulares. Lidar com essa variedade exige formas diferentes. Os formatos Parquet, Orc e Avro têm especial destaque por serem binários, suportando escritas e leituras rápidas, mesmo com o dado bruto (ou quase). O artigo Formatos de serialização para bigdata fala sobre esses formatos e alguns outros e como eles podem ser utilizados.

O conceito de bigdata pressupõe a variedade dos tipos de dados. Temos imagens, vídeos, músicas, mas também temos postagens em redes sociais, e temos sistemas tradicionais com dados tabulares. Lidar com essa variedade exige formas diferentes. Os formatos Parquet, Orc e Avro têm especial destaque por serem binários, suportando escritas e leituras rápidas, mesmo com o dado bruto (ou quase). O artigo Formatos de serialização para bigdata fala sobre esses formatos e alguns outros e como eles podem ser utilizados.

Arquitetura Lambda e Arquitetura Kappa

Ambas as arquiteturas são capazes de lidar com dados massivos, volumosos etc. com características particulares. O uso da Lambda é o mais popular, mas que exige mais tecnologias envolvidas, tem uma manutenção mais difícil; ao contrário da Kappa que simplifica tudo, porém pode não ter o histórico dos dados. Como de costume, trata-se de analisar um caso em específico para saber qual arquitetura se parece mais adequada.

Ambas as arquiteturas são capazes de lidar com dados massivos, volumosos etc. com características particulares. O uso da Lambda é o mais popular, mas que exige mais tecnologias envolvidas, tem uma manutenção mais difícil; ao contrário da Kappa que simplifica tudo, porém pode não ter o histórico dos dados. Como de costume, trata-se de analisar um caso em específico para saber qual arquitetura se parece mais adequada.

Notification Pattern no DDD

O artigo Notification Pattern no DDD é interessante mas levanta algumas questões importantes sobre o design de código. Não é raro encontrar desenvolvedores defendendo que ele deveria ser utilizado para tudo eliminando o uso de exceptions. Por outro lado, há uma outra corrente que usa exceptions para todas as validações de negócio. Particularmente prefiro um caminho intermediário, utilizando as exceptions que interrompem o fluxo do código quando isso é fundamnetal, caso contrário entidades poderiam ficar não estáveis. Mas também utilizando o notification pattern para validações simples de entidades e quando há a construção de entidades complexas. Bom, o artigo mostrou exemplos e sobrevoou essa polêmica.

O artigo Notification Pattern no DDD é interessante mas levanta algumas questões importantes sobre o design de código. Não é raro encontrar desenvolvedores defendendo que ele deveria ser utilizado para tudo eliminando o uso de exceptions. Por outro lado, há uma outra corrente que usa exceptions para todas as validações de negócio. Particularmente prefiro um caminho intermediário, utilizando as exceptions que interrompem o fluxo do código quando isso é fundamnetal, caso contrário entidades poderiam ficar não estáveis. Mas também utilizando o notification pattern para validações simples de entidades e quando há a construção de entidades complexas. Bom, o artigo mostrou exemplos e sobrevoou essa polêmica.

Estrutura de camadas e Domain Driven Design

Estrutura de camadas e Domain Driven Design: mitos e fatos

Diferença entre Design System e Arquitetura

Esse é um debate interessante mas me parece que não deveria haver impasse. Na minha visão há também uma questão de tradução para português que nos atrapalha, mas isso também é um problema para os gringos. Design em vários cenários significa projeto e não desenho. Ou seja, design system é um conceito ligado à construção conceitual de um software, com princípios, práticas e afins. Para Eric Evans o Domain Driven é um Design, bem como o SOLID, por exemplo.