
Hola a tots/es, Aquest és el primer missatge que escric a la llista. En Jordi em va comentar el tema del projecte del Catalanitzador i que si tenia ganes i temps hi havien força coses a fer. Bé he començat a fer algunes refactoritzacions i volia comentar alguns aspectes tant en l'estil de codificació com en les refactoritzacions del codi. *Estil de codificació:* - Declarar les constants i les macros al principi del .cpp i no intercalat entre les definicions dels mètodes. - Inicialitzar tots els arrays *char* o *wchar_t* a 0 (per exemple, *char ** szText[1024] = {0};*). En *debug *el compilador ja ho fa però en * release* no i aquesta és una font comú d'errors. *Refactorització wchar_t:* - En les classes derivades de *Action *no s'inicialitza *szName *i *szDescription *fins que es truca als mètodes *GetName*() i *GetDescription*(). És per alguna cosa en concret? Si el valor pot canviar dinàmicament d'acord té sentit, però si el seu valor és invariant durant la vida del objecte té més sentit inicialitzar-ho en el constructor de cada classe derivada. Més encara el *GetName*() i *GetDescription*() es podrien implementar a la classe base sense declarar-los com virtuals purs (Self Encapsulate Field pattern) i que cada classe derivada inicialitzi al constructor el valor que necessiti. D'aquesta manera també simplifiques la implementació de les classes derivades de *Action*, ja que no cal implementar aquests dos mètodes virtuals. *Errors:* - Al mètode WindowsLiveAction::GetDescription() hi ha un petit bug. Hauria de ser: *return _getStringFromResourceIDName(IDS_WINDOWSLIVE_DESCRIPTION, szDescription); * Salut. -- David.