Sérgio Lopes Sakabatō, the reversed blog!

Quando as más decisões nos vêm morder os calos!13 Dec 2008

Sempre me considerei uma pessoa Para os que não sabem, iniciei recentemente um estágio profissional, remunerado :), que me colocou em contacto com um projecto desenvolvido em no Joomla!. O projecto pretende gerir as formações, dadas por empresas de formação certificadas, e começou por ser algo pequeno e virado para os usos pessoais da empresa para a qual trabalho.Portanto, dado que foi até o projecto de apenas uma pessoa, e que tinha um objectivo muito limitado e subvalorizado, existem várias opções que foram tomadas inicialmente e que neste momento me estão, sim a mim que estou a trabalhar naquilo, a trazer mais problemas que soluções.

Depois de cerca de duas semanas de trabalho é notório como optimizações de BD nos causam agora demasiados problemas, especialmente porque o processo de Bolonha não mexeu apenas com as universidades mas com todo o tipo de ensino, onde as formações se incluem, e muito do sistema não estava preparado para mudança. Se a isso acrescentarmos código sem documentação, feito por várias pessoas que até há bem pouco tempo não tinham qualquer sistema de controlo de versões, podem imaginar o caos no qual, as cerca de 5 centenas de ficheiros de código e as 200 tabelas, se encontram.

Neste momento luto por concluir algumas funcionalidades base que são necessárias mas a minha maior dificuldade não é o código, ou a linguagem, ou até o que está por trás, neste caso o Joomla!, mas sim as decisões de se criar a tabela desnormalizada, de se criarem funções aqui e ali sem comentários, de se misturar regras de codificação, de se decidir que seria melhor poupar alguns milisegundos que criar duas tabelas e fazer uma query mais pesada.

Convenhamos, o utilizador não vai pensar nesses milisegundos que o sistema lhe toma, e para as actulizações que o sistema necessita, como todos os sistemas, seriam mais fáceis se se tivessem seguido as regras que foram ensinadas na universidade!

Assim, deixo uma recomendação a todos os que ainda pensam que a teoria nada tem a ver com a prática, que as optimizações e “maravilhas” de código que escrevem e que poupam 3 milisegundos ao carregamento da página e que quebram todas as regras de boas práticas porque agora não estão a ser avaliados por um daqueles professores que só implicam: essas regras existem porque são importantes, usem e abusem delas, porque um dia aquilo que escolhem fazer voltará para vos assombrar!

P.S.: Para os que pensam já em comentar que optimizações são boas, desnormalização existe e é importante, deixem que esclareça que uso de tudo isso, mas q.b. e quando tenho provas que se justifica, e isso só se obtém com a aplicação pronta a funcionar e em avaliação onde se aplicam boas práticas de profilling! Qualquer outra “melhoria” tirada da cabeça é meio caminho andado para o desastre, claro podem não ser voçês a ter de resolver o problema e nesse caso, por quem sois, fazei como melhor entenderdes.