.:: blog de exprimare libera – IT, politica, economie si altele ::.
Cand eram mic credeam ca voi termina de invatat undeva in jurul varstei de 21, 22 de ani. Fuck that. It didn’t happen. De ieri am invatat o lectie enorma in PHP: think motha’ fucki’ SIMPLE. Despre ce este vorba? Pai: de sistemul de multilanguage implementat in RA.
Care e faza. Pai, mai ieri, creearea unui modul nou, presupunea definirea constantelor, intr-un fisier intr-un director de tip en_GB care specifica limba in care functioneaza aplicatia. Eh. Desi am avut acum 2 ani intentia de a folosii o super-globala $_T drept Array pentru traduceri, m-am temut de lovituri de performanta odata ce ar creste.
Unii mi-ar recomanda sa folosesc GetText din PHP, altii alte sisteme de multilanguage. Am descoperit insa ca metoda KISS (Keep It Simple, Stupid) e cea mai buna. De ce?! Pentru ca PHP suporta array-key-uri chiar si de 256MB (tested!) – iar look-up este instant.
Asta permite ca, pentru o functie de forma _T (‘Asta e un text de tradus’) – sa se poata realiza o traducere de tip $objT['Asta e un text de tradus'] = ‘This is a text to be translated’; intr-o superglobala ce ar detine toate textele necesare traducerii, fara nevoia de a mai definii constante.
Pe langa purul impact de performanta prin nepoluarea spatiului de constante, revine un avantaj si in viteza de programare. In 3 ore (de fapt de la 11:30, pana la 14:00) am modificat tot modulul de Articole din RA sa suporte aceasta schema de traducere. A durat putin, avand in vedere cele 4000 de linii de cod cat are si atentia cu care trebuia modificat.
Cred ca ceea ce numim refactoring (deoarece aceasta a fost un proces de refactoring) – e ceea ce ne permite noua programatorilor sa pierdem cateva ore dar sa devenim mai productivi in timp. Pare-se ca de Sarbatori muncesc si invat lucruri noi :) … La Multi Ani tuturor si-un 2010 numai cu realizari!
Leave a reply