HOMEWEBLOGIMPRESSUM

Eingangstests für die CCD School

Die Module der Clean Code Developer School bauen aufeinander auf. Am gründlichsten lernt also, wer mit Modul 1 beginnt, mit Modul 2 weitermacht und schließlich mit Modul 3 abschließt.

Wir verstehen aber, dass nicht alle Interessenten soviel Zeit bzw. Geld aufbringen können. Und auch nicht alle bringen dieselben Erfahrungen mit. Manche mögen schon Erfahrung mit CCD-Bausteinen haben. Deshalb räumen wir die Möglichkeit eines Quereinstiegs ein. Wer zeigen kann, dass er die Inhalte eines Moduls genügend gut beherrscht, kann es überspringen.

Der Eingangstest soll natürlich aus Sicht eines Moduls sicherstellen, dass die Lerngruppe nicht zu heterogen ist. Nur bei ausreichendem Vorwissen können wir ein zügiges Voranschreiten im Lernstoff für alle garantieren. Darüber hinaus soll der Eingangstest aber auch dem Interessen zeigen, ob er selbst etwas von einem fortgeschrittenen Modul hätte.

Eine kleine "Prüfung" vor Quereinstieg erhöht damit die Wahrscheinlichkeit, dass alle Parteien Spaß am Lernen und Erfolgserlebnisse haben.

Eingangstest für Modul 2

Zu implementieren ist eine Rechtschreibprüfung auf der Basis von .NET Framework 3.0 oder höher. Die Benutzerschnittstelle ist dem Mockup zu entnehmen. Ob Sie die Anwendung mit WinForms oder WPF erstellen oder ob Sie eine Webanwendung mit ASP.NET oder Silverlight schreiben ist nicht so wichtig.

Funktionsbeschreibung: Der Benutzer gibt in die Textbox einen Text ein und betätigt anschließend den Prüfen-Button. Daraufhin wird ihm angezeigt, ob der Text Fehler enthält oder nicht. Die Prüfung erfolgt ganz einfach: in einer Datei sind alle korrekten Wörter abgelegt. Die Datei ist eine ASCII-Datei, in der jede Zeile ein Wort enthält. Alle Wörter des Textes werden einfach gegen diese Wortliste geprüft. Wenn alle Wörter des Textes in der Wortliste gefunden wurden, ist der Text fehlerfrei. Die Wortlistendatei trägt den Namen wortliste.txt.

Ihre Aufgabe besteht zunächst darin, diese Anwendung "nach bestem Wissen und Gewissen" zu realisieren. Und Sie soll natürlich funktionstüchtig im Rahmen der obigen Beschreibung sein.

Darüber hinaus sollen Sie allerdings auch eine kurze Beschreibung zu Ihrer Vorgehensweise beilegen; das kann ein PDF-Dokument sein oder ein Screencast (hosting z.B. bei Vimeo). Diese Beschreibung soll stichwortartig erklären, wie Sie vorgegangen sind. Führen Sie dabei beispielsweise auf, was Sie zuerst getan haben, womit Sie gut klar gekommen sind, wo die Herausforderung lag, warum Sie sich für einen eingeschlagenen Weg entschieden haben, etc.

Schicken Sie den Quellcode sowie ihre Vorgehensbeschreibung als Zip-Datei mit Ihrer Praktikumsbewerbung als Anhang. Oder verlinken Sie auf ein online Coderepository wie Google Projects.

Hinweis: Zu diesem Szenario mögen Sie online die eine oder andere "Musterlösung" finden. Tun Sie sich den Gefallen und schauen Sie sie nicht an. Steigen Sie unbelastet in die Lösung ein.

Erwartungshorizont

Hauptinhalte von Modul 1 sind TDD und CCD-Bausteine der Grade Rot und Orange. Darüber hinaus wird der Umgang mit dem verteilten Versionsverwaltungswerkzeug Mercurial geübt. Und alle Arbeit findet im Rahmen vorgegebener kleiner komponentenbasierter Architekturen statt.

Voraussetzung für Ihren Quereinstieg in Modul 2 ist aus unserer Sicht daher vor allem, dass Sie flüssig im Schreiben automatisierter Tests sind, vorzugsweise sogar nach TDD-Manier. Das Tooling sollte Ihnen keine Probleme bereiten. Sie sollten auch ein Auge auf die Codecoverage haben.

Dann möchten wir Ihrem Code ansehen, dass und wie Sie die grundlegenden CCD-Prinzipien für evolvierbaren Code anwenden. Speziell komponentenorientiert muss der Code allerdings noch nicht sein. Falls Sie allerdings schon vertraut mit DI Containern oder Komponentenwerkbänken sind, dann zeigen Sie uns das gern.

Viel Erfolg!

Abgabe der Testaufgaben

Einen Eingangstest zu machen, ist ganz einfach. Testaufgabe lösen - und eine formlose Email mit Link bzw. ZIP zur Lösung an ccdschool@nmg.de. Stefan Lieser und Ralf Westphal setzen sich dann zur Ergebnisbesprechung mit Ihnen in Verbindung.

Einen Einsendeschluss gibt es nicht. Aber es gilt natürlich: Wer früh kommt, sichert sich die besten Plätze ;-) Bitte bedenken Sie auch, dass die Testauswertung bis zu einer Woche dauern kann.