Changes between Version 9 and Version 10 of lecture_faq


Ignore:
Timestamp:
03/24/2015 10:57:20 PM (9 years ago)
Author:
daniel.kurzynski
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • lecture_faq

    v9 v10  
    6161
    6262== Wann sollte Global State verwendet werden? ==
    63 Global State/Singletons sollten nur verwendet werden, wenn es unbedingt notwendig ist. Formen von globalem State existieren in jedem System und können einen auch über Prozessgrenzen hinweg beissen.  Das ist vergleichbar mit der Situation heute, in dem die Instanz der Spielwelt an einer globalen Stelle gebunden wurde. Jeder andere, der diese Stelle schreibt (nicht nur ein fremdes Stück Code, sondern eben auch eine zweite Instanz des Spiels) kann somit Probleme verursachen.
     63Global !State/Singletons sollten nur verwendet werden, wenn es unbedingt notwendig ist. Formen von globalem State existieren in jedem System und können einen auch über Prozessgrenzen hinweg beissen.  Das ist vergleichbar mit der Situation heute, in dem die Instanz der Spielwelt an einer globalen Stelle gebunden wurde. Jeder andere, der diese Stelle schreibt (nicht nur ein fremdes Stück Code, sondern eben auch eine zweite Instanz des Spiels) kann somit Probleme verursachen.
    6464
    6565
     
    6969b) ausreichend komplex sind (die wenigstens Programm sind trivial)
    7070c) für jemanden einen bestimmten Wert haben (häufig wird hier natürlich der finanzielle Aspekt genannt aber es gibt auch genug andere Gründe (z.B. will jemand Monkey Island wieder auf dem iPad zum Laufen bekommen oder ihr entwickelt den internen Squeak Browser weiter damit die Community ihn wieder nutzen kann)).
    71 Der Hinweis aus der Vorlesung diesen Begriff vorsichtig zu verwenden, bezieht sich auf den Aspekt, dass “Legacy” in der Informatik einen negativen Aspekt im Sinne von “Altlast” beinhaltet. Da ihr natürlich bestehende Softwareprojekte nicht unbedingt beleidigen wollt, solltet ihr das im Hinterkopf behalten.
    72 
     71Der Begriff ist jedoch vorsichtig zu verwenden, da “Legacy” in der Informatik einen negativen Aspekt im Sinne von “Altlast” beinhaltet. Da ihr natürlich bestehende Softwareprojekte nicht unbedingt beleidigen wollt, solltet ihr das im Hinterkopf behalten.
    7372
    7473== Sollten wir das System Window für die SWA-Spiele benutzen? ==
     
    8281Schaut euch dazu doch einmal an, wie die Klasse SystemWindow verwendet werden. Vergleicht zum Beispiel einmal die Subklassen von SystemWindow (Browser - "Hierarchy" Button) und die direkten Referenzen auf die Klasse SystemWindow (STRG + SHIFT + N nach Selektion des Klassennamens).
    8382Ihr werdet feststellen, dass es wesentlich mehr Referenzen (also benötigt für Instanzierung von Objekten) als Subklassen gibt. Ebenso sind alle Subklassen Spezialisierungen des SystemWindow aber keine eigenständige Programme. Nun versucht einmal zu verstehen, wie die Programme ihre SystemWindows erstellen und sich dann darin einbetten.
    84 Probiert es bitte einmal selbst aus, falls ihr nicht weiterkommt, findet ihr ein kleines Beispiel zum Pong Spiel ganz am Ende dieser Mail [1].
    8583 
    86844. Schaut euch doch einmal PluggableSystemWindow und ToolBuilder an.
    87 Hier wird mit Hilfe des "Builder Design Patterns" ein Mechanismus beschrieben, wie Fenster und Widgets an Hand von Spezifikationen erstellt werden können. Zur Entwicklung von Werkzeugen, ist dies der eigentliche Weg in Squeak. Wir werden dieses System später in der Vorlesung zu den Entwurfsmustern noch genauer behandeln. Dennoch ist es nicht verkehrt, es mal selbstständig zu verstehen :-) Lest dazu aber zumindest euch vorher kurz in das Muster ein.
     85Hier wird mit Hilfe des "Builder Design Patterns" ein Mechanismus beschrieben, wie Fenster und Widgets an Hand von Spezifikationen erstellt werden können. Zur Entwicklung von Werkzeugen, ist dies der eigentliche Weg in Squeak.
    8886