Montag, 10. Januar 2022

Better Access Charts: Das Prinzip "Teile und Herrsche"

Beim Prinzip "Teile und Herrsche" wird ein Problem so lange in kleinere Teilprobleme zerlegt, bis diese beherrschbar sind. So schreibt es Wikipedia. Was dieses Prinzip mit der Umsetzung von Better Access Charts zu tun hat, erklärt dieser Beitrag.

Das Projekt Better Access Charts ist Stück für Stück gewachsen. Am Anfang war alles klein und relativ übersichtlich. Der gesamt Code war in einem einzigen Klassenmodul abgelegt. Das macht es einfach Better Access Charts in eine eigene Anwendung zu integrieren. Einfach nur ein Klassenmodul importieren und schon kann das Coden beginnen.

Dieses Vorgehen hat aber auch einen Nachteil. Mit jedem Feature, welches hinzugekommen ist, ist das Klassenmodul gewachsen. Der Code wurde dadurch immer länger. Am Ende haben sich im Klassenmodul ganze 47 (!!!) Eigenschaften angesammelt. Das wurde dann beim Coden unübersichtlich. Bei 47 Eigenschaften kommt auch die IntelliSense langsam an ihre Grenzen.

Basierend auf dieser Erfahrung habe ich im Schwesterprojekt Better Access PivotTable von Anfang an darauf gesetzt, den Code auf mehrere Klassenmodule zu verteilen. Über die Ergebnisse meiner Bemühungen habe ich am 01.12.2021 und am 12.12.2021 berichtet.

Nun ist es an der Zeit, diese gewonnenen Erkenntnisse auch in diesem Projekt umzusetzen. Bedanken darf ich mich an dieser Stelle bei Klaus Gundermann. Klaus hat die grundlegende Arbeit gemacht und das große Projekt in viele kleine Klassen zerlegt.

Ich habe diese Arbeit als Vorlage für Better Access PivotTable genommen und dort entsprechend umgesetzt. Nachdem ich jetzt selber praktische Erfahrungen mit dieser Art zu Coden habe und weiß, wie sich das "anfühlt", ist es an der Zeit die Änderung auch bei Better Access Charts durchzuführen.

So sieht der neue Code dann aus:

In Zeile 1 wird eine Variable vom Typ der neuen Basisklasse deklariert.
In Zeile 2 wird eine neue Instanz erzeugt. Dabei wird gleich das Webbrowser-Steuerlement übergeben.
In den Zeile 3 bis 5 kommt die Klasse DataSource zum Einsatz.
In Zeile 6 ist die Verwendung der Klasse Default mit der Unterklasse Font zu sehen.
In Zeile 7 wird festgelegt, dass eine Legende angezeigt wird.
In Zeile 8 wird der Chart dann schlußendlich erstellt.

Ich bin mir sicher, dass Better Access Charts durch die Aufteilung des einen großen Klassenmoduls in viele kleinere Klassenmodule besser für Erweiterungen in der Zukunft vorbereitet ist.

Die aktuelle Version von Better Access Charts steht wie immer auf GitHub bereit:
https://github.com/team-moeller/better-access-charts

Keine Kommentare: