Farò per l'ennesima volta il pignolo (Uuuhhh...) ma ieri sul treno leggo il post di Brad Abrams "On Designing Good Libraries" dove nella sezione "Naming Patterns" trovo:
"Abbreviations of more than 2 letters are cased as words, otherwise ALLUPPER (IO vs. Html)"
e oggi incontro nel Framework un sacco di classi che non rispettano questo pattern - solo se ci limitiamo al namespace System.Security.Cryptography guardate quante sono:
CryptoAPITransform, DES, DESCryptoServiceProvider, DSA, DSACryptoServiceProvider, DSASignatureDeformatter, DSASignatureFormatter, HMACSHA1, MACTripleDES, PKCS1MaskGenerationMethod, RNGCryptoServiceProvider, RSA, RSACryptoServiceProvider, RSAOAEPKeyExchangeDeformatter, RSAOAEPKeyExchangeFormatter, RSAPKCS1KeyExchangeDeformatter, RSAPKCS1KeyExchangeFormatter, RSAPKCS1SignatureDeformatter, RSAPKCS1SignatureFormatter, SHA1, SHA1CryptoServiceProvider, SHA1Managed, SHA256, SHA256Managed, SHA384, SHA384Managed, SHA512, SHA512Managed, TripleDES, TripleDESCryptoServiceProvider, DSAParameters, RSAParameters.
Viva l'IntelliSense!!! :-)
Se non vi piace Brad Abrams (difficile...) leggiamo le "Naming Guidelines" ufficiali (la sezione "Abbreviations"):
"When using acronyms, use Pascal case or camel case for acronyms more than two characters long. For example, use HtmlButton or htmlButton".
Pensate che mi fermo qua con la pignoleria? Brad Abrams parla di abbreviazioni ma tratta di acronimi... :-)
A proposito di linee guida, sapevate che l'FxCop viene con un SDK (documentato!)? Questa roba con i naming patterns potrebbe benissimo fare da "Hello World!" per iniziare a scrivere custom rules.
Un altro articolo :-)