wiki:lecture_faq

Version 8 (modified by daniel.kurzynski, 9 years ago) ( diff )

--

TOC

FAQ zur Vorlesung - Neue Version

Diese Seite beantwortet die nicht technischen Fragen, rund um die Vorlesung und das Projekt. Fragen zum Entwickeln in Smalltalk/Squeak werden in der Sqeak FAQ beantwortet.

Wie sind meine Zugangsdaten zu Squeaksource?

Benutzername ist der HPI Benutzername und das Password wurde dir per Mail geschickt. Bitte ändere dein initiales Passwort. Da das Passwort nicht über eine gesicherte Verbindung übertragen wird, empfehlen wir ein Passwort zu nehmen, dass du nicht (auch nicht in ähnlicher Form) bei anderen Diensten nutzt.

Wo finden die Konsultationen statt?

In der Kommunikationszone C.E.

Welchen Umfang sollten die SWA-Projekte haben?

Die Anforderungen, welche durch die Spiele umgesetzt werden sollen, reflektieren auch den Umfang des Projektes. Alle Projekte wurden so gewählt (oder von uns freigegeben), sodass sie einerseits mit 4 Studierende in der vorhandenen Zeit sehr gut realisierbar sind und andererseits auch ausreichend Raum lassen, um eine sehr gute Architektur zu entwickeln.

Eine Zahl entsprechend der Menge an Quelltext lässt sich nur schwer bestimmen, da es von zu vielen Faktoren abhängt (Verwendung von Mustern, Kenntnis der Smalltalk Bibliothek, Benutzte Abstraktionen etc.). Falls es euch hilft: Wir hatten schon sehr gute Projekte, welche nur knapp 1.000 Zeilen geschrieben haben aber auch sehr gute mit mehr als 4.000 Zeilen. Versucht euch am Besten dazwischen einzupendeln und setzt euren Fokus lieber auf Qualität statt Quantität. Uns geht es in dieser Lehrveranstaltung vor allem darum, dass ihr lernt und versteht, was es heißt "schönen" Code zuschreiben.

Wie kann ich meine Codequalität automatisch prüfen lassen?

Dafür git es sogenannte Lint Tools, die euch dabei unterstützen schönen Code zu schreiben. Diese analysieren euren Code und weisen euch auf "unsaubere" Abschnitte hin. Diese können sowohl mögliche Fehlerquellen sein, als auch Codeabschnitte, die nicht Idiomen entsprechen. Das entsprechende Tool in Squeak heißt SWALint. Ihr findet es im Apps Menü.

Die Benutzung erklären wir in einem Screencast.

Es lohnt sich das Tool von Zeit zu Zeit oder am Besten vor jedem Commit laufen zu lassen um den Code ständig sauber zu halten.

Gibt es auch Design Pattern, die sich besonders für Spiele eignen?

Eine übersicht von Design Pattern, die sich für Spiele anbieten findest du hier. Einige dieser Patterns werden in der Squeak Umgebung bereits bereitgestellt bzw können direkt benutzt werden. Beispiele:

WorldState >> #doOnceCycleNowFor:
Morph >> #step (#startStepping, #stopStepping, #stepTime)
Morph >> #drawOn: (#fullDrawOn:)
Morph >> #keyStroke: (#eventHandler:)
WorldState class >> #addDeferredUIMessage:
MenuIcons class >> #base64ContentsOfFileNamed: (MenuIcons, HelpIcons, …)

Welche Wege gibt es Resourcen, wie z.B. Bilder, zu teilen?

Bilder können zwar im Squeak Image gehalten werden, in dem man die entsprechenden ByteArrays am besten auf Klassenseite abspeichert. Wir empfehlen euch, dass ihr direkt einen Unterordner vom Resources Ordner teilt. Dazu kann man ganz einfach Dropbox/OwnCloud nutzen und einen Symlink in den Unterordner legen. Alternativ könnt ihr auch ein Git Repository einrichten, was dann im Resources Ordner ausgecheckt werden kann. Der Vorteil ist, dass ihr die Fotos schnell austauschen könnt. Außerdem bleibt euer Repository kleiner.

Wie treffe ich Designentscheidungen?

Bei vielen Designentscheidungen gibt es aber kein klares richtig oder falsch. Ihr selbst kennt euer Projekt am besten und könnt selbst am besten entscheiden, wie man ein bestimmtes Feature schön implementiert. Solange ihr euch weitestgehend an Modularitätsregeln und Regeln für objekt-orientiertes Design haltet und der Code schön aussieht, könnt ihr so ziemlich jedes Design rechtfertigen. Dazu zählen zum Beispiel, aber nicht nur:

SWALint und Design Patterns können euch dabei helfen, diese Ziele zu erreichen.

Note: See TracWiki for help on using the wiki.