Frameworks in der Programmierung – wirklich so essentiell wie immer behauptet?

Wenn immer man sich aktuell umschaut auf dem Jobmarkt, dann sind im Softwarebereich immer Erfahrungen mit Frameworks gefordert oder zumindest gern gesehen. Nun habe ich ja auch einige Erfahrung und ich sehe das immer wieder etwas zwiegespalten.

Machen wir uns erst einmal ein Bild mit welchem Ziel Frameworks entstanden sind. Mehrheitlich ist ihr Ziel die Entwicklung von Software zu vereinfachen und zu beschleunigen. Der Entwickler soll sich weniger Gedanken machen müssen über einige technische Details und soll sich ganz und gar auf seine Applikation konzentrieren können. Das klingt ja erst einmal nicht schlecht. Wer möchte sich schon gerne mit den Details einer TCP/IP-Verbindung womöglich sogar noch Verschlüsselung beschäftigen müssen wenn er nur Daten von einem Server irgendwo im Netz abholen möchte. Das klingt doch schon insgesamt sehr verlockend, aber jede Medaille hat bekanntlich zwei Seiten. Jede Technologie bringt ihre Tücken und ggf. auch Einschränkungen mit. Eine dieser Einschränkungen ist es, dass ein Framework gewisse Regeln vorgibt an die man sich halten muss, wenn man es verwendet. Das muss noch nicht mal negativ sein, vermeidet es doch, dass man sich unfreiwillig irgendwo eine Bremse einbaut, die man ggf. später wieder ausbauen muss.

Da ich relativ viel im Bereich Webentwicklung mache, beschränke ich mich im Folgenden bei den Beispielen auf dort häufig anzutreffende Frameworks und meine Erfahrungen mit Ihnen.

Eines der für mich wichtigsten Frameworks ist und bleibt JQuery und es ist eines der wenigen Frameworks, das ich schätzen gelernt habe. Warum das so ist? JQuery schreibt mir als Entwickler nicht irgendein Gerüst vor, vielmehr gibt es eine Reihe von best-practices und jede Menge Beispiele. Brauche ich aber nur eine simples Ein- und Ausblenden eines Formularelements dann muss ich mich nicht erst mit dem Bauen und Administrieren von Formularen im Sinne des Frameworks beschäftigen. Stattdessen kann ich es einfach aus und einblenden wie es gerade nötig ist. Minimaler, schlanker Code mit dem ich das Element finden und damit etwas machen kann. Derartige Abstraktion (noch dazu über Browser-Grenzen hinweg) finde ich sehr hilfreich. Auch wenn sich JQuery selbst als Framework bezeichnet – für mich hat es eher den Charakter einer umfangreichen Library (aber Library klingt natürlich so altbacken, das kannten ja schon die Entwickler aus C … daher kann man das natürlich in einem modernen Umfeld nicht offiziell so nennen).

Das nächste Framwork, mit dem ich auch immer noch arbeiten darf, ist ZendFramework. Mittlerweile ist davon die Version 3 auf dem Markt, vor allem nachdem die Version 2 reichlich wenig Akzeptanz gefunden hat. Im Arbeitsumfeld sind wir noch größtenteils mit Zend1 unterwegs. Das wird mittlerweile definitiv nicht mehr weiter entwickelt, aber wenn es läuft und es keine sicherheitskritischen Probleme gibt gilt die alte Weisheit: “never touch a running system”. Leider muss ich sagen, dass mir das Framework häufig mehr Arbeit verursacht als es je einsparen könnte. Vieles ist einfach nur sehr umständlich, trotz oder gerade wegen der vorgegeben Struktur. Auf der einen Seite ist sie recht starr – es gibt nur eine Möglichkeit bestimmte Ergebnisse zu erreichen. Auf der anderen Seite sind die Funktionen dann doch recht häufig wachsweich – nahezu an jeder Stelle kann (oder muss) man Parameter als indiziertes Array übergeben.

Richtig enttäuscht hat mich das Framework dann bei der Umsetzung von Commandozeilen-Parametern. Im Quellcode des Framworks stehen noch jede Menge offene Todo-Punkte. Die Funktion an und für sich kann man “out of the box” fast nicht gebrauchen, denn unbekannte Parametern führen zwangsweise zu einem Abbruch der Verarbeitung. Man kann natürlich dann kurzerhand die Framework-Klasse als Basis hernehmen und die notwendigen Routinen in einer eigenen Klasse überschreiben. Aber so wirklich prickelnd ist das nicht, noch dazu bindet man sich damit sehr stark an das Framework – will man die Funktionalität in einem anderen Projekt wieder verwenden, so muss man die dort mit hoher Wahrscheinlichkeit neu implementieren. Ich habe mich in diesem Falle dazu entschieden, es dann gleich selbst zu machen, PHP bietet von Haus aus bereits recht umfangreiche Funktionen, unter anderem sei hier Getopt genannt.

Natürlich wollte ich auch mal schauen was aktuelle Frameworks so können und vielleicht machen die es ja besser. Also habe ich mir Symphony angeschaut. Auf den ersten Blick ist wieder alles “nice and shiny”. Sobald man aber etwas damit arbeiten möchte, musste ich feststellen: Die Doku und die Beispiele sind einfach nur sehr akademisch gehalten. Ich habe das Framework nach einigen Versuchen ad acta gelegt, weil es ein verdammt hoher Aufwand ist, einen recht simplen Fall abzubilden: Man nehme eine einfache 1:n-Relation wie sie jede Datenbank ohne Probleme abbildet: Eine Art News-Artikel wird einer Kategorie zugeordnet. Ein priviligierter Nutzer ist in der Lage die Tabelle der Kategorien bei Bedarf zu erweitern. Ein klassischer Fall, den man im User-Interface gerne und effizient mit Drop-Down-Menu realisiert. In Symfony ist das ein echter Krampf, spätestens bei der Verwendung der Anzeigenamen als Array-Indizes und der eindeutigen Werte als Array-Werte habe ich mir nur noch an den Kopf gelangt. Das funktioniert zwar dank UTF-8-Unterstützung aber es widerspricht sämtlicher Intuition. Die Beispiele zu Formularen sind da auch keine wirkliche Hilfe – da wird einfach darauf gesetzt, dass man es ja doch per Text umsetzen könnte. Das mag für schnelle Projekte sinnvoll sein, aber im Businessumfeld sind die Regeln dann doch etwas strikter. Man kann es natürlich auf der Server-Seite dann wieder prüfen und eine Fehlermeldung ausspucken – aber warum muss der Anwender erst Tippfehler machen und ggf. raten wenn es nur wenige valide Auswahlen gibt?

Das ist jetzt sicherlich keine umfassende Evaluation, aber in vielen Punkten gleichen sich die Frameworks dann doch. Ich werde mir auch noch weitere anschauen. In einem der nächsten Posts werde ich einige generelle Kritikpunkte die mir bisher bei nahezu jedem “Backend-Framework” aufgefallen sind näher ausführen.

 

10 Freundetriathlon in Darmstadt 2018

Lange ist es her, dass ich zum letzten Mal einen Triathlon absolviert habe. Ich hatte zwar den Römerman in Ladenburg als Fitness-Distanz ins Auge gefasst, es dann aber zu Gunsten der Familie verworfen. Immerhin als Helfer war ich mit dabei. Um so gelegener kam das Angebot am 10 Freunde Triathlon in Darmstadt einem Team von Pirelli auszuhelfen, welches einen Teilnehmer zu knapp besetzt war. Die Veranstaltung selbst kannte ich bereits und habe dort auch mehrfach teilgenommen. Damals hieß das Event noch Firmen-Ultra und wurde zuerst in Pfungstadt, später in Darmstadt ausgetragen. Gesponsort wurde das Ganze damals von meinem damaligen Arbeitgeber Bombardier Transportation. Continue reading

Marathon du vignoble d’Alsace – in 12 gastronomischen Etappen zum Ziel

Für dieses Jahr hatte ich mich einmal wieder für den Marathon du vignoble d’Alsace angemeldet. Im Wesentlichen die Partnerveranstaltung zum Marathon an der deutschen Weinstraße. Zudem ist es eine Art Miniatur-Ausgabe des Marathon du Médoc, der bekanntlich durch alle dort ansässigen Weingüter führt. Im Elsass ist es etwas weniger schlimm, dort gibt es nur zwölf Stationen “gastrovinique” an denen es jeweils Wein und eine lokale Spezialität gibt.

Der Start ist mit 8:00h recht früh am Tag – gut dass ich schon im Speckgürtel von Strasbourg bei der Verwandschaft starten kann. Für den Nachwuchs ist es um diese Uhrzeit noch etwas zu früh, also fahre ich alleine zum Start nach Dorlisheim. Der eigentliche Veranstaltungsort heißt Molsheim, dort findet sich auch das Ziel, aber der Start befindet sich praktischerweise direkt an einem großen Supermarkt. Das löst elegant das Problem mit den Parkplätzen. Noch schnell die Unterlagen abholen – ich habe mir im Vergleich zur letzten Teilnahme den Weg am Samstag gespart. Im Startblock treffe ich noch Dietmar Mücke von laufmalwieder.de – wie üblich im roter Perücke und barfuß. Für mich ist diesmal auch etwas Neues dabei – angesteckt von den zahlreichen Verkleidungen beim letzten Mal, laufe ich diesmal als Teufelchen mit Dreizack.

Continue reading

Firmenlauf 2018 in Mannheim

Meine Laufaktionen sind natürlich auch am Arbeitsplatz bekannt, daher wurde ich natürlich gebeten mich an der Aufstellung für den Firmenlauf in Mannheim mit zu beteiligen. Für mich im Prinzip nur eine weitere Trainingseinheit, wenn auch auf ungewohnter Distanz. Laut Ausschreibung sind es 5km, am Start erfahre ich dann, dass es doch 5,2km sind. Aber die 200m können mich als Marathoni ohnehin nicht mehr schocken – auch dort redet man vor allem über die 42km, die 195m am Schluss sind dann eher Nebensache.

Der Vorteil am Firmenlauf in Mannheim ist: ich muss wie beim Marathon in Mannheim nicht erst weit fahren – ganz im Gegenteil, ich kann mich sogar vorher noch aufwärmen – wenn auch nicht laufend sondern mit dem Fahrrad. Kurz vor dem Start treffe ich mich mit den Kollegen, gemeldet sind alleine für meinen Arbeitgeber 187 Teilnehmer. Wir unterhalten uns noch kurz und schon geht es in die Startaufstellung. Etwas ungewohnt für mich – erstens stehe ich gefühlt sehr weit vorne und zweitens sind die Zielzeitkorridore irgendwie mit sehr kleinen Zeiten versehen: < 20 Minuten, 20-25 Minuten usw. Continue reading

Bretagne 2018 – Tag 13 bis 15 – Rückfahrt über Laval und Cumières

Diesmal fasse ich gleich drei Tage zusammen, vor allem weil es recht wenig zu berichten gibt. Den Donnerstag beginnen wir mit den abschließenden Reinigungsarbeiten und dem Packen des Autos. Schritt für Schritt leeren sich die Zimmer, recht bald ist das Obergeschoss fertig und wenig später auch das Erdgeschoss. Glen quengelt ein wenig, aber insgesamt kommen wir zügig mit allem durch. Zum Abschluss starten wir noch einmal die Spülmaschine mit dem letzten Abwasch des Urlaubs. Da die Maschine noch eine halbe Stunde braucht, spazieren wir noch zum Bäcker und decken uns mit Brot für die Fahrt ein. Kurz nach Mittag kommen wir dann endlich los, wobei wir noch einige “letzte” Stopps vor uns haben: Am Supermarkt holen wir noch Belag fürs Brot sowie einen Vorrat Galettes und Köstlichkeiten der Bretagne. Auf dem Parkplatz werde ich noch zu unseren Anhänger befragt, es gäbe glatt einen Kaufinteressenten – ich muss wohl mal Beschriftungen besorgen “nicht zu verkaufen” (womöglich in mehreren Sprachen).

Da wir noch nichts zu Mittag gegessen haben, fahren wir nicht über die Schnellstraße nach Quimper sondern über die Nebenstraßen in Richtung Concarneau und halten auf einem Rastplatz mit Aussichtspunkt an. Eigentlich ganz gut gemeint, aber in der Folge quäle ich mich noch fast 40 Minuten über diverse “Routes départementales” bzw. “Routes communales” bis wir endlich auf der “Route nationale” sind, die als Schnellstraße ausgebaut ist. Ich habe zwar allerhand Abwechslung und am Lenkrad gut zu tun, aber für den Spritverbrauch sind die ganzen Kreisverkehre, Geschwindigkeitsbeschränkungen und Anstiege nicht gerade optimal. Dafür wird es auf der Schnellstraße sehr schnell eintönig: Tempomat auf 90 km/h einstellen, danach nur noch schauen dass man der Straße folgt. Schon praktisch dieses Feature. Bei Lorient hänge ich mich dann sogar noch hinter einen LKW, im Windschatten sinkt der Spritverbrauch nochmals ein wenig. Irgendwo nach Josselin und vor Rennes machen wir noch einen Pinkel-, Wickel- und Versorgungsstopp.

Continue reading

Bretagne 2018 – Tag 11 und 12 – Kirchen, Strand und Hafen

Den Dienstag beginnen wir mit einem Spaziergang nach Le Guilvinec – dort ist Markt. Außerdem benötigen wir noch Brot und diverse weitere Kleinigkeiten. Unter anderem kaufen wir noch Dosensardinen und anderen eingedosten Fisch ein, um die heimischen Vorräte wieder aufzufüllen – auch hier müssen wir uns keine Gedanken machen, ob das noch alles ins Auto passen wird.

Im Hafen kauft Marion dann noch Regenkleidung für sich und den Nachwuchs ein – bei dem Wetter hier und der Gischt hat man hier recht früh spezielle Bekleidung entwickelt, um der Witterung zu trotzen. Wie wechselhaft das Wetter hier sein kann, merken wir bereits während des Spaziergangs – von leichten Nieselregen bis Sonnenschein und wieder zurück ist alles dabei.

Nach dem Mittagessen beginnen wir etwas im Haus aufzuräumen, denn das Wetter hat sich noch weiter zugezogen. So packen wir die ersten Taschen mit Dingen die wir nicht mehr brauchen werden. Nachmittags machen wir uns dann nochmals los um einige der sehenswerten Kirchen anzuschauen, die wir bisher nicht besichtigt haben. Als erstes fahren wir mit dem Auto an die Chapelle de Languidou. Viel ist von der Kirche nicht mehr übrig, nur noch einige Pfeiler und eine Wand mit einer großen Steinrosette sind erhalten. Continue reading

Bretagne 2018 – Tag 9 und 10 – Loctudy, Hinkelsteinsuche, Île de Sein

Am Sonntag ist das Wetter anfangs noch etwas unentschlossen, wir versuchen es dennoch mit dem Fahrrad – diesmal in Richtung Osten entlang der Küste nach Loctudy und ggf. Île Tudy wenn die Personenfähre bereits in Betrieb ist. Der Radweg ist anfänglich weniger gut ausgebaut und teilweise mit Hindernissen gespickt. An die Kombination mit Fahrradanhänger hat mal wieder keiner gedacht, der die Drängelgitter geplant hat. Teilweise lassen sich diese umfahren, teilweise hilft es nur, den Anhänger herum zu heben.

Bei Lesconil ist ein weiterer Hinkelstein in der Karte verzeichnet, diesen zu finden artet allerdings fast in Geocaching aus. Vor allem weil der Hinkelstein nicht senkrecht steht, sondern wohl irgendwann einmal umgefallen ist. So ist er nicht viel höher als das umgebende Kornfeld. Auch Hinweisschilder sucht man leider vergeblich. In der Nähe des Hafens von Lesconil machen wir Mittag – das Wetter weiß immer noch nicht so ganz was es will, aber tendenziell wird es wärmer und weniger schwül. Lesconil selbst ist recht langezogen aber hübsch anzuschauen. Kurz nach Lesconil liefere ich mir ein kleines Wettrennen mit einem Mobilette-Fahrer – diese alten Fahrräder mit Hilfsantrieb sind hier noch recht weit verbreitet. Bis 30 km/h kann ich mit dem Anhänger mithalten, dann kommt leider ein Kreisverkehr an dem wir den Spaß beenden müssen. Bei Lavor bzw. Kerfriant machen wir den nächsten Stopp am Strand zum Sandspielen für die Kids. Continue reading

Bretagne 2018 – Tag 7 und 8 – Hafenbesichtigung und Quimper

Wahnsinn – eine Woche Urlaub ist schon fast rum – das ging sehr fix. Zumal wir ja noch einige Punkte haben die wir besichtigen wollen. Dabei legen wir uns auch schon einmal fest, dass wir in der Nähe von Laval auf dem Rückweg einen Zwischenstopp einlegen werden. Damit sollte die Fahrt etwas weniger anstrengend werden. Dafür haben wir einen Tag weniger vor Ort, aber auch in Laval wird man einiges besichtigen können.

Für heute haben wir einen Platz zur Besichtigung der Fischversteigerung reserviert – diese findet aber logischerweise erst nach Rückkehr der Fischer in den Hafen gegen Nachmittag statt. Vormittags machen wir daher etwas “klar Schiff” im Haus. Gegen Mittag machen wir noch einen Besuch beim Bäcker – der Inhaber ist ein alter Bekannter von René und daher bleiben wir ein wenig um uns zu unterhalten. Natürlich inklusive der Verkostung von Crêpes und Cidre. Leicht beschwingt gehen wir danach weiter an den Strand. Somit hat auch der Bollerwagen endlich seinen Einsatz, wieder ein Gerät vom Anhänger das wir benutzt haben. Auf der Liste fehlt jetzt nur noch die Zentriervorrichtung (die hatte ich für den Fall von Regenwetter eingepackt) und Glens rotes Fahrrad (wobei ich hier noch keine passende Straße gefunden habe zum Fahren lernen). Das Wasser ist reichlich frisch, zum Baden definitiv zu kalt, aber zum Füße abkühlen reicht es aus. Immerhin für ein paar Meter Schwimmen kann ich mich dann doch überwinden. Continue reading

Bretagne 2018 – Tag 5 und 6 – Phare d’Eckmühl, la Torche, Pointe du Raz, Cidrerie Kerné

Für heute steht wieder ein Ausflug mit dem Rad auf dem Programm. Damit wir nicht ganz planlos sind, ist der erste Stopp am Office du Tourisme. Dort bekommen wir eine passende detaillierte Karte der Region und auch weitere Infos.

Als nächstes Ziel haben wir eigentlich die Bäckerei im Ort, aber nachdem wir diese gefunden haben, müssen wir feststellen: Mittwochs geschlossen. Also fahren wir erst einmal weiter. Wir folgen ein Stück dem Radweg den wir schon kennen – inklusive der Tücken des selbigen – der Weg ist gerade mal passend für normale Radfahrer – an die Kombination mit Radanhänger hat keiner gedacht.

Die Strecke führt uns dann doch recht zügig nach Penmarc’h, dem Hauptziel unserer Tour. Dort steht der Leuchtturm d’Eckmühl (eigentlich benannt nach der Schlacht bei Eggmühl). Im Ort ist ein Bäcker ausgeschildert, aber auch dieser hat leider geschlossen. Also fahren wir direkt weiter zum Leuchtturm. Vor dem Office du Tourisme stärken wir uns dann nochmal, bevor wir die 307 Stufen nach oben erklimmen. Die Aussicht ist wirklich nicht schlecht. Ich bin ja fast versucht mal zu probieren wie schnell man nach oben kommen kann – der Rekord liegt bei knapp unter 46 Sekunden. Aber mit Nachwuchs an der Hand ist an Rekorde einfach nicht zu denken. Continue reading

Bretagne 2018 – Tag 3 und 4 – Léchiagat, Bénodet und Concarneau

Nach der ganzen Fahrerei lassen wir es am dritten Urlaubstag etwas ruhiger angehen – der Anhänger muss noch entladen werden und auch der Inhalt der Koffer will auf die verschiedenen Schränke verteilt werden. Das Material auf dem Anhänger hat den Transport ohne größere Schäden überstanden, der Griff des Radanhängers hat wohl gegen irgendetwas gescheuert, auf der Rückfahrt werden wir ihn daher nochmal besser polstern müssen. Aber die Räder sind intakt und es gibt dort keine Schrammen oder verbogene Teile.

Das Wetter spielt auch hervorragend mit, es ist wunderbar sonnig. Das erleichtert natürlich das Abladen des Anhängers, auch wenn wir ihn ggf. in die hauseigene Garage schieben könnten – in dieser wäre auch für diesen noch ausreichend Platz. So nutzen wir den Platz um die Räder und das Zubehör abfahrbereit aufzustellen. Continue reading