que - Buenos desafíos/tareas/ejercicios para aprender o mejorar las habilidades de programación orientada a objetos(OOP)
programacion orientada a objetos youtube (8)
¿Cuál es un buen desafío para mejorar tus habilidades en programación orientada a objetos?
La idea detrás de esta encuesta es proporcionar una idea de qué ejercicios son útiles para aprender OOP.
El desafío debe ser tan independiente del idioma como sea posible, ya que requiere poco o ningún uso de bibliotecas específicas, o solo las bibliotecas más comunes. Intente incluir solo un desafío por respuesta, de modo que un voto corresponda únicamente a los méritos de ese desafío. También sería bueno si se indica un nivel de habilidad requerida, y también la razón de por qué es un ejercicio útil.
Las soluciones a los desafíos podrían publicarse como respuestas a una pregunta de "Cómo ..." y enlazadas desde aquí.
Por ejemplo:
- Desafío: implementar una pila de último en entrar, primero en salir
- Nivel de habilidad - principiante
- Justificación: da experiencia sobre cómo hacer referencia a los objetos
Ciertamente, un buen desafío, aunque menos accesible que una asignación de "comenzar desde cero", es refactorizar algún código existente que no usa la herencia o que no usa mucho para hacer un mayor uso de la herencia. El proceso de refactorización expondrá muchos de los beneficios y errores de oop, como sin duda tiene para mí en mi proyecto más reciente. También me impulsó a comprender los conceptos mejor que los proyectos anteriores donde creé mis propios diseños orientados a objetos.
Desafío: escriba un contenedor para la API de su sitio web / servicio elegida en el idioma de su elección, que no exista (por ejemplo, un contenedor API de ZenDesk escrito en C #). Libere el envoltorio como fuente abierta para que otros lo usen.
Nivel de habilidad: Principiante a intermedio
Justificación: aprender a extrapolar una API de servicio web de terceros a un conjunto significativo de objetos / clases, facilitando la reutilización de esa API en el idioma que elija.
Después de haber aprendido los conceptos básicos, estudie el libro de patrones de diseño "Banda de los cuatro".
Este es un clásico, y una lectura obligada para cualquier codificador que quiera entender cómo usar OO para diseñar soluciones elegantes a problemas comunes de codificación.
Escribe un desafiante programa desde cero . Trate de que algunas personas (alrededor de cinco, eso debería ser factible) lo usen. Responda a sus solicitudes de cambio.
Adapte el diseño de su programa. Comience poco a poco, luego mírelo crecer. Administrar este crecimiento Esto es duro. También tendrás que corregir errores y mantener el problema a lo largo del tiempo, lo que para mí fue una lección muy valiosa.
He encontrado que las tarjetas CRC son bastante efectivas para aprender, enseñar y construir un buen diseño OO.
Tome una pieza de código escrita al estilo de procedimiento e intente transformarla en una solución basada en OOP. Durante el proceso, consulte un libro sobre refactorización y patrones de diseño. Un amigo mío fue capaz de dar un gran paso adelante en la comprensión de conceptos orientados a objetos exactamente de esta manera. Como con cualquier cosa, esto podría no funcionar para todos.
Una tarea determinada tiene muy poco que ver con ser "OOP", se trata más de cómo lo calificas.
Miraría el libro Refactoring, capítulo 3, y me aseguraré de que ninguno de los malos olores del código exista en la solución. O, lo que es más importante, repase los que se aplican.
Lo más importante es observar la existencia de setters y getters (lo que indica que está operando con valores de una clase y no pedirle a la clase que opere con sus propios valores) o usar "extends" sin aplicar el Principio de sustitución Liskov, cosas como ese.
Desarrollar habilidades en Object-Oriented Design es un libro gratuito que podría ser de utilidad. La descripción es la siguiente
"La intención de este libro es ayudar al diseñador principiante dándoles una secuencia de ejercicios interesantes y moderadamente complejos en el diseño OO. Este libro también puede ayudar a los gerentes a desarrollar un nivel de comodidad con el proceso de desarrollo de software OO. construir es un paso por encima de trivial, y requerirá un pensamiento y diseño cuidadoso. Además, debido a que las aplicaciones son en gran parte recreativas por naturaleza, son interesantes y atractivas. Este libro permite al lector explorar los procesos y artefactos del diseño OO antes de los plazos del proyecto hacer que un buen diseño parezca imposible ".