Hola a tots/es,<div><br></div><div>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.</div>

<div><br></div><div><u>Estil de codificació:</u></div><div><ul><li><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">Declarar les constants i les macros al principi del .cpp i no intercalat entre</span><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"> les definicions dels mètodes.</span></li>

<li><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">Inicialitzar tots els arrays <i>char</i> o <i>wchar_t</i> a 0 (per exemple, <i>char</i></span><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><i> szText[1024] = {0};</i>). En <i>debug </i>el compilador ja ho fa però en </span><span style="background-color:rgb(255,255,255);color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px"><i>release</i> no i aquesta és una font comú d'errors.</span></li>

</ul></div><div><br></div><div><u>Refactorització wchar_t:</u></div><div><ul><li><span style="background-color:rgb(255,255,255);color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px">En les classes derivades de <i>Action </i>no s'inicialitza <i>szName </i>i <i>szDescription </i>fins que es truca als mètodes <i>GetName</i>() i <i>GetDescription</i>(). É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 <i>GetName</i>() i <i>GetDescription</i>() 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 <i>Action</i>, ja que no cal implementar aquests dos mètodes virtuals.</span></li>

</ul></div><div><u>Errors:</u></div><div><ul><li><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">Al mètode WindowsLiveAction::</span><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">GetDescription() hi ha un petit bug. Hauria de ser: </span><i style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">return _getStringFromResourceIDName(IDS_WINDOWSLIVE_DESCRIPTION, <b>szDescription</b>);</i></li>

</ul></div><div><br></div><div>Salut.</div><div><br><div>--</div><div>David.</div><br>
</div>