2009-08-21 6 views
18

Je fais des recherches sur le web depuis un certain temps maintenant. Je suis à la recherche de petits exemples d'exercices pour la pratique OOD (& pour certains ateliers internes TDD).
S'il y a un seul endroit où ce besoin est servi, s'il vous plaît me pointez dessus .. et fermer cette questionOOD/OOP Etudes/Exercices de code

Contraintes:

  1. monde réel agnostique Langue problème
  2. Petit: Quelque chose qui prend une heure à deux à max pour résoudre (ou a des sous-parties qui peuvent s'adapter à cette contrainte).
  3. Non Algorithme centré: Ne pas se concentrer uniquement sur la résolution d'une tâche de calcul. (Il existe plusieurs sites qui desservent cette catégorie.) Impliquez> 2 entités en interaction.
  4. Résolu par plusieurs personnes, de préférence vous même: Bonté vérifiée. Liens préférés. S'il vous plaît ne pas poster quelque chose qui peut être un bon exercice ... subjective

similaires SO question 60109, mais les réponses DonT répondre à mes besoins ici. J'ai découvert que j'avais perdu le contact avec OOD après des expositions prolongées à un travail de jour. Besoin de le récupérer ..

Mise à jour: Sommes-nous collectivement à court d'exercices OOP courts? J'espérais que j'aurais un tas à choisir. Cependant, mes recherches sur le Web (il s'agit d'un exercice de diff dans la formulation de la bonne chaîne de recherche) et le manque de réponses ici semblent indiquer le contraire. Peut-être que j'ai posté à SO au mauvais moment .. dans ce cas, cogner ce fil pour plus de réponses.

+1

Il n'existe pas de «solution correcte» en ce qui concerne les problèmes du monde réel. –

+1

@Neil N'a pas besoin de. L'intention est de faire l'expérience et d'étudier le processus d'arriver à une solution. – Gishu

Répondre

1

Dave Thomas CodeKata

bontés,

Dan

+0

Avez-vous des katas en tête? La majorité des exercices sont axés sur le développement de vos capacités de réflexion et de programmation de l'algorithme - à l'exception de la tarification des supermarchés, qui est bonne. – Gishu

+0

Faire l'exercice BinaryChop est un de mes favoris. L'examen de différentes parties de l'approche est ce qui me permet de revenir à elle. J'essaie de le faire pour une semaine ou deux tous les deux mois. Gentillesse, Gentillesse, Dan –

3

de Object Calisthenics Jeff Bay. Suivre ceux-ci permettra d'améliorer vos compétences OO.

+1

Il semble que ce soit des règles générales ou des lignes directrices pour une meilleure conception OO. Je suis à la recherche d'énoncés de problèmes ou de scénarios pour essayer de modéliser d'une manière OO – Gishu

+0

Je vois ce que vous dites, mais ils sont généralement présentés comme un ensemble de règles à suivre dans le contexte d'un programme de ~ 1000 lignes - développement de cette manière, indépendamment du problème à résoudre, aidera vos compétences de conception. Je pense que pour vraiment apprendre, le problème spécifique n'est pas aussi important que de vous forcer à apprendre de nouvelles techniques pour le résoudre. – kyoryu

1

pratique Questionnaire Problème

Un problème que j'ai travaillé Dans quelques emplois différents, il s'agit d'écrire des fonctionnalités d'enquête/de questionnaire génériques et axées sur les données. Ce n'est pas un complexe majeur, mais il y a suffisamment de pistes intéressantes pour être un bon problème de pratique OOD je pense. C'est définitivement le monde réel et surgit dans beaucoup d'endroits.

Vous pouvez commencer à réfléchir à la façon de structurer un Survey. Il est évidemment composé de Questions, mais voulez-vous également Categories? Est-ce qu'un Question peut avoir des sous-questions? Est-ce qu'une sous-question peut avoir des sous-questions? À quelle profondeur pouvez-vous aller?

Une question doit probablement avoir un potentiel Scores. Quels types de scores pouvez-vous avoir? Quels types de questions pouvez-vous avoir (choix multiple, réponse multiple, texte libre, etc.)? Une fois que vous avez la logique métier de base, vous pouvez également réfléchir à la manière dont vous affichez une enquête. Peut-être que vous avez un SurveyRenderer et un QuestionRenderer? Comment décidez-vous comment rendre différents types de questions? (Vous utilisez peut-être un modèle de stratégie ... comme dans this SO question.) Comment restituez-vous une version en lecture seule de l'enquête?

Vous pouvez également penser à la persistance. Comment notez-vous les réponses à un questionnaire vierge? Comment le graphique de votre objet d'un sondage est-il mappé dans une base de données (ou dans un autre magasin de support), et vice versa?