Redundancy 2 wird von Grund auf neu entwickelt. Ich möchte Euch an dieser Stelle einen kleinen Einblick in den aktuellen Zustand der Neuentwicklung von Redundancy 2 geben. So weit sieht es wie folgt aus: In dieser Woche konnte ich endlich mal damit beginnen, an der Zukunft von Redundancy zu schreiben. Jeder, der einmal eine Software einem Neubeginn unterzogen hat weiß, dass man oft Gefahr läuft, bei der Neuentwicklung auf alte Codefragmente zu setzen. Eine Lenticularis – Wolke. Bildquelle: Wikipedia (https://commons.wikimedia.org/wiki/File:Lenti\_bayern\_190604-2.jpg) Die kommende Version 1.9.15 hat nach einer kurzen Besprechung mit @phis59 einen Codenamen erhalten, der da "Lenticularis" lautet. Nein, das ist nichts zum essen, es handelt sich dabei um eine linsenförmige Erscheinungsform von Wolken. Da alle Redundancy-Versionen Codenamen rund um Wolken besitzen, war das auch hier recht passend. Ich habe heute daher mir einen frischen (und vor allem leeren) Zweig angelegt mit dem ich sicherstellen will, dass keine "Leichen" aus dem alten Sourcecode übernommen werden. Der Zweig heißt wie der Codename "Lenticularis" und kann auf GitHub eingesehen werden. Natürlich ist der für den Endbenutzer im aktuellen Stand mehr als ungeeignet. Das sei nur mal am Rande erwähnt.
Ein Anfang ist da
Ich habe letzte Woche den neuen Einstiegspunkt von Redundancy, eine zentrale REST-API, geschrieben. Bei dieser handelt es sich um ein Teil des Skriptes, das über HTTP – Requests (GET und POST) die Informationen erhält und die Aufgaben an die Programmlogik weiterleitet. Die Übergabe der neuen Daten erfolgt über das JSON – Format, mit dem auch später mit der Oberfläche kommuniziert werden soll. Von der Abstraktion von Oberfläche und "Kernel" erhoffen wir uns große Performancevorteile, nicht zuletzt ist gleichzeitig dann eine Schnittstelle, z. B. für die Clients direkt vorhanden. Insgesamt ist das alles noch sehr wage, aber da ein sehr wichtiger Teil der Software soweit steht, kann es mit den eigentlichen Funktionalitäten allmählich losgehen. Yay! ### Kernelbestandteile für Benutzeraktionen
Zusätzlich habe ich mich neben dem Einstiegspunkt mit dem Teilkernel beschäftigt, der Benutzerfunktionalitäten mitbringt. Gerade bei diesen Funktionen sollen natürlich auch Verbesserungen ggü. der alten Version erkennbar sein. Daher habe ich bei der Passwortfunktionaltität nicht mehr auf einen eigenen Code, sondern auf eine von PHP mitgebrachte Möglichkeit zum sicheren Hashen von Passwörtern namens password_hash() gesetzt. Ich denke, dass diese Lösung sinnvoller ist als ein von mir selbst geschriebener Code, denn ich bin kein Krypto-Mensch, der viel Zeit für die Konzipierung einer wirklich "sicheren" Kryptolösung hat. Als Ergebnis aus der heutigen Arbeit resultieren Funktionalitäten zur serverseitigen Benutzerregistrierung, Authentifizierung und der erste Teil des Sessionmanagements (welches für die Trennung von "Kernel" und Oberfläche unverzichtbar ist). In Kürze folgt der Rest der Funktionen. Natürlich rede ich hier nur von den serverseitigen Funktionen, eine Oberfläche dazu gibt es nocht nicht. Durch die Zeit, die ich in den letzten paar Tagen in das Programm investiert habe konnten sich jetzt schon zwei Verbesserungen erkennen lassen: Zum einen ist es nun nicht mehr notwendig, aufwendig einen Programmpfad in einer Konfigurationsdatei zu vermerken, zum anderen ist ein besserer Algorithmus zur Passwortverwaltung nun integriert. Und natürlich ist nicht zu vergessen, dass Redundancy nun auch andere Datenbanken neben MySQL benutzen kann 🙂 ! Gestern habe ich weitere Funktionalitäten, z. B. zum Ändern des Passworts oder zur Übergabe von Sprachwerten an die JavaScript UI über die REST – API realisiert. Ich nähere mich in großen Schritten dem Punkt, an dem ich endlich die Dateisystemfunktionen implementieren kann. Bis dort könnte es jedoch noch etwas dauern. Zusätzlich zu einer neuen (und somit hoffentlich auch saubereren) Basis wird ein neuer professionellerer Stil auch neben dem Programmieren gepflegt. So ist der Code vollständig dokumentiert, es gibt ein internes Wiki und ein Forum. In Zukunft werden wir ein Entwicklungstagebuch führen. Dieses wird aber nicht auf meinem Blog stattfinden, sondern in einem eigenen Blog gebündelt sein. Auf meinem Blog werde ich lediglich über allgemeine Dinge zu Redundancy 2 berichten. – – – – – –
Bildquelle Lenticularis-Wolke: Wikipedia: https://commons.wikimedia.org/wiki/File:Lenti\_bayern\_190604-2.jpg