2009-12-22 22 views
10

He estado programando en Java durante los últimos 2 años y ahora quiero entrar en Diseño de aplicaciones. Hasta ahora solo estoy en la codificación, es decir; Me dieron el documento de diseño/diagrama de clases, etc. y me pidieron que codificara. Ahora quiero aprender a diseñar, es decir, quiero apoyarme cuando una clase debe ser una interfaz, no una clase concreta, proponer un diseño dado los requisitos, las técnicas de diseño y todos los demás aspectos de la designación.Cómo aprender a diseñar aplicaciones en Java

Para conocer todos estos podría sugerir que Plese cualquier serie de artículos/libros, etc.

he tratado de leer los patrones de diseño De cabeza, pero a pesar de que soy capaz de captar unos patrones de diseño, todavía no soy capaz de pasar a las aplicaciones de diseño por mi cuenta.

Por favor ayuda.

+0

Hola .... Usted es nuevo por lo que sólo una sugerencia ... Si le gustó cualquier respuesta, por favor no se olvide de aceptarla. Anima a otros a responderle. Solo marca la "marca de verificación" debajo de la respuesta que más te ha gustado. :-) – Rites

Respuesta

11

Los patrones de diseño son ejemplos bastante avanzados de características de diseño basadas en principios fundamentales como la separación de preocupaciones, la coherencia y la extensibilidad. Si se encuentra en la etapa de preguntarse sobre Interfaces y clases, puede que necesite leer algo sobre las ideas fundamentales de OO. Por ejemplo, lea acerca de los principios SOLID. Así que no me gustaría comprar un libro, comenzaría en ese artículo y seguiría los enlaces y los mensajes de allí.

Entonces, la lectura no es suficiente, tiene que hacer.

La próxima vez que obtenga una especificación, estudiela. Comprenda el problema que se está resolviendo, luego váyase a casa y diseñe usted mismo. Compare su intento con la especificación. O considere alternativas a la especificación que se le da, suponga que no tiene una interfaz aquí, o una fábrica allí ¿por qué sería esto importante?

Idealmente, su crecimiento estaría habilitado si sus líderes comenzaran a darle problemas menos específicos y le permitiera diseñarlos. Las presiones del proyecto pueden evitar eso. En cuyo caso, creo que debes trabajar en tu propio tiempo. Elija algunos proyectos pequeños y trabaje en ellos. Esto puede ser difícil a menos que tenga mentores, pero creo que leer sin hacerlo no lo hará avanzar tan rápido.

+1

+1 para proponer la comprensión de las especificaciones existentes a través de experimentos de pensamiento. Y no lo olvide, si considera una opción por un tiempo y no puede ver por qué se hizo así, * debería * poder preguntarle a su (s) colega (s) al respecto. Siempre y cuando no los molestes cada hora más o menos, y puedan ver que estás tratando de aprender, estoy seguro de que estarán encantados de ayudarte a comprender. –

0

La única manera de mejorar es leer patrones de diseño, probar cosas, aprender de los errores y obtener consejos de personas que ya tienen algo de esta experiencia. Otra cosa es que debes saber cuándo no usar patrones también. algunas veces pasamos por alto por patrones de diseño y arruina el proyecto.

2

Para el inicio probar esto:

  1. leer un párrafo sobre 1 patrón de diseño (como se enumeran en el libro).
  2. Trate de entender el problema que resuelve.
  3. Imagina alguna tarea con este problema.
  4. Codifíquelo.
  5. Dibuje un diagrama de clase de su programa en un papel (sin herramientas automatizadas).

Un patrón por día será una muy buena velocidad.

0

Estoy de acuerdo con Ben, y me gustaría agregar mis 2 bobs vale la pena ...

El diseño es un arte, y al igual que la pintura no proviene de los libros, viene del interior.

Conceptos como patrones de diseño no son el alfa y el omega del diseño, son parte del conjunto de herramientas utilizado para crear un diseño. Los patrones de diseño en particular nos dan un vocabulario para describir los enfoques para resolver algunos problemas comunes. Sin embargo, identificando los problemas a resolver es parte del arte de crear un diseño a partir de los requisitos.

Eche un vistazo a los requisitos que se relacionan con los documentos de diseño que recibe para codificar. Piense en la forma en que los diseñadores han dividido los requisitos en una serie de problemas finitos para resolver.

Y, por supuesto, no tema preguntarle a sus diseñadores sobre su enfoque.

3

Puede leer Effective Java por Josh Bloch.

Los patrones de diseño son buenos, definitivamente lee sobre ellos, pero saber cuándo usarlos es la verdadera habilidad. En general, necesitas ensuciarte las manos.

Un codificador mediocre se le dará una tarea, golpee el teclado hasta que tengan algo que funcione, y continúe. Ocasionalmente, solo hacer que funcione algo es lo correcto, pero a menudo un programador como este deja una franja de código horrible a su paso.

Puede aprender mucho de adoptar un enfoque más académico. Escribe un código, hazlo funcionar y luego mejora. Vuelve a escribir desde cero reutilizando lo que has aprendido al escribirlo la primera vez. Dedique tiempo extra a ver qué puede mejorar con respecto a todos los aspectos del código: velocidad, memoria, algoritmos, patrones de diseño e incluso su estilo de codificación.

0

La mejor manera de aprender algo es aprender haciendo y aprendiendo de otros proyectos del mundo real.

Diseñar patrones de diseño es esencial para diseñar buenas aplicaciones, pero eso solo no será suficiente. Además de libros/lectura/ejemplos, recomiendo pasar por el diseño de las aplicaciones existentes. Elija un proyecto de código abierto: explore, experimente y contribuya al proyecto. Mientras contribuye, aprenda sobre los principios y métodos de diseño utilizados en el proyecto. No tengas miedo de probar varios proyectos hasta que encuentres el "uno" que más te emocione.

Por supuesto inicialmente tendrá conocimientos teóricos, para empezar, por lo que recomiendo el siguiente libro:

  • La aplicación de UML & Patrones por Larman
0

el diseño de aplicaciones requiere un poco de práctica, pero que no debería impedirte intentarlo. Después de un tiempo, lo entenderás;

Consejo: intente aprender de sus colegas. Permítales que le muestren cómo diseñan aplicaciones, qué proceso siguen, cómo identifican problemas y utilizan patrones para resolverlos. A veces es mejor ver cómo funciona el proceso de diseño en lugar de tratar de aprenderlo solo.

mis 50 centavos de buenos recursos:

  1. SourceMaking Design Patterns

  2. Video course on design patterns

Cuestiones relacionadas