2009-08-21 2 views
18

Ich suche schon seit einiger Zeit im Internet. Ich suche nach kleinen Beispielübungen für OOD-Praxis (& für einige interne TDD-Workshops).
Wenn es einen einzigen Ort ist, wo dieses Bedürfnis bedient wird, bitte darauf zeigen mir .. und schließen Sie diese FrageOOD/OOP Etudes/Codeübungen

Constraints:

  1. sprachunabhängig reale Welt Problem
  2. Klein: Etwas, das maximal eine Stunde bis zwei zu lösen braucht (oder Unterteile hat, die diese Bedingung erfüllen können).
  3. Nicht-Algorithmus zentriert: Nicht nur auf die Lösung einer Rechenaufgabe konzentrieren. (Es gibt mehrere Websites, die diese Kategorie bedienen.) Umfassen> 2 interagierende Entitäten.
  4. Gelöst von mehreren Personen, vorzugsweise sich selbst: Goodness verifiziert. Links bevorzugt. Bitte nicht etwas, die eine gute Übung sein kann ... subjektiv

ähnliche SO 60109 Frage, aber die Antworten nicht hier mein Bedürfnis erfüllen. Ich habe festgestellt, dass ich meine Berührung verloren hatte (war mit Ideen überhäuft) mit OOD, nachdem ich mich einem Tagjob ausgesetzt hatte. Brauchen Sie es zurück zu bekommen.

Update: Sind wir kollektiv aus kurzen OOP-Übungen? Ich hatte gehofft, dass ich einen Haufen zur Auswahl haben würde. Meine Web-Suchen (dies ist ein Unterschied bei der Formulierung der richtigen Suchzeichenfolge) und das Fehlen von Antworten hier scheinen jedoch etwas anderes zu bedeuten. Vielleicht habe ich zu einer schlechten Zeit in SO gepostet. In diesem Fall stoße ich auf diesen Thread für mehr Antworten.

+1

Es gibt keine "richtige Lösung", wenn es um reale Probleme geht. –

+1

@Neil Muss nicht. Die Absicht ist, den Prozess der Lösung zu erfahren und zu untersuchen. – Gishu

Antwort

1

CodeKata

Güte Dave Thomas,

Dan

+0

Irgendwelche spezifischen Kata, die Sie im Sinn hatten? Ein Großteil der Übungen konzentriert sich auf die Entwicklung Ihres Algorithmus Denkens und Programmierens Fähigkeiten - mit Ausnahme der Supermarkt-Preisgestaltung .. was gut ist. – Gishu

+0

Doing the BinaryChop Übung ist ein Liebling von mir. Die Untersuchung verschiedener Ansätze ist das, was mich dazu bringt, darauf zurückzukommen. Ich versuche es alle paar Monate für eine Woche oder so. Freundlichkeit, Dan –

3

Object Calisthenics Jeff Bay. Nach diesen Schritten verbessern Sie Ihre OO-Fähigkeiten.

+1

Diese scheinen Faustregeln oder Richtlinien für bessere OO Design zu sein. Ich suche nach kurzen Problemaussagen oder Szenarien, um zu versuchen und in einer OO Weise zu modellieren – Gishu

+0

Ich sehe, was Sie sagen, aber sie werden im Allgemeinen als eine Reihe von Regeln präsentiert, um im Zusammenhang mit einem ~ 1000 Linienprogramm zu folgen Auf diese Weise, unabhängig von dem Problem, das gelöst wird, werden Ihre Designfähigkeiten helfen. Ich denke, dass für das wirkliche Lernen das spezifische Problem nicht so wichtig ist, als sich selbst zu zwingen, neue Techniken zu erlernen, um es zu lösen. – kyoryu

1

Fragebogen Praxis Problem

Ein Problem, das ich gearbeitet habe In ein paar verschiedenen Jobs ist das Schreiben von generischen, datengetriebenen Umfrage/Fragebogen-Funktionen. Es ist nicht sehr komplex, hat aber genug interessante Möglichkeiten, um ein gutes OOD-Übungsproblem zu sein, denke ich. Es ist definitiv reale Welt und taucht an vielen Orten auf.

Sie können anfangen zu überlegen, wie Sie eine Survey strukturieren. Es besteht offensichtlich aus Questions, aber möchten Sie auch Categories? Kann ein Question Teilfragen haben? Kann eine Teilfrage Teilfragen haben? Wie tief kannst du gehen?

Eine Frage muss wahrscheinlich Potential Scores haben. Welche Arten von Scores können Sie haben? Welche Arten von Fragen können Sie haben (Multiple Choice, Mehrfachantwort, Freitext usw.)?

Sobald Sie die grundlegende Geschäftslogik haben, können Sie auch darüber nachdenken, wie Sie eine Umfrage anzeigen. Vielleicht haben Sie eine SurveyRenderer und eine QuestionRenderer? Wie entscheidest du, wie man verschiedene Arten von Fragen rendert? (Vielleicht verwenden Sie ein Strategie-Muster ... wie in this SO question.) Wie rendern Sie eine schreibgeschützte Version der Umfrage?

Sie können auch über Persistenz nachdenken. Wie zeichnen Sie Antworten auf einen leeren Fragebogen auf? Wie wird Ihr Objektdiagramm einer Umfrage in eine Datenbank (oder einen anderen Hintergrundspeicher) abgebildet und umgekehrt?