flightxpress - virtual airline
Bereiche
> News
> Blog
> Flotte
Artikel
IVAO Touren 2018
Winterflugplan
Umstrukturierung Cargoflotte
weitere Flottenaenderung
By By B767
Cargoflotte mit neuem Flugplan
PICas und P3D v4
Flugplananpassung
Sommerflugplan Sky-Sunliner
Sommerflugplan
neuer AI-Traffic 2017
neue Repaints
Hub Amsterdam komplett
B767 nach Amsterdam
Hub in Palma fertiggestellt
Buchungsproblem CRJ beseitigt
Buchungsproblem CRJ
Winterflugplan 2015/16
Erste TRs bestanden
neuer AI-Traffic
Flottenaenderung
Neue Regeln Teil 3
TR Regeln Version 2
Neue TR-Regeln
Sommerflugplan Cargo
Flottenzuwachs
Cargoflotte
Ende der Australien-Tour
Das Regelwerk
Änderung FSPassenger
Flugbuchung
neue Texturen
B767-300ERF Boston
ATR fliegt wieder
Flugplanwechsel
2.Tourteil Australien online
Cargoliner Triple-7
B737-400
Umzug Website
Winterflugplan Boston
Änderung Teamspeak 2
Neuer alter Flugbetriebsleiter Cargo
Newsletter 1/2013
777, die Zweite
Repaint für PMDG 777-200LR
Auf in die Karibik
Urlaub!
Änderung Teamspeak
Flugplan Sunliner
Awards nachgereicht
Reparatur beendet
B767 OE-LSH gegroundet
Keine TRs
IVAO Touren
Teamspeak [LIVE]
Februarupdate
1. Tour 2013
2012. Ein Jahr geht zu Ende
Weihnachten
Update 3.055 [live]
Cargohub Boston
Scandinavientour Teil 2
Hubmanager Boston
Update 3.05
Ausfall Website
Was gerade passiert.
Der Sommer bei der FXPAir
Tour 2012: Skandinavien
Newsletter 02/2012
Update (19:30 local)! Verbinungsprobleme Multiplayer-Server
Serverwartung
Bostoner Sommer
(kleines) Treffen auf unserem Multiplayer-Server in Bhutan
Typeratings upgedatet
IFR-A Zeiten upgedatet
Sommerflugplan 2012
eingeschränkte Buchungsmöglichkeit
Neues vom Online Server
Release & Update 1.05
Buchungsproblem gelöst
Buchungsprobleme über neue Webseite
Kartenlayout
Zweiter A380
Neues Tutorial
Karte 2.0 [accomplished]
B747-8F
Kängurus hüpfen wieder
10 Jahre (und ein paar Monate) FXP-AIR
Online Server
Karte 2.0
Frohe Weihnachten!
Stand der Dinge!
Fonts!
IVAO visualisiert!
(Not) Lost in Performance
Einblicke und Ausblicke - Part 2
PICas 3.0 - Episode 3
Einblicke und Ausblicke - Part 1
Signaturen
Flugplan 2011/2012
Bericht aus dem Paintshop
Testzeit
kleines großes Update für den A380
FXPAir Desktop Outfit
Neue Karten braucht das Land!
Unser Blog ganz Allgemein
Online-Tutorial Teil 2 fertig
multiplayer server wird noch besser
Let's blog it!

Einblicke und Ausblicke - Part 2

von Emmanuel Kurz geschrieben am 11.10.2011 00:14

Willkommen zum Part 2 von "Einblicke und Ausblicke"!

Wie im ersten Teil bereits angekündigt wird die neue Website nochmal überarbeitet werden, dafür peile ich so den Winter an. Natürlich ist die Website zum jetzigen Entwicklungsstand absolut einwandfrei zu verwenden und arbeitet bis jetzt tadellos!

Es ist einfach nur so, dass ich die Erfahrungen, die ich bei der Entwicklung gesammelt habe, gemeinsam in eine neue Basis einbetten möchte, die es uns erlaubt schneller und einfacher das System zu erweitern. Klingt nach einer Ausrede oder PR Geschwafel ist es aber nicht, im Gegenteil, es ist ein normaler Prozess in der Software Entwicklung. Zwar kann man (fast) immer ein Skript ver(schlimm)bessern aber es ist oft einfach besser den Code mit der gesammelten Erfahrung neu zu schreiben um am Ende ein besser strukturiertes Programm zu erhalten! Und genau das ist der Plan.

Um etwas genauer zu werden ...

Die "Basis", die ich vorhin erwähnte, wird ein Framework das ich selbst - vor einiger Zeit - entwickelt habe.

Was ist nun ein Framework?

Kurz gesagt: Das ist ein Code Gerüst bei dem bereits viele grundlegende Komponenten bereits eingebaut sind und dem Entwickler als Schnittstelle zur Verfügung gestellt werden.

Zum Beispiel wird gerne das Beispiel mit der Steckdose (steht fürs Framework) gebracht. Damit nicht jeder einen Anschluss fürs Stromnetz erfinden muss - also quasi das Rad neu erfinden - bauen Elektriker eine Steckdose in die Wand ein. Das ist die Schnittstelle für den Benutzer. Jetzt kann man per Stecker seine elektrischen Geräte anschließen und sofort verwenden. Der Hersteller vom Gerät, hat sich im vorhinein bereits an  gewisse (Schnittstellen) Richtlinien gehalten und sein Gerät optimiert das es mit 230V umgehen kann und nicht gleich abraucht oder einen Kurzschluss verursacht.

Genauso ist es mit dem Framework. Es beinhaltet bereits grundlegende Sachen wie eine Datenbankverbindung, ein Fehleranalysetool, Zugriff aufs Dateisystem usw. und stellt diese als (standardisierte) Schnittstelle, dem Programmierer zur Verfügung. Der muss sich nur noch daran halten und kann sofort von Updates/Upgrades am Framework profitieren ohne nur eine Codezeile am eigentlichen Projekt zu ändern! In unserem Fall sind damit aber noch nicht alle Probleme gelöst ...

Ich habe auch im letzten Artikel angesprochen, dass ich gewisse Entwicklungen verwende  die unsere jetzige Architektur gar nicht (direkt) unterstützt. Allerdings die Lösung für dieses Problem kennt jeder, wenn auch unbewusst! Nehmen wir wieder das Beispiel mit der Steckdose her. Dieses mal der Fall wenn wir in ein anderes Land reisen. Wir stehen vor der Steckdose (unsere Schnittstelle), können allerdings unser Ladegerät nicht anstecken weil der Stecker ein anderer ist. Damit wir die Batterien für unseren Fotoapparat doch noch aufladen können, gibt es jetzt eine einfache Lösung! Nämlich, eine weitere Schnittstelle bzw. Adapter. Da Eingang und Ausgang standardisiert sind, können wir uns einfach einen Zwischenstecker kaufen und diesen in die Steckdose reindrücken und dort können wir wieder unser Ladegerät anstecken. Problem gelöst und dass sehr elegant.

Das Framework verwendet ebenfalls so einen Ansatz. Die Daten werden bereitgestellt, allerdings im falschen Format. Gut kein Problem, wir wissen ja, einfach eine Schnittstelle darüber legen die richtig formatiert und schon weiß auch JavaScript was mit den PHP Daten anzufangen ist.

Im Moment fehlt aber genau diese Möglichkeit der Implementierung von Schnittstellen!

Wenn wir allerdings das haben, ist bereits ein großer Schritt getan!

Wie sieht es nun aber aus wenn ein Fehler auftritt? Ich zeige euch mal ein typisches Bild, das bei uns Auftritt wenn NICHTS geht, es beinhaltet auch gleich alle Fehlermeldungen.

 

Nichts, ist in dem Fall wörtlich gemeint und die Fehlermeldungen erscheinen nicht weil wir nirgendwo in der Basis eine Möglichkeit haben sie zu registrieren um sie dann analysieren zu können. Ich habe zwar ein paar "Debug"-Funktionen geschrieben allerdings sind diese ziemlich properitär und mit keinen anderen Funktionen aus der Basis verbunden, was wiederrum den Traum einer komfortablen Fehlersuche in weite Ferne rückt.

Hier kommt wieder mein Framework ins Spiel, damit kann man so ziemlich alles reporten was man gerne hätte, kann bestimmte Aktionen festlegen die im Anschluss ausgeführt werden sollen (zB den Entwickler per Mail kontaktieren) und zeigt Zusatzinformationen an um die Fehlersuche einzuschränken. Dem allerdings nicht genug! Ein weiterer Grund warum ich Eigentwicklungen vorziehe ist das man schnell in ein vertrautes System weitere Funktionen einbinden kann. So lässt sich das Framework schnell mit einem Profilingtool ausrüsten und erlaubt es mir so den Code performanter zu gestalten oder Anfragen an die Datenbank zu optimieren.

Profilingtool?

Ein Tool mit dem man Prozesse analysieren kann und in die einzelnen Bestandteile "herunterbrechen" kann. Zum Beispiel zeigt es Laufzeiten an, Speicherverbrauch und den Inhalt von Variablen zu bestimmten Zeitpunkten. Wenn ich möchte kann ich sogar einen kompletten Snapshot (Schnappschuss) einer Websitensitzung abspeichern und dann in Ruhe analysieren. In dem Fall muss ich gar nicht selbst den Fehler reproduzieren können damit ich genauer suchen kann. Sondern ich kippe einfach nur einen Schalter um und warte bis das Problem auftritt. Praktisch! :)

Ein Framework ist also in mehrerer Hinsicht sehr hilfreich. Deswegen werde ich meines als unabhängiges(!) VA Produkt, parallel weiterentwickeln. Das heißt, dieser Unterbau wird sehr abstrakt geschrieben sodass es viel mehr Anwendungszwecke gibt als nur die VA eigenen! Und zwar aus dem einfachen Grund weil wir Ideen / Pläne, für die Zukunft der Website haben die eigentlich recht wenig mit VA Strukturen zu tun haben.

Bestes Beispiel dafür, dieser Blog. Eine eigenständige Applikation basierend auf einem neuen Newssystem, welches mittels vorgegebenen Schnittstellen schnell in die VA Seite eingebunden ist. Damit lässt sich zum Beispiel auch ein Informationsportal realisieren (was wir übrigens auch getan haben :) ), die in dieser Form so gar nichts mit einer VA gemein hat, die VA aber kann natürlich darauf zurückgreifen.

Also ja, die neue Website verfügt über ein Newssystem bei dem es unterschiedliche Kanäle gibt, einer davon ist dieser Blog.

Damit beende ich diesen Blogeintrag und entschuldige mich wieder für die Länge. Aber ich denke dieser ist gut strukturiert und gibt viel Eindruck von dem Vorhaben in den nächsten Monaten! :)

Danke fürs Lesen!