Lo primero: no te tomes al pie de la letra todas las tonterías de FxCop. Enseguida verás por qué.
Segundo: rebajas por Navidad. Sí, efectivamente, "algo" tiene que ver. Al exponer List<X>, por ejemplo, estás atándote demasiado. Es como decir que todas las peticiones de cursos se tramiten a través de la secretaria. Una cosa es decir "la secretaria", y otra "la secretaria rubia y pechugona". Cuando la rubia se harte de las condiciones de trabajo, vas a tener que rediseñar el código cliente.
Donde FxCop derrapa es en pedir que se usen clases más básicas, cuando debería pedir que, mientras sea posible, se utilice un tipo de interfaz. Eso se debe a la manía de Microsoft de considerar no versionables los tipos de interfaz... y a la contradicción en la que inmediatamente caen y sobre la que se revuelcan: como esta consideración hace demasiado rígidos los canales de comunicación entre módulos, ¡no usemos interfaces en los prototipos!
Es cierto que hay un problema: la única forma de ofrecer una lista genérica de sólo lectura es la clase ReadOnlyCollection.
2 Comments:
Hola Ian
Esta pildora tiene algo que ver con esta recomendación de FXCOP? Si no, podrías regalarme alguna explicación sobre esta advertencia de FXCOP?
http://msdn.microsoft.com/en-us/library/ms182142.aspx
Saludos
Lo primero: no te tomes al pie de la letra todas las tonterías de FxCop. Enseguida verás por qué.
Segundo: rebajas por Navidad. Sí, efectivamente, "algo" tiene que ver. Al exponer List<X>, por ejemplo, estás atándote demasiado. Es como decir que todas las peticiones de cursos se tramiten a través de la secretaria. Una cosa es decir "la secretaria", y otra "la secretaria rubia y pechugona". Cuando la rubia se harte de las condiciones de trabajo, vas a tener que rediseñar el código cliente.
Donde FxCop derrapa es en pedir que se usen clases más básicas, cuando debería pedir que, mientras sea posible, se utilice un tipo de interfaz. Eso se debe a la manía de Microsoft de considerar no versionables los tipos de interfaz... y a la contradicción en la que inmediatamente caen y sobre la que se revuelcan: como esta consideración hace demasiado rígidos los canales de comunicación entre módulos, ¡no usemos interfaces en los prototipos!
Es cierto que hay un problema: la única forma de ofrecer una lista genérica de sólo lectura es la clase ReadOnlyCollection.
Publicar un comentario
<< Home