NullenUndEinsen

Bevor wir hier InMediasRes gehen, bitten wir die geneigte LeserIn, sich in der WikiPedia ein GeSund'es grundlegendes Wissen anzueignen über: Bit Byte TranSistor RandomAccessMemory CentralProcessingUnit FestPlatte FlashRam SolidStateDisk AscIi UniCode Datei FileFormat OperatingSystem. Ganz ausser Acht lassen können wir mittlerweile historische Technologien wie die FloppyDisk oder gar die LochKarte, ObWohl letztere im EngLish'en den schönen Namen "PunchCard" trägt. Und damit kamen wir jetzt zu der wohl wichtigsten Form von NullenUndEinsen, die in der WeLt etwas bewirken konnten: Dem SourceCode. Als RaWa89 mit der Schaffung von SourceCode begann, war dies noch unendlich kompliziert und mit heute kaum noch VorStell'baren Beschränkungen behaftet. Zum Glück können wir uns im TraumBetrieb auf zwei Arten von SourceCode beschränken, mit denen wir eine VielZahl von BusinessModel's realisieren können: CloJure und JavaScript. Wie oben schon angedeutet, spricht der WebBrowser auf unserem WebDevice per HtTp oder besser HtTps mit unserem WebServer. Im Folgenden werden wir uns genauer anschauen, welchen SourceCode wir mit unserem WebEditor kreieren müssen, um unsere TraumApp zu schaffen. PayMent der PieschenBank, Empfänger vorschlägt, nachdem der BankKunde mit TastaTur das erste Zeichen eingegeben hat. RequestHandler CascadingStyleSheet HtMl HtmlHead HtmlBody HtmlElement MemCache HttpRequest sendet nun InDerRegel unser WebServer einen HttpResponse, der aus einem HtmlDocument besteht. Oder ein HttpRedirect, der dem WebBrowser mitteilt, bitte woanders einen HttpResponse anzufordern. Die wichtigste ist aber unsere BigTable, aus der wir uns mit AppEntity's versorgen. Das DomainModel ist das Herzstück guter SoftWare. Zunächst einmal holen wir uns aus der BigTable das AppEntity. "BootStrap" mit der wir ausgehend von einer Big-TabulaRasa das BootStrapping unserer WebApp beginnen. Für unser Prinzip des rein WebBased development gibt es leider noch eine unschöne AusNahme: Eine Erweiterung oder Änderung an einem AppIndex muss per GaeConsole durchgeführt werden. Grundsätzlich gibt es zwei Formen, ein AppEntity zu identifizieren [https://developers.google.com/appengine/docs/java/datastore/entities#Kinds_and_Identifiers *]:
  • * per NumericId, wobei
  • * per KeyName "name"
  • "name=RootHandler" können wir es im MemCache speichern. Sobald wir es compilieren, entsteht jedoch eine Abhängigkeit zum ClassLoader der jeweiligen JavaVm. Wir speichern also den SourceCode darüber hinaus aber pro JavaVm eine compilierte ClojureFn für jeden RootHandler. Genauso verfahren wir mit den wichtigsten RequestHandler'n. Und die einzelnen RequestHandler können wiederum eigene Daten im Memcache halten, wie etwa der EditHandler und der WikiHandler. Der EditHandler ist ein RequestHandler, der den BigTableNomic-Spielern einen WebEditor bereitstellt. Der WikiHandler stellt WikiPage's dar und erzeugt den ThoughtTrace. LearningByDoing
  • * richte Dir einen AppEngine-Account ein
  • * installiere eine BigTableNomic-WebApp
  • * erschaffe einen RequestHandler
  • * prüfe mit der AppEngine AdminConsole, welchen Resourcenverbrauch dies erzeugt
  • * ReView'e und übersetze einzelne WikiBook's in andere WeltSprache'n