[Desenvolupament] Catalanitzador (refactorings i estil del codi)

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.

Hola David, *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.
Totalment d'acord, qualsevol cosa que no vegis en aquesta àrea soluciona-ho si us plau. Si ho pots també documentar aquí: https://github.com/Softcatala/CatalanitzadorPerAWindows/blob/master/CODING_S...
*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.
Sí, endavant. Em semblen bé els canvis.
*Errors:*
- Al mètode WindowsLiveAction::GetDescription() hi ha un petit bug. Hauria de ser: *return _getStringFromResourceIDName(IDS_WINDOWSLIVE_DESCRIPTION, szDescription )*
Sí, és un error. Si pots solucionar això com a primer commit.
T'he donat permís, pots pujar coses directament. Jordi,
participants (2)
-
Jordi Mas
-
NoAntzWk