Estamos preparando nossos programadores para serem tão orientados a dados quanto são a objetos? Eles estão sendo equipados com o conhecimento necessário para projetar sistemas que não apenas funcionem bem, mas que também sejam fontes ricas e acessíveis de insights analíticos?
Estamos preparando nossos programadores para serem tão orientados a dados quanto são a objetos? Eles estão sendo equipados com o conhecimento necessário para projetar sistemas que não apenas funcionem bem, mas que também sejam fontes ricas e acessíveis de insights analíticos?
Acredito que este não seja o pensamento correto. Na minha experiência como desenvolvedor, vivencio APIs que começam razoavelmente bem, mas que com o passar do tempo se tornam aberrações.
O que ocorre muitas vezes é que a API começa com apenas alguns campos e depois aumenta em escopo não planejado. No entanto, as equipes frequentemente não têm os incentivos corretos para refatorar o código – estão sempre lidando com prazos apertados, a liderança não enxerga benefícios na refatoração da API, os desenvolvedores não são firmes o suficiente para insistir na melhoria da API, há a falácia do custo afundado (sunk cost fallacy), e o medo de que, se alterarem a API, os clientes da API poderão enfrentar problemas, entre outros.
Com o tempo, as APIs acabam se tornando cada vez piores e mais difíceis de serem refatoradas.