De cateva zile – cam multe – muncesc la implementarea unor noi facilitati intr-o aplicatie pe care am scris-o in urma cu ~2 ani pentru un client de-al meu. In urma cu 2 ani mi s-a cerut o aplicatie, un plug-in pentru outlook, care consta intr-o fereastra atasata de fereastra composer. Timpul de programare era destul de scurt, cam 200 de ore, iar cerintele… ceva care sa faca asta, asta si asta!
Ca sa nu mai lungesc vorba, am scris respectiva aplicatie, dupa indicatii. La aproape 2 ani ma suna clientul meu si imi spune ca a gasit un cumparator pentru aplicatia scrisa de mine in alta tzara si ca are nevoie de multilanguage, rapid, implementat in plug-in-ul respectiv. Si, ca daca tot fac multilanguage, sa scot si toata grafica in fisiere externe (Themes), astfel incat sa poata personaliza si mai bine, in functie de clientul lui, aplicatia.
Intre timp diversi programatori, angajati ai celui care mi-a comandat aplicatia au modificat codul scris de mine, adaptand-ul sau corectandu-l. In final a iesit (e produs functional) un fel de ciulama, cod scris de 3 persoane, pe rand. Si eu acum il modific pentru a-l face multiLanguage si multiTheme.
De ce scriu despre asta: pentru a da un sfat oricui se apuca de facut orice aplicatie, oricat de mica sau de stufoasa. Inainte de a scrie cod, alocati cateva ore bune (10-20) pentur a gandi in detaliu ceea ce faceti. Modularizati tot ce se poate modulariza – stiu ca in teorie asta face orice programator, insa in practica se trece cu vederea.
Doua “module” sunt necesare a fi gandite separat: textele si grafica aplicatiei. Nu e deloc greu si salveaza, in eventualitatea unor extensii viitoare, o groaza de timp.
Cum se face “externalizarea” limbii folosite de aplicatie? Exista mai multe cai, una dintre ele este folosirea unui fisier xml (sau dll, zip etc). La fel si pentru Themes. Nu folositi application resources pentru a stoca imaginile. Munca depusa in plus e minima, insa codul devine mai organizat.