Kategorie-Archiv: Ruby on Rails

Ruby on Rails Bootcamp der Big Nerd Ranch – Tag 5

Tag 5 – 9:03 Uhr:

Der letzte Tag. Schade eigentlich, wo ich mich doch gerade erst langsam zurecht fand. Jetzt heisst es fleissig zu Hause coden coden coden. Ich werde sicherlich in mehr oder weniger regelmässigen Abständen darüber berichten und die Usergroup mit Fragen quälen.

Am letzen Tag haben wir noch das Thema Performance angesprochen. Rails bietet ein paar Mechanismen für Caching usw. Da das Hauptaugenmerk von Rails aber ist dem Entwickler das Leben leichter zu machen gibt es da nicht so viel. Durch die MVC-Architektur lassen sich Rails-Anwendungen aber im Prinzip beliebig skalieren. Anhand des Shoutboards haben wir die Request per second untersucht und welchen Einfluss die Caching-Mechanismen darauf haben.

Das letzte was uns Charles noch näher brachte war Deployment mit Capistrano. Wirklich coole Sache. Ein Befehl und die Anwendung wird automatisch auf dem Produktions-Server bereitgestellt. Vorher ist natürlich noch ein bisschen Konfiguration nötig, die sich aber in Grenzen hält.

Zum Abschluß zeigte uns Charles dann noch ein paar seiner ganz eigenen Vorgehensweisen, Lieblings-Plugins usw.

Mit dem Mittagessen, einem schönen Zertifikat und bester Laune endete damit diese wundervolle Schulung. Mein Fazit – jeder der sich für Rails interessiert und das nötige Budget hat kann bei dieser Schulung zur dazu lernen. Absolut empfehlenswert!

Ruby on Rails Bootcamp der Big Nerd Ranch – Tag 4

Tag 4 – 9:20 Uhr:

Heute gehts anspruchsvoll weiter. Noch nicht richtig wach legen wir, ganz Web2.0 mässig mit dem Thema Ajax los. Rails hat prototype und script.aculo.us bereits integriert und bietet dem Entwickler schöne Möglichkeiten diese zu nutzen. Das machten wir auch sogleich um im unserer Demo-Anwendung ein bisschen Ajax einzubauen.

Ein wichtiges Thema folgte; Debugging. Die verschiedenen Möglichkeiten wie logger.info (ins Logfile schreiben), Sandbox-Testing und Arbeit mit Breakpoints wurden anschliessend wieder praktisch vertieft. Besonders der script/breakpointer hat mir gefallen, weil man dort bei erreichen eines definierten breakpoints eine komplette Ruby-Shell zur Verfügung hat, in der man beliebig rumhantieren kann.

Vor dem Essen wurde dann noch der ActionMailer besprochen und die Möglichkeiten Mails zu versenden/empfangen (bzw. zu verarbeiten) aufgezeigt. Da bei mir (auf Wunsch) ein lokales Postfix seinen Dienst verrichtet konnte ich via sendmail das ganze sogar testen. Wie nicht anders zu erwarten funktioniert es blendend.

12:45 Mittagessen

Gut gesättigt waren wir fit für das nächste Kapitel. Web Services. Serverseitig unterstütz Rails SOAP und XML-RPC. REST wird durch Active Resource und Simply RESTful unterstützt. Wie immer nimmt Rails einem hier viel Arbeit ab und bietet sogar ein (allerdings verbesserungswürdiges) scaffolding. Dennoch machten wir auch hier wieder eine Übung und programmierten eine Schnittstelle und einen RSS-Feed für neue Produkte. Und das in weniger als 15 Minuten. Schon irgendwie beeindruckend.

Der Rest des Tages war wieder coding angesagt. Entweder an eigenen Applikationen oder an dem Übungsstück. Wie immer stand Charles mit Rat und Tat zur Seite, sodass eigentlich alle offenen Fragen geklärt werden konnten. Ich selbst habe mich dann mal an das Datenbankdesign meiner kleinen Reise-Applikation gemacht. Da habe ich mir auch gleich was schön schwieriges vorgenommen scheint mir. Wegen der Normalisierung werde ich wohl um eine Handvoll Assoziationen mit polymorphic nicht rum kommen.

So ganz nebenbei hat Charles noch ein kleines Shout-Board mit schickem Ajax-Update programmiert. Das wird hier jetzt fleißig zum Llinktausch benutzt. Mal gucken ob wir da den Source noch bekommen ;-)

19:00 Abendesen – wie immer sehr lecker

Den restlichen angefangenen Abend werde ich noch ein wenig anfangen zu coden. Ebenso meine Mitlernenden. Morgen dann der letzte (halbe) Tag.

Ruby on Rails Bootcamp der Big Nerd Ranch – Tag 3

Tag 3 – 9:05 Uhr:
Wir starten mit einem kleinen Rückblick auf die vergangenen Tage. Direkt danach ging es mit “advanced stuff – active records” weiter. Ein Überblick über aggregations, acts, magic_columns, transactions, locking, observer, association join models und polymorphic associations. Da muss man dann doch erstmal schlucken. Charles bringt zwar alles verständlich rüber, aber bei der Menge an Informationen muß man voll dabei sein, sonst verliert man schnell den Faden.

Das nächste Kapitel behandelte Helper-Funktionen, die, ebenso wie ein paar weitere Verbesserungen, sogleich in unser Projekt einzupflegen waren.

Nun sollte es aber erst richtig loslegen. Charles Augen begannen fömrlich zu leuchten, als er über die Testing-Funktionen die in Rails integriert sind zu erzählen begann. Unit Test wurden ausführlich erklärt und auch gleich wieder angewandt, sodass man ein bessers Gefühl dafür bekommt.

12:30 Mittagessen

Nach der Pause hat Peter einen kurzen Vortrag über Migration-Tests gehalten, da das gut zum Unit-Testing passte. Bevor ich richtig durchatmen und mich vom guten Essen erholen konnte folgte ein Abschnitt der uns die Routen näher bringen sollte. Das haben wir natürlich auch gleich wieder umgesetzt. Überhaupt wird der Kurs jetzt wesentlich praxisnäher als noch am Montag. Gut so!

15:00 Spaziergang

Nun sollte auch schon der nächste Themenblock folgen. Request Filters. Anhand eines einfachen Login/Logout-System wurde das praktisch verinnerlicht. Der Übergang zum Thema Sessions war da recht fliesend und angebracht. Den Rest des Tages war Coden angesagt. Entweder an der Lern-Applikation, oder an eigenen Projekten. Gegen 19 Uhr gab es dann noch Abendessen. Anschliessend nochmal zurück in den Schulungsraum und weiter gehackt.

Ruby on Rails Bootcamp der Big Nerd Ranch – Tag 2

Tag 2 – 9:15 Uhr:
Es geht los für heute. Irgendwie habe ich das Gefühl, dass es heute dann doch eine Ecke anspruchsvoller wird als gestern. Ich bin gespannt, was mich erwartet.

Wir starten mit einer Einführung in die Datenbank-Migrationen. Sehr nützlich, gerade wenn man im Team entwickelt, aber auch für einen alleine, bietet es schöne Vorteile wie Rollback-Möglichkeiten, falls man denn mal etwas sehr verbockt hat.

Es folgt ein tieferer Einblick in die Verzeichnisstruktur einer Rails-Applikation. Welche Aufgabe und welchen Inhalt jedes Verzeichnis hat. Eine schöne kurze Zusammenfassung.

Danach ging es langsam produktiv weiter. Wir bildeten für unsere kleine Übungsapplikation via Scaffolding ein Grundgerüst, was dann nach und nach angepasst wird. Zunächst wurden die grundsäztlichen Dinge angefasst, wie etwa ein zentrales Layout durch die Verwendung von application.rhtml anstelle vieler einzelner Layouts. Dazu dann noch ein angepasstest scaffoling.css um das eher “hässliche” Scaffoling-Layout ein wenig hübscher erscheinen zu lassen. Es folgten eigene List- und Edit-Module, die auf die Applikation zugeschnitten sind.

Das nächste große Thema war dann Validation. Alle Benutzer-Eingaben wurden einer Prüfung unterzogen. Entweder kamen fertige validates_….. zum Einsatz, oder aber es wurde z.B. für die Abfrage, ob das Erstellungsdatum in der Vergangenheit liegt eine eigene validate-Prozedur erstellt.

Der Rest des Tages wurde dazu verwendet, die Demo-Applikation vom Funktionsumfang her noch zu erweitern, sodass alles ein wenig runder läuft.

Heute abend steht “Sozialleben” auf dem Plan. Weinprobe und Klosterbesichtigung mit abschliessendem Abendessen.

Ruby on Rails Bootcamp der Big Nerd Ranch – Tag 1

Heute ist der erste Tag der Schulung. Um 9 ging es im “Heuboden” los. Nachdem sich jeder der 16 Teilnehmer einen Platz gesucht hat fingen wir mit einer kleinen Vorstellungsrunde an. Jeder hat kurz etwas über sich und seine Erwartungen an den Kurs berichtet. Dabei hat sich schon gezeigt, dass vom absolutem Anfänger bis zum bereits erfahrenen Softwareentwickler alles vertreten ist. Also ein Kurs für jeden ;-) Charles B. Quinn unser Lehrer ist ein sehr freundlicher Mensch, der auf Zwischenfragen sofort eingeht. Da der Kurs in englisch ist, muss ich mich da erstmal wieder dran gewöhen, aber Charles hat eine klare Aussprache, sodass das kein Problem ist.

Auch mit Papier wird man ordentlich versorgt. Neben allen “Slides” gibt es noch die Bücher “Agile Web Development with Rails” von Thomas Heinemeier Hansson und ” Programming Ruby” von Dave Thomas. Damit ist man wohl hinreichend gut gerüstet um jederzeit etwas nachschlagen zu können.

Die anderen Teilnehmer kommen aus fast ganz Europa – Schweden, Finnland, Englang, Holland, Frankfreich, Schweiz … alles ist vertreten. Jeevan hat wohl den weitsten Weg aus Sri Lanka.

Nach der Vorstellungsrunde haben alle erstmal ihre Workstations eingerichtet, damit Rails auch sauber läuft. Meist war das natürlich schon im vorhinein geschehen. Ich habe die Möglichkeit genutzt und noch schnell RadRails runtergeladen und installiert um eine “all-in-one” Entwicklungsumgebung zu haben. Läuft prima. Einfach runterladen und starten.

Vor der Mittagspause um 12:30 gar Charles uns dann noch einen ersten Einstieg in Ruby.

12.30 – Mittagspause. Buffet. Lecker.

Direkt nach der Pause ging es dann langsam richtig los. Den Anfang machte eine Einführung in ActiveRecord. Ein paar Übungen auf der Console folgten um das Vorgetragene auch in der Praxis auszuprobieren. Charles und andere erfahrene Rails-Programmieren standen Neulingen wie mir hilfreich zur Seite, sodass man schon nach kurzer Zeit die Übungsaufgaben lösen konnte.

Als nächstes kam der ActionController an die Reihe. Es wurde gezeigt, wie schnell man FORM-Data mit Params ausliest, Session-Daten bekommt und via “Flash” dem Benutzer Feedback gibt. Abschliessend noch ein kurzer Anriss über die Cookie-Behandlung. Wieder folgte eine Übungslektion.

16:00 Um den Kopf freizubekommen machten wir bei herrlichstem Sonnenschein einen Spaziergang um das Kloster herum

Mit neuem Elan ging es dann weiter mit ActionView. Endlich kann man seine “Seite” manipulieren und lernt den gesamten Zusammenhang der einzelnen Komponenten. Wie man Layouts verwendet wurde ebenso besprochen wie die Nutzung von “partial”. Das Übungsprojekt machte den Verwendungszweck recht deutlich und es wird auch dem letzen das DRY-Prinzip (dont repeat yourself) dadurch näher gebracht.

Gegen 19 Uhr gab es dann Abendessen. Wieder sehr lecker. Für heute ist damit für mich Schluss. Einige sind zurück in den “Heuboden” gegangen, um noch ein wenig weiter zu programmieren. Ich aber bin etwas müde, und habe sowieso noch nicht die rechte Idee, wie ich “mein Projekt” denn angehen werde. Also ruhe ich mich lieber ein wenig aus, und bin dann morgen auch wieder fit.