Learning Rails Diary - 01 - Einleitung
Bei Blau Mobilfunk verwenden wir aktuelle Technologien und Frameworks. Neben Java EE mit Spring und Hibernate usw., kommen auch Ruby und Ruby on Rails zum Einsatz. Reines Ruby wird bei uns beispielsweise in Infrastruktur Projekten wie dem automatisierten Deployment unserer Testsysteme und CI-Server eingesetzt. Im Frontend Bereich ist Ruby on Rails ebenfalls nicht mehr wegzudenken. Fundierte Kenntnisse in dieser Programmiersprache sind daher notwendig, wenn man bei uns in allen Projekten aktiv werden möchte. Und das wollen wir doch alle ;-).
Seitdem ich Software Entwickler bin, habe ich vor allem mit Java gearbeitet. Mit Script Sprachen wie PHP und Perl hatte ich zwar auch schon Kontakt, jedoch beschränkten sich die Arbeiten auf Bugfixes und kleinere Erweiterungen. Bash Scripts waren da schon eher Teil meines Alltags.
Als Java Freund fand ich Script Sprachen in der Software Entwicklung immer etwas zurückgeblieben. Das was Rubianer so ansprechend und modern finden, empfand ich immer als Schwäche einer weniger hoch entwickelten Programmiersprache. Zum Beispiel ist Ruby weniger restriktiv als Java. Dazu gehören die fehlende Typisierung und beliebiges erweitern bestehender Klassen durch eigene Implementierungen. Meiner Meinung nach, gibt es mehr Möglichkeiten Bugs einzuschleusen als in den restriktiveren Sprachen.
Auch wenn es vielleicht eine Umstellung ist, und einige Hürden beim Lernen von Ruby und beim Umgang mit dem Framework Ruby on Rails zu nehmen sind, lohnt sich meiner Meinung nach das Einarbeiten. Im Vergleich zu Sprachen wie Java, C# usw. benötigt man mit Ruby weniger Quelltext. Ruby Code soll, wenn er “rubyisch” geschrieben wurde, mehr der natürlichen Sprache und denkweise eines Menschen entsprechen. Folglich müsste es ganz einfach sein sie zu lernen. Mal sehen, ob ich das so unterschreiben kann.
Denn ich habe mir zum Ziel gesetzt nicht nur an Java basierten Projekten zu arbeiten, sondern möglichst schnell in Allen einen wertvollen Beitrag leisten zu können. Dieser Artikel soll einer von Vielen sein, der Euch auf meine Reise durch die Ruby Welt mitnimmt. Dabei werde ich wahrscheinlich nicht den absolut geraden Weg gehen können. Um die Artikel perfekt schreiben zu können, müsste ich bereits umfangreiches Wissen zu diesem Thema besitzen. Dieses Ziel liegt jedoch noch vor mir.
Wenn man beginnt mit Ruby zu arbeiten, stellt sich automatisch die Frage nach der Entwicklungsumgebung. In modernen IDEs für Java, wie Eclipse oder Netbeans erhält man viel Unterstützung während des Schreibens. Die IDE weist beispielsweise direkt beim Schreiben auf die fehlerhafte Verwendung einer API, eine nicht initialisierte Variable oder die Verwendung von Instanzvariablen in einer statischen Methode hin. Desweiteren bekommt man Hilfe beim Refaktorieren, extrahieren von Methoden, inlinen von Variablen oder ändern einer Methodensignatur und vielem mehr. Funktionen wie diese sind bei eingefleischten Rubyianern eher weniger verbreitet. Wer mit VIM oder TextMate entwickelt, muss auf viele der Hilfsmittel moderner IDEs verzichten. Im Java Umfeld würde heute keiner mehr darauf verzichten wollen. Viele Rubyianer verwenden also im Grunde die Werkzeuge, die man bei der Entwicklung mit Java vor einigen Jahren verwendet hat.
Fehler im Code erscheinen dadurch oft erst zur Laufzeit. Was es besonders wichtig macht testgetrieben zu entwickeln. Nur mit ausreichend Testabdeckung kann man Bugs vor dem Betrieb der Software ausschliessen. Die Tests kann man übrigens ständig im Hintergrund laufen lassen. Dadurch bekommt man gleich nach einer Änderung Rückmeldung über den Zustand der Software. Wie das geht, wird später in den verlinkten Tutorials vermittelt. Wer noch nicht nach TDD entwickelt, sollte spätestens jetzt darüber nachdenken. Nicht nur, dass dadurch Fehler im Code sofort aufgedeckt werden und die Funktionalität sichergestellt ist, Test Driven Development bietet viele weitere Vorteile.
Für Diejenigen, die auf eine hilfreiche IDE nicht verzichten möchten, gibt es eine Alternative zu dem spartanischen VIM oder TextMate. Aptana RadRails ist eine der Entwicklungsumgebungen mit diversen hilfreichen Funktionen. Auch Netbeans hat einmal Ruby unterstützt. Doch leider nur bis Version 6.9.1. Die aktuelle Version 7 schon nicht mehr. Meine lieblings IDE für Ruby ist RubyMine. Die ist jedoch nicht kostenlos. Aber wer mit dem Gedanken spielt TextMate für die Rails Entwicklung zu kaufen, sollte sich auch einmal RubyMine anschauen.
To be continued …
Mehr? Aktuelle Artikel oder alle Artikel im Archiv.