Archivio

Posts Tagged ‘stylecop’

StyleCop for ReSharper

25 novembre 2008 Nessun commento

Ho da poco scoperto un fantastico plugin per ReSharper 4.1 che introduce il supporto alle rules di StyleCop si chiama StyleCop for ReSharper. Il plugin è disponibile come progetto presso l’ormai arcinoto CodePlex. Essendo un grandissimo fan di entrambi i tools non posso che essere entusiasta di questa cosa. Il progetto è ancora in una fase di sviluppo intensivo e nonostante questo molte funzionalità interessanti sono già disponibili. Per conto mio ho già provveduto a scaricare la versione preliminare. A breve magari qualche opinone.

Spunti interessanti con StyleCop e FxCop

22 ottobre 2008 Nessun commento

Ho iniziato da poco un progetto personale in c# per sperimentare una serie di metodologie. Tra le varie cose mi sono imposto di utilizzare due strumenti quali StyleCop e FxCop. Entrambi i tool della Microsoft prevedono una serie di regole di programmazione che vanno dalla documentazione al design del codice. Per un totale di circa 400 regole. Rispettarle tutte è davvero un’impresa ardua, ma i vantaggi sono enormi. Pulizia del codice, standard di scrittura, ottimizzazione delle prestazioni e tanto altro. Sia StyleCop che FxCop si integrano perfettamente in Visual Studio, ed è così possibile verificare in tempo reale le possibili violazioni di una delle regole scelte.

Sia con StyleCop che con FxCop è possibile scrivere, con estrema facilità, nuove regole (rules) custom in modo da espandere le potenzialità di questi due strumenti adattandoli alle nostre esigenze di progetto. Detto questo alcune delle regole che mi sono capitate di affrontare in questi giorni mi hanno lasciato da una parte perplesso e da un’altra stupito. Per esempio la regola CA1726: UsePreferredTerms, è una regola che prevede l’utilizzo di termini nuovi, rispetto a quelli più obsoleti, nei nomi dei membri e delle classi. E’ così che la mia simpatica classe Login non è gradita da StyleCop che mi suggerisce un più moderno termine come LogOn (tra l’altro rispettando il case). Davvero bizzarra come regola no?. Navigando sulla relativa pagina di descrizione della regola ci ritroviamo una tabella di nomi e termini obsoleti con i rispettivi termini moderni.

A parte questa regola le altre le ho trovate molto formative. Soprattutto le regole di StyleCop mi hanno aperto la strada verso un nuovo modo di scrivere codice e mi hanno fatto scoprire aspetti interessanti del framework. Per esempio la regola SA1200: UsingDirectivesMustBePlacedWithinNamespace, prevede che le direttive “using” (solo in c#) dovrebbero essere posizionate all’interno del namespace e non all’esterno come fanno ovviamente tutti e come anche visual studio propone nei suoi template. Perché? Ecco perché:

There are subtle differences between placing using directives within a namespace element, rather than outside of the namespace, including: 

1. Placing using-alias directives within the namespace eliminates compiler confusion between conflicting types. 
2. When multiple namespaces are defined within a single file, placing using directives within the namespace elements scopes references and aliases.

Interessante no? Per il momento le mie riflessioni terminano qui. Posso solo dire che questi due strumenti dovrebbero diventare un must per ogni programmatore che vuole creare codice robusto e di qualità, ma soprattutto standard!.