programming oriented objects concepts .net oop

.net - oriented - oop principles



¿La mejor forma de aprender las mejores prácticas de.NET/OOP? (8)

Soy relativamente nuevo en la programación .NET (y OOP en general) y quiero asegurarme de que no estoy desarrollando malos hábitos como principiante al diseñar mis aplicaciones.

Si estaba contratando un nuevo desarrollador de .NET y tenía que ponerlo al día con relativa rapidez, pero también quería asegurarse de que adoptara las mejores prácticas (por ejemplo, principio de responsabilidad única, pruebas unitarias, separación de preocupaciones), ¿cuál sería su recomendación? ¿ruta de aprendizaje?

He estado escuchando el podcast polimórfico últimamente y, si bien es útil escuchar la discusión sobre las mejores prácticas, estoy encontrando una falta de screencasts y ejemplos de código dirigidos a brindar una introducción a estas mejores prácticas.


Si te gustan los screencasts, echa un vistazo a Autumn of Agile . Todavía no hay muchos episodios, pero creo que cubrirá algunas de las mejores prácticas más importantes.

El plan del episodio se ve así:

  • Descripción general de los valores y las prácticas ágiles
  • Principios básicos de diseño de OO
  • Patrones de diseño en acción
  • Conceptos básicos de pruebas unitarias
  • Simulacros de objetos
  • TDD
  • Organización de archivo / carpeta de proyecto
  • Conceptos básicos de control de fuente
  • Automatización continua de integración / compilación
  • Principios de planificación de proyectos ágiles
  • Descripción general de Conceptos básicos de diseño impulsado por dominio

El autor de la serie también ha realizado la serie Summer of NHibernate , que ha sido bastante popular.

Además de eso, en dnr-tv Jean Paul Boodhoo ha realizado cinco episodios sobre patrones de diseño y dos sobre desarrollo impulsado por pruebas, recomendaría echar un vistazo a esos también.



Casualmente, estoy a la mitad de leer un libro de VB.net (publicado por Apress) que es bastante bueno.

Aunque hay una gran cantidad de excelentes tutoriales en la web, recomiendo comprar un libro, por lo general son mucho más profesionales en su enfoque.

¡Y por loco que parezca, me resulta mucho mejor NO sentarse en mi computadora mientras aprendo la programación! Siempre leo uno o dos capítulos, luego voy a mi computadora y lo hago de verdad.


Estoy ayudando a un amigo que está exactamente en la situación que mencionas. Él es un tipo HW que solía trabajar con C en el pasado.

Creo que el mejor enfoque es la tutoría y la codificación. Le explico algunos conceptos y luego le pido que programe algún código. Acabamos de construir una calculadora simple en múltiples plataformas (WCF, Silverlight, XNA, ...) y usando algunos patrones bien conocidos (estado, MVP ...).

Lo obligo a usar buenas prácticas de programación y refactorizar el código al preguntarle nuevas características basadas en sus errores. Por ejemplo, si acoplara un par de componentes como la Vista y el Controlador, le pediría una nueva vista ... esto obviamente lo hace reescribir un montón de código y se da cuenta de que hay mejores formas ...

De esta forma, él es el que viene con el desacoplamiento natural y, lo que es más importante, el "por qué es bueno". Estoy muy satisfecho con los resultados hasta el momento; él está muy contento con las pruebas unitarias y cómo le permite cambiar fácilmente el código para siempre.

La separación de inquietudes en mi humilde opinión y las pruebas unitarias se explican y entienden mejor al codificar y tener que implementar nuevas características; especialmente para nuevos programadores. Una vez que compra, le recomendaría leer " Patrones de diseño " por el GOF o algunos de sus variantes más simples .


Veo muchos buenos recursos aquí, pero la mayoría se centran en la lectura y el material de estudio. Si bien estos son definitivamente esenciales, me parece que realmente no hacen clic hasta que realmente he usado un patrón, un concepto heurístico o lo que sea, una o más veces.

Debido a esto, recomendaría la lectura, pero cuando te sientas al código, empiezas a trabajar con NUnit y practicar TDD (o BDD, etc.). Esto te ayudará a hacer dos cosas.

  1. Te presionará para desacoplar tus clases. Es difícil probar código con muchas dependencias. Si realmente quieres entrar y escribir pruebas, necesitarás desacoplar. Este es un buen lugar para comenzar a aplicar toda la lectura recomendada. :)

  2. TDD te ayudará a pensar cómo quieres interactuar con tu código incluso antes de escribirlo. Encuentro que pensar abstractamente en un diseño es diferente de codificar realmente la interfaz desde afuera, y el último es más útil para unir las piezas.


Creo que primero debes entender que ser un "buen" programador que entiende OOP y las mejores prácticas lleva tiempo y experiencia. No hay una combinación mágica de libros, blogs o capacitación para replicar el tiempo en las trincheras.

Mi consejo, basado en mi propia experiencia, es no preocuparse demasiado por no seguir las mejores prácticas y simplemente escribir código. Si eres nuevo en OOP o .NET, vas a hacer cosas tontas. Harás lo contrario de las "mejores prácticas" hasta que hayas cometido suficientes errores como para aprender de ellos.

La teoría del entrenamiento de especificidad establece que debe hacer específicamente aquello para lo que quiere mejorar. Esto significa escribir una gran cantidad de código para mejorar al escribir código.

Ahora, una vez que está escribiendo una gran cantidad de código sin miedo, tendrá que complementar con el conocimiento externo. En orden de importancia:

  1. Trabaja directamente con otras personas que tengan más experiencia que tú. Esta es la forma más rápida de ponerse al día.

  2. Lea otro código OOP .NET. ¡El código abierto es genial para esto! Estudíelo, extiéndalo, agregue características a un proyecto OSS incluso si nunca se compromete.

  3. Leer libros. Me refiero específicamente a los libros ... no a los blogs. Los libros tienen más espacio para expandirse sobre un tema y son mejores para las personas que realmente están empezando desde cero en un tema determinado. Recomiendo Code Complete como un excelente primer libro.

  4. Lea las ''redes. Esto incluye blogs, , etc.

¡Buena suerte!



Hay dos objetivos separados, aunque relacionados:

  • Para ser un buen desarrollador OO

y

  • Para ser un buen desarrollador de .NET

Ser excelente en este último requerirá ser al menos bueno en el primero, pero ambos requerirán un trabajo duro. No se quede encerrado en la mentalidad de Microsoft, ni siquiera en .NET, necesita familiarizarse con una amplia gama del campo.

Si tiene la flexibilidad para hacerlo, busque un trabajo o un equipo en el que una persona experimentada esté dispuesta a hacer una tutoría.

Luego, reconozca que necesitará leer mucho, tanto en línea como fuera de línea. Si su velocidad de lectura es promedio o inferior (alrededor de 250 palabras por minuto o menos), entonces debería considerar asistir a un curso de capacitación sobre técnicas de lectura. Hice un curso con Write Group (Nueva Zelanda) y tripliqué mi velocidad de lectura.

En términos de libros, Object Thinking de Microsoft Press sería un buen punto de partida; Seguiría eso con Programming .NET Components (Juval Lowy) y Smalltalk Best Practice patterns (Kent Beck), luego The Pragmatic Programmer (Hunt and Thomas).

Después de eso, rastree alrededor (en o en otro lugar) y encuentre listas de libros y blogs recomendados. Sigue leyendo: intenta leer un nuevo libro sobre un nuevo tema al menos cada dos meses, si no mensualmente.