¿Cuáles son las principales prácticas y patrones de diseño que todo tipo .NET debe conocer? [cerrado]

16

En mi breve tiempo como programador profesional, he visto muchas aplicaciones escritas por programadores cuya educación entera parece haber estado leyendo los primeros capítulos de un libro de .NET 2.0.

¡Diablos cuando comencé, escribí la mayoría de esas aplicaciones!

¿Cuáles son los patrones de diseño más importantes para escribir aplicaciones .NET IMPRESIONANTES?

¡Por asombroso me refiero al interior también!

Daniel Upton
fuente
Ninguno es crucial.
kirk.burleson

Respuestas:

22

Primero: conozca bien sus herramientas básicas

  1. Conozca el modelo de evento ASP.Net. Te meterás en un lío si no lo haces.

  2. Comprender la mecánica de OO. Un sorprendente número de programadores .Net relativamente experimentados todavía parece pensar que es 1972.

  3. Comienza a leer Code Complete.

Segundo: aprender a separar las preocupaciones

El delito de diseño más común que veo en el desarrollo de ASP.Net es rellenar toda la lógica empresarial en el código subyacente. Sé que todos los ejemplos de Microsoft lo hacen de esa manera. Sé que está justificado en aplicaciones pequeñas. Y sé que a veces lo hago así. Pero realmente, es un mal diseño, y es mi mascota el odio de la semana.

Tercero: aprende todo lo demás sobre diseño

La mayor parte del código .Net de baja calidad que veo es el resultado de un diseño OO deficiente. Por lo tanto, recomendaría una buena comprensión de:

  • Principios sólidos
  • Patrones de diseño de GoF
  • MVC (para ASP.Net MVC)

Cuarto: conozca más herramientas

¿Sabes cómo Microsoft facilita las cosas al proporcionar muchas herramientas listas para usar? Bueno, tarde o temprano vas a alcanzar sus limitaciones. Cuando lo haga, tendrá que doblarlos a su voluntad o rodar los suyos. De cualquier manera, tendrás que ensuciarte con algunos CSS y Javascript.

Finalmente

Una vez que hayas hecho todo eso, estarás en camino a lo increíble.

[Editar: Se corrigió la secuencia para aprender este sutff. Aparentemente no pude contar ayer ...]

Kramii
fuente
"Cuando lo hagas, tendrás que doblarlos a tu voluntad o rodar los tuyos" O usar algo de código abierto. +1, sin embargo, buena respuesta
pdr
Gracias ... Respuesta realmente increíble :-) pero, ¿qué es todo este rumor sobre mvvm, ioc, mvp, repositorios, fábricas ... Inserte cualquier otra palabra de moda aquí ... ¿cuál es el enfoque actual de "Microsoft bendito" para crear aplicaciones web?
Daniel Upton
3
MVVM: (actualmente) un patrón de diseño muy específico para PMA / Silverlight. MVP: un patrón similar al MVC, con algunas diferencias en las interacciones entre clases / capas. Repositorios / fábricas / COI: deben estar cubiertos en su lectura para "Tercero" anterior, se refieren a la separación de preocupaciones, el principio SECO y el diseño comprobable. Enfoque "bendecido por Microsoft": depende de cuáles sean sus necesidades. La tendencia actual parece ser definitivamente MVC3, que va un largo camino que permite "bueno" de diseño con mucho menos ruido, con fácil COI / DI, controladores, etc. comprobables
mjhilton
3
@Daniel Ciertamente hay muchas palabras de moda. Lo más importante que puede hacer es aprender cuáles son y qué tipos de problemas pueden ayudarlo a resolver. No se deje atrapar en la trampa de encajar toda su aplicación en un conjunto de patrones de diseño que no agrega valor en el área de mantenimiento, o peor aún, es difícil de entender (a veces tanto que no puede recordar qué es algo hace 6 meses después de que lo escribiste). Deje que los patrones aplicables lo ayuden a simplificar los problemas complejos.
Michael Dean
1
@Daniel: Realmente no me preocuparía demasiado por los enfoques de "Microsoft bendijo". Un buen diseño es un buen diseño, sin importar quién lo bendiga. De hecho, Microsoft suele ponerse al día en esta área (por ejemplo, ASP.Net MVC como respuesta a otros marcos MVC). Dicho esto, debe estar al tanto de la tecnología Micosoft . Se sabe que los grandes diseños fallan porque no se adaptan al conjunto de herramientas disponible.
Kramii
0

La variedad de puntos mencionados por Kramii vale la pena, pero me gustaría enfatizar la mención de trabajar con los principios SÓLIDOS. Tener una buena comprensión de estos hará una gran diferencia, y muchos de los patrones de GoF, etc., comenzarán a caer de manera más natural. Gran parte de estas cosas terminan por separar sus preocupaciones y administrar sus dependencias, así que comience en la fuente y todo lo demás tendrá sentido.

Si eres como yo antes de mi reciente curso de codificación OO con JP Boodhoo, ¡el principio de responsabilidad única significa mucho más de lo que piensas! Realmente vale la pena entender cuán pequeña puede ser una clase cuando te apegas a esto bien.

eviltobz
fuente