2023-01-02 11:42:39 +01:00
\chapter { Stand der Technik}
\label { chap:stand-der-technik}
2023-03-21 17:52:19 +01:00
Der Stand der Technik bezieht sich auf bestehende, praktische Umsetzungen der erforderlichen Technologien.
2023-03-30 18:59:27 +02:00
Im Wesentlichen gibt es drei Arten von Technologien, die untersucht werden müssen: Die bestehende Webseite von \ac { WM} ,
2023-03-21 17:52:19 +01:00
Bibliotheken zur Erzeugung von QR-Codes und Bibliotheken zur Erzeugung von PDF-Dateien.
2023-01-20 02:45:55 +01:00
\section { Die bestehende Webseite}
2023-03-21 17:52:19 +01:00
Als Mitentwickler des Projektes ist dem Autor bekannt, dass die bestehende Webseite ein TYPO3-Redaktionssystem ist. Das Frontend der Webseite wird mit Webpack und Sass übersetzt.
2023-03-29 19:07:27 +02:00
Webpack ist ein Modulbundler \cite { bib:smashmagazine-webpack} und Sass ein CSS-Präprozessor
2023-03-28 17:51:50 +02:00
\break \cite { bib:w3schools-sass} .
TYPO3 ist ein Redaktionssystem und PHP-Rahmen\- werk, das Daten- und Inhaltspflege in einem geschützten Bereich
2023-03-27 00:16:07 +02:00
ermöglicht.
2023-03-29 19:07:27 +02:00
Außerdem steuert TYPO3 Frontend-, Backend-Nutzer und deren Berechtigungen \cite { bib:typo3-docs-getting-started} .
2023-03-27 00:16:07 +02:00
Über die Systemerweiterung
2023-03-29 21:59:19 +02:00
\enquote { Extbase} wird eine mächtige Entwicklerschnittstelle bereitgestellt,
2023-03-28 17:51:50 +02:00
um hochindividualisierte Funktionalitäten zu ermöglichen.
\\ \cite { bib:typo3-docs-extbase-reference}
2023-01-20 10:18:56 +01:00
2023-03-21 17:52:19 +01:00
\section { QR-Code-Bibliotheken}
2023-01-20 10:18:56 +01:00
Um mit QR-Codes zu arbeiten, ist es unabdinglich, QR-Codes zu erstellen, da dieselben sonst nicht vorhanden sind.
2023-02-02 12:20:44 +01:00
Im Folgenden werden einige Implementationen von QR-Code-Generator-Bibliotheken im Detail betrachtet. Es wird sich
2023-03-29 14:22:01 +02:00
auf bereits vom System verwendete Programmiersprachen begrenzt.
2023-01-20 10:18:56 +01:00
2023-01-31 10:00:11 +01:00
\subsection { Javascript-Implementationen}
2023-03-30 19:31:13 +02:00
\subsubsection * { jquery-qrcode.js}
\enquote { jquery-qrcode.js} ist ein Plugin für jQuery, um dynamisch QR-Codes auf Browserseite zu generieren.
2023-01-20 10:18:56 +01:00
Jedoch verweist diese Bibliothek selbst auf ihren desolaten Zustand und empfielt stattdessen \enquote { kjua} zu verwenden
2023-03-30 19:31:13 +02:00
\cite { bib:larsjung-jquery-qrcode} . Somit scheidet \enquote { jquery-qrcode.js} für nähere Evaluationen aus, da die Software nicht mehr
gepflegt wird. \enquote { jquery-qrcode.js} wurde bis Januar 2023 853 mal von Nutzern mit einem Stern
2023-01-23 18:16:52 +01:00
markiert \cite { bib:larsjung-jquery-qrcode} .
2023-03-21 17:52:19 +01:00
Wenn ein Nutzer ein Github-Repository mit einem Stern markiert, zeigt sich der Nutzer interessiert genug,
2023-03-30 19:31:13 +02:00
um über Neuigkeiten auf dem Laufenden gehalten werden zu wollen \cite { bib:github-stars} . \enquote { jquery-qrcode.js} ist MIT-lizensiert
2023-01-30 13:25:47 +01:00
\cite { bib:larsjung-jquery-qrcode} .
2023-01-20 10:18:56 +01:00
2023-03-30 19:31:13 +02:00
\subsubsection * { kjua}
\enquote { kjua} ist eine Javascript-Bibliothek, die dynamisch QR-Codes auf Browserebene generiert.
Im Gegensatz zu \enquote { jquery-qrcode.js} funktioniert \textit { kjua} auch ohne jQuery. Es werden diverse Stilattribute für gestaltete
QR-Codes unterstützt \cite { bib:larsjung-kjua} . \enquote { kjua} kann QR-Codes über HTML-Canvas, Bilder und Vektorgrafiken umsetzen.
Das ist bei näherer Betrachtung der Kjua-Tech-Demo \enpointy { https://larsjung.de/kjua/latest/demo} ersichtlich, jedoch
2023-03-29 19:07:27 +02:00
nicht explizit erwähnt. Nach dem aktuellen Stand (Januar 2023) wurde \enquote { kjua} von 243 Nutzern mit einem Stern markiert.
\enquote { Kjuas} letzte Codeänderung liegt circa zwei Jahre zurück. Es gibt eine unbeantwortete, sieben Jahre alte Pull-Request und
2023-03-30 19:31:13 +02:00
Issues scheinen ignoriert zu werden. \enquote { kjua} ist MIT-lizensiert \cite { bib:larsjung-kjua} .
2023-01-20 10:18:56 +01:00
2023-03-30 19:31:13 +02:00
\subsubsection * { soldair/node-qrcode}
\enquote { soldair/node-qrcode} ist eine Node.js-basierte Implementation eines QR-Code-Generators und bietet somit Funktionialität
2023-03-29 19:07:27 +02:00
serverseitig, als Kommandozeilenwerkzeug, sowohl auch browserseitig an. Die Readme-Datei ist umfangreich, reich an Beispielen
2023-01-20 10:18:56 +01:00
und detailreichen Erklärungen. Der letzte Commit ist zu diesem Zeitpunkt knapp älter als ein halbes Jahr. Somit macht das
2023-03-29 19:07:27 +02:00
Projekt einen moderat gepflegten Eindruck. Die Readme-Datei verweist auf Unit-Tests bei Travis, jedoch lief die letzte Pipeline
2023-03-30 18:59:27 +02:00
vor etwa zwei Jahren, Februar 2021, durch und schlug fehl. Einige Pull-Requests und Issues werden seit Jahren ignoriert
2023-01-20 10:18:56 +01:00
\cite { bib:soldair-node-qrcode} .
2023-03-29 19:07:27 +02:00
Die Bibliothek wurde 74 Millionen mal heruntergeladen und mit 6.308 Sternen markiert.
\enquote { Soldair/node-qrcode} ist MIT-lizensiert \cite { bib:npmjs-soldair-node-qrcode} .
2023-01-20 10:18:56 +01:00
2023-01-31 10:00:11 +01:00
\subsection { PHP-Implementationen}
2023-03-30 19:31:13 +02:00
\subsubsection * { chillerlan/php-qrcode}
2023-03-29 19:07:27 +02:00
Eine arrivierte Lösung für QR-Code-Generierung in PHP ist \enquote { chillerlan/php-qrcode} , umgesetzt durch
2023-03-30 19:31:13 +02:00
Eugen Rochko et al.. \enquote { chillerlan/php-qrcode} s Etabliertheit zeigt sich durch den zu diesem
2023-03-29 19:07:27 +02:00
Zeitpunkt (Januar 2023) auf 5 Millionen stehenden Downloadzähler,
mehreren Entwicklern und dem letzten Commit, der zu diesem Zeitpunk nicht älter als einen Monat ist.
2023-01-20 10:18:56 +01:00
Insgesamt erfolgten bis dato 808 Commits von 6 Entwicklern. Das Projekt verfügt über Unit-Tests,
2023-02-02 12:20:44 +01:00
die 90\% der Zeilen der Codebase abdecken. Rochko übernahm Teile der Codebase aus
2023-01-20 10:18:56 +01:00
dem Java-Projekt \enquote { ZXing} und übersetzte diese zu PHP.
2023-02-02 12:20:44 +01:00
Es gibt zu diesem Zeitpunkt keine unbeantworteten Issues oder Pull-Requests.
2023-03-30 19:31:13 +02:00
\enquote { chillerlan/php-qrcode} basiert auf einer angepassten Version von \enquote { kazuhikoarase/qrcode-generator} .
2023-03-29 19:07:27 +02:00
Einzig auffällig sind die Commitnachrichten, die zuteils nur aus einem Emoji bestehen.
2023-03-30 19:31:13 +02:00
\enquote { chillerlan/php-qrcode} wurde von 1.212 Github-Nutzern mit einem Stern markiert.
2023-03-28 17:51:50 +02:00
Die Bibliothek ist MIT-\break { } lizensiert
2023-01-20 10:18:56 +01:00
\cite { bib:chillerlan-php-qrcode} .
2023-01-23 18:16:52 +01:00
2023-03-30 19:31:13 +02:00
\subsubsection * { kreativekorp/barcode}
\enquote { kreativekorp/barcode} ist eine PHP-Bibliothek zur Generierung von QR-Codes, bereitgestellt von
2023-03-29 19:07:27 +02:00
\enquote { Kreative Software} , R.G. Bettencourt.
Diese Implementation umfasst etablierte Barcode-Formate und unterstützt eine Vielzahl an Anpassungsmöglichkeiten.
Das Projekt wurde bis zum heutigen Tag 189 mal mit Sternen markiert \cite { bib:kreativkorp-barcode} .
2023-02-02 12:20:44 +01:00
Vier von den sechs vorhandenen Commits erfolgten innerhalb von zwei Tagen in 2016. Ein weiterer
2023-01-23 18:16:52 +01:00
Commit erfolte wenige Tage später. Der aktuellste Commit wurde knapp zwei Jahre später, 2018, veröffentlicht.
2023-02-02 12:20:44 +01:00
Das liegt zu diesem Zeitpunkt vier Jahre in der Vergangenheit.
2023-03-29 19:07:27 +02:00
Damit ist diese Bibliothek de facto sechseinhalb Jahre alt und wurde seitdem einmal um Featuers erweitert.
2023-01-30 13:25:47 +01:00
Issues und Pull-Requests werden weitestgehend ignoriert.
2023-03-29 19:07:27 +02:00
Die Bibliothek verwendet die MIT-Lizenz.
\\ \cite { bib:kreativkorp-barcode} .
2023-01-26 09:20:44 +01:00
2023-01-27 08:59:10 +01:00
\subsubsection * { Bacon/BaconQrCode}
2023-03-29 19:07:27 +02:00
\enquote { Bacon/BaconQrCode} ist eine PHP-Bibliothek zur Generierung von QR-Codes, bereitgestellt von Ben Scholzen, hinter
2023-01-27 08:59:10 +01:00
der Github-Organisation \enquote { Bacon} , dessen einziges Mitglied Scholzen darstellt. Verlinkt ist eine Homepage,
2023-03-29 19:07:27 +02:00
die zu einer Nginx-\enquote { Hello World} -Seite führt. Begleitet wird \enquote { BaconQrCode} von etlichen weiteren \enquote { Bacon-Projekten}
2023-03-30 18:59:27 +02:00
wie Beispielsweise \enquote { BaconPdf} , \enquote { BaconStringUtils} und \enquote { BaconUser} um nur einige zu nennen.
2023-01-27 08:59:10 +01:00
Insgesamt machen die stichprobenartig betrachteten Projekte einen desolaten Eindruck mit zuteils aktuellesten Commits
2023-03-29 19:07:27 +02:00
von vor zehn Jahren. \enquote { BaconQrCode} stellt das beliebteste und gepflegteste Projekt von Scholzen mit 1.508 Sterne-Markierungen und
einem aktuellsten Commit von vor zwei Monaten dar. \enquote { BaconQrCode} fällt mit siebzehn Entwicklern auf, die jeweils zumindest
2023-03-21 17:52:19 +01:00
einen Commit beigetragen haben. Zu diesem Zeitpunkt fanden 177 Commits statt. Githubs DependencyGraph verzeichnet
nahezu 80.000 Projekte, die BaconQrCode verwenden \cite { bib:bacon-baconqrcode} und Packagist meldet 50 Millionen Downloads
2023-03-29 14:22:01 +02:00
\cite { bib:packagist-baconqrcode} .
2023-03-29 19:07:27 +02:00
Wie \enquote { chillerlan/php-qrcode} baut auch Scholzen auf existierende Technik von \enquote { ZXing} auf.
2023-03-29 14:22:01 +02:00
Eine Dokumentation neben der Readme-Datei existiert nicht und
2023-03-29 19:07:27 +02:00
diese ist sehr minimalistisch. \enquote { BaconQrCode} kann QR-Codes als Rasterbilder und Vektorgrafiken (SVG und EPS) generieren.
2023-01-30 13:25:47 +01:00
Spezielle Styles sind nicht erwähnt. Ein Großteil der Issues und Pull-Requests wurden behandelt.
2023-03-29 19:07:27 +02:00
\enquote { BaconQrCode} unterliegt einer BSD-2-Clause-Lizenz
2023-01-27 08:59:10 +01:00
\cite { bib:bacon-baconqrcode} .
2023-03-21 17:52:19 +01:00
\subsection { Subjektiver Vergleich im Bezug auf die Problemstellung}
Im Folgenden werden subjektive Einschätzungen und Meinungen des Autors über die Eignung der beleuchteten
2023-03-15 11:16:38 +01:00
Bibliotheken vorgestellt.
2023-03-29 19:07:27 +02:00
Um eine Bibliothek als \enquote { am geeignetsten} für einen Anwendungsfall unter den betrachtenen Bibliotheken zu kurieren,
müssen die konkreten Anforderungen für diesen Anwendungsfall beachtet werden.
2023-03-29 21:59:19 +02:00
Das ist so, da verschiedene Eigenschaften der Bibliotheken verschiedene Auswirkungen in Gewichtung und Richtung
2023-01-26 09:20:44 +01:00
je nach Anwendungsfall aufweisen.
Hierfür werden die zuvor vorgestellten Bibliotheken zur Erstellung von QR-Codes in den folgenden Attributen gegenübergestellt:
\begin { description}
\item [Funktionialität] \hfill \\
2023-03-29 19:07:27 +02:00
Der Umfang, der unterstützten Funktionen, in Annahme dessen, dass die Bibliothek
2023-03-30 18:59:27 +02:00
syntaktisch und semantisch korrekt ist\\ \cite { bib:heinemann-vorlesung-re} .
2023-01-26 09:20:44 +01:00
\item [Gepflegtheit] \hfill \\
2023-01-30 13:25:47 +01:00
Das Ausmaß, in dem das Projekt aktiv gepflegt wird und ordnungsgemäß entwickelt zu sein scheint.
2023-01-26 09:20:44 +01:00
Hierzu zählen beispielsweise: Bearbeitung von Issues, Bearbeitung von Pull-Requests, Präsenz von Tests,
2023-03-21 17:52:19 +01:00
Präsenz einer angemessenen Dokumentation, häufige Commits, mehrere Entwickler, Anzahl der
2023-03-29 19:07:27 +02:00
Sterne auf Github, sowie der Anzahl der
2023-03-21 17:52:19 +01:00
Downloads bzw. Installationen, falls verfügbar.
2023-01-26 09:20:44 +01:00
\item [Workflow-Eignung] \hfill \\
2023-03-30 19:50:45 +02:00
Die Eignung einer Bibliothek in existierende Workflows und Randbedingungen übernommen zu werden. Maßgeblich ist,
2023-03-29 14:22:01 +02:00
ob und mit wie viel Aufwand eine Bibliothek in das Projekt übernommen werden kann.
2023-03-29 21:59:19 +02:00
Beispielsweise ist es deutlich aufwändiger eine JavaScript-Bibliothek in einem PHP-Projekt zu verwenden, als eine native PHP-Bibliothek.
2023-03-29 14:22:01 +02:00
Ebenfalls ist relevant, ob die Lizenz einer Bibliothek eine Verwendung gestattet, bzw. welche Bedingungen gelten.
2023-01-26 09:20:44 +01:00
\end { description}
2023-01-30 13:25:47 +01:00
2023-03-30 14:08:43 +02:00
Hierbei werden den verschiedenen Bibliotheken Punkte $ [ 0 , 10 ] $ in den drei zuvor genannten
2023-03-29 14:22:01 +02:00
Kategorien vergeben. Nicht ermittelte Werte werden in ihrer Kategorie durch \enquote { $ - $ } repräsentiert, wodurch
2023-03-21 17:52:19 +01:00
eine weitere Verwendung ausgeschlossen wird.
2023-03-29 19:07:27 +02:00
Die Kumulativpunktzahl $ [ 0 , 30 ] $ einer Bibltiothek beschreibt deren Gesamteignung, nach subjektivem
2023-03-15 11:16:38 +01:00
Empfinden des Autors.
2023-01-30 13:25:47 +01:00
2023-03-30 19:31:13 +02:00
\subsubsection * { kjua}
\enquote { kjua} ist funktional für dieses Projekt gut aufgestellt, da es optisch ansprechende QR-Codes mit Logo unterstützt. Das wird
2023-01-30 13:25:47 +01:00
mit acht Punkten in \enquote { Funktionalität} bemessen.
2023-03-30 19:31:13 +02:00
\enquote { kjua} macht andererseits einen eher desolaten Eindruck und lässt somit begründete Zweifel an dessen Zukunftssicherheit zu.
2023-01-30 13:25:47 +01:00
Eine knappe Dokumentation ist verfügbar. Für die Dokumentation werden zwei Punkte in \enquote { Gepflegtheit} angerechnet.
2023-03-30 19:31:13 +02:00
\enquote { kjua} ist als JavaScript-Bibliothek nur schwer mit den Anforderungen vereinbar,
2023-03-21 17:52:19 +01:00
da der QR-Code in einem PDF eingebunden werden soll. Hierfür ist ein serverseitiger PDF-Generator vorgesehen.
2023-03-30 19:31:13 +02:00
\enquote { kjuas} Lizenz erlaubt Verwendung in kommerziellen, Closed-Source-Projekten \cite { bib:opensource-license-mit} .
2023-01-30 13:25:47 +01:00
Die Exklusivität für Nutzung in Webbrowsern schließt eine Einbindung in den Workflow aus.
2023-03-15 11:16:38 +01:00
\begin { table} [htbp]
\centering
\begin { tabular} { |l|l|l|l|}
\hline
\textbf { Funktionalität} & \textbf { Gepflegtheit} & \textbf { Workflow-Eignung} & \textbf { $ \Sigma $ } \\
\hline
8 & 2 & 0 & 10\\
\hline
\end { tabular}
2023-03-30 19:31:13 +02:00
\caption { Subjektive Evaluation: kjua}
2023-03-15 11:16:38 +01:00
\end { table}
2023-01-30 13:25:47 +01:00
2023-03-30 19:31:13 +02:00
\subsubsection * { soldair/node-qrcode}
2023-01-30 13:25:47 +01:00
Soldairs Lösung sieht dokumentativ und funktional vielversprechend aus.
2023-03-29 19:07:27 +02:00
Hierdurch bilden sich acht Punkte in \enquote { Funktionalität} ab.
2023-03-21 17:52:19 +01:00
Da diese Bibliothek eine Node.js-Bibliothek ist und Node.js ohne Browser, als Kommandozeilenapplikation, ausgeführt werden
2023-03-29 19:07:27 +02:00
kann \break \cite { bib:nodejs-api-cli} , bietet sich
2023-03-30 19:31:13 +02:00
\enquote { soldair/node-qrcode} als serverseitige Anwendung an. Die Lizenz spricht nicht gegen eine Verwendung. Dennoch wäre es
2023-03-29 19:07:27 +02:00
ein vermeidbarer Mehraufwand generierte QR-Codes aus einer Node.js-Applikation in eine PHP-Umgebung zu
2023-01-30 13:25:47 +01:00
übertragen. Das bildet sich mit vier Punkten in \enquote { Workflow-Eignung} ab.
2023-03-30 19:31:13 +02:00
Darüberhinaus macht \enquote { soldair/node-qrcode} einen verbesserungswürdigen Eindruck der Projektpflege, wofür es lediglich
2023-01-30 13:25:47 +01:00
drei Punkte gibt.
2023-03-15 11:16:38 +01:00
\begin { table} [htbp]
\centering
\begin { tabular} { |l|l|l|l|}
\hline
\textbf { Funktionalität} & \textbf { Gepflegtheit} & \textbf { Workflow-Eignung} & \textbf { $ \Sigma $ } \\
\hline
8 & 3 & 4 & 15\\
\hline
\end { tabular}
2023-03-30 19:31:13 +02:00
\caption { Subjektive Evaluation: soldair/node-qrcode}
2023-03-15 11:16:38 +01:00
\end { table}
2023-01-30 13:25:47 +01:00
2023-03-30 19:31:13 +02:00
\subsubsection * { chillerlan/php-qrcode}
2023-01-30 13:25:47 +01:00
Rochkos Lösung macht einen aktiv gepflegten Eindruck und wird von großen Downloadzahlen gestützt.
Rochko stellt eine ausführliche Dokumentation und Codebeispiele bereit.
Hierfür wird die volle Punktzahl in \enquote { Gepflegtheit} vergeben.
2023-03-29 19:07:27 +02:00
Der Funktionsumfang übersteigt weit die Anforderungen und gestattet so ausführlich gestaltete QR-Codes zu generieren
2023-01-30 13:25:47 +01:00
\cite { bib:chillerlan-php-qrcode-demo} ,
2023-03-28 17:51:50 +02:00
die somit die hedonische Qualität fördern \cite { bib:koenig-vorlesung-ux} .
2023-01-30 13:25:47 +01:00
Bewertet wird das mit einer vollen Punktzahl in \enquote { Funktionalität} .
2023-03-30 19:31:13 +02:00
\enquote { chillerlan/php-qrcode} lässt sich nahtlos in das existierende Projekt eingliedern,
2023-01-30 13:25:47 +01:00
da es als PHP-Bibliothek über Composer eingebunden werden kann und eine eigene API bereitstellt \cite { bib:chillerlan-php-qrcode} .
2023-03-30 19:31:13 +02:00
Die von Rochko verwendete Lizenz gestattet eine unkomplizierte Verwendung. \enquote { chillerlan/php-qrcode} funktioniert sowohl mit
2023-03-29 19:07:27 +02:00
PHP- $ 7 .x $ als auch $ 8 .x $ . Die Bibliothek benötigt zwei weitere Abhängigkeiten. Eine dieser Abhängigkeiten ist ebenfalls von Rochko
2023-01-30 13:25:47 +01:00
bereitgestellt \cite { bib:chillerlan-php-qrcode-composerjson} und weist eine ähnlich gute Projektpflege auf
\cite { bib:chillerlan-php-settings-container} . Das wird mit der Maximalwertung in \enquote { Workflow-Eignung} berechnet.
2023-03-15 11:16:38 +01:00
\begin { table} [htbp]
\centering
\begin { tabular} { |l|l|l|l|}
\hline
\textbf { Funktionalität} & \textbf { Gepflegtheit} & \textbf { Workflow-Eignung} & \textbf { $ \Sigma $ } \\
\hline
10 & 10 & 10 & 30\\
\hline
\end { tabular}
2023-03-30 19:31:13 +02:00
\caption { Subjektive Evaluation: chillerlan/php-qrcode}
2023-03-15 11:16:38 +01:00
\end { table}
2023-01-30 13:25:47 +01:00
2023-03-30 19:31:13 +02:00
\subsubsection * { kreativekorp/barcode}
2023-03-29 19:07:27 +02:00
Kreativekorp beeindruckt in der Readme-Datei durch Nutzungsbeispiele und Dokumentation,
2023-03-21 17:52:19 +01:00
sowie einer Vielzahl unterstützter Barcode-Formate, darunter auch QR-Codes und einiger improvisierter Tests.
2023-03-30 18:59:27 +02:00
In Anbetracht dessen, dass die Bibliothek de facto sechseinhalb Jahre alt ist und seit vier Jahren nicht mehr
2023-03-21 17:52:19 +01:00
angepasst wurde, wird eine geringe Wertung von drei Punkten in \enquote { Gepflegtheit} vergeben.
Null Punkte in \enquote { Workflow-Eignung} rechtfertigen sich durch die Abwesenheit jeglicher
Unterstützung für Paketmanager, wodurch eine saubere Verwendung in dem Brown-Field-Projekt
2023-03-29 19:07:27 +02:00
Änderungen an der Bibliothek an sich erfordern würde.
2023-01-30 13:25:47 +01:00
Die Funktionalität wurde aufgrund der desaströsen Gepflegtheit und Eignung nicht näher untersucht,
da eine Verwendung selbst mit guter Funktionalität nicht infrage käme.
2023-03-15 11:16:38 +01:00
\begin { table} [htbp]
\centering
\begin { tabular} { |l|l|l|l|}
\hline
\textbf { Funktionalität} & \textbf { Gepflegtheit} & \textbf { Workflow-Eignung} & \textbf { $ \Sigma $ } \\
\hline
2023-03-21 17:52:19 +01:00
- & 3 & 0 & -\\
2023-03-15 11:16:38 +01:00
\hline
\end { tabular}
2023-03-21 17:52:19 +01:00
\caption { Subjektive Evaluation: Kreativekorp/barcode}
2023-03-15 11:16:38 +01:00
\end { table}
2023-01-30 13:25:47 +01:00
\subsubsection * { Bacon/BaconQrCode}
2023-03-29 19:07:27 +02:00
\enquote { BaconQrCode} nennt keine speziellen Optionen, um näheren Einfluss auf den generierten QR-Code auszuüben.
2023-01-30 13:25:47 +01:00
Es werden Rasterbilder und verschiedene Vektorformate als Renderziel unterstützt. Aufgrund der fehlenden Optionen,
2023-03-29 19:07:27 +02:00
die andere Bibliotheken bereitstellen, werden lediglich fünf von zehn Punkten in \enquote { Funktionalität} vergeben.
2023-01-30 13:25:47 +01:00
Die Projektgepflegtheit ist inkonsistent. Manche Stellen, beispielsweise die Mitwirkenden, Alter des neuesten Commits, Tests
und Nutzerzahlen machen einen guten Eindruck, während Punkte wie die Dokumentation, die Organisationswebseite und andere
2023-03-30 18:59:27 +02:00
Projekte von Scholzen Sorgen begründen. Weil der Programmcode an sich gut gepflegt aussieht und große Downloadzahlen von
2023-03-21 17:52:19 +01:00
häufiger Verwendung sprechen, werden für die \enquote { Gepflegtheit} acht Punkte vergeben.
2023-02-02 12:20:44 +01:00
Da es sich hierbei um eine PHP-Bibliothek handelt, die über Composer in PHP- $ 7 .x $ und $ 8 .x $ Projekte geladen werden kann
2023-03-30 18:59:27 +02:00
und das Projekt eine API bereitstellt, ist die technische Workflow-Eignung gut.
Die BSD-2-Clause-Lizenz verkompliziert eine Integration,
2023-03-29 19:07:27 +02:00
da somit eine Copyright-Notiz an Nutzer gezeigt werden müsste \cite { bib:opensource-license-bsd-2} .
2023-01-30 13:25:47 +01:00
Dadurch werden drei Punkte einer vollkommenen Workflow-Eignung abgezogen, wodurch sieben Punkte vergeben werden.
2023-03-15 11:16:38 +01:00
\begin { table} [htbp]
\centering
\begin { tabular} { |l|l|l|l|}
\hline
\textbf { Funktionalität} & \textbf { Gepflegtheit} & \textbf { Workflow-Eignung} & \textbf { $ \Sigma $ } \\
\hline
2023-03-21 17:52:19 +01:00
5 & 8 & 7 & 20\\
2023-03-15 11:16:38 +01:00
\hline
\end { tabular}
2023-03-21 17:52:19 +01:00
\caption { Subjektive Evaluation: Bacon/BaconQrCode}
2023-03-15 11:16:38 +01:00
\end { table}
2023-01-31 10:00:11 +01:00
\subsection { Fazit}
2023-03-21 17:52:19 +01:00
Nach Evaluation der verschiedenen QR-Code-Bibliotheken im Kontext der vorliegenden Problemstellung erweist sich aus Sicht des Autors
2023-03-29 19:07:27 +02:00
\break \enquote { chillerlan/php-qrcode} mit 30 Gesamtpunkten als die am besten geeignetste Bibliothek.
Somit wird \enquote { chillerlan/php-qrcode} als QR-Code Technologie in der Lösung dieser Problemstellung verwendet.
2023-03-21 17:52:19 +01:00
2023-03-15 11:16:38 +01:00
\begin { table} [htbp]
\centering
2023-03-30 18:59:27 +02:00
\begin { tabular} { |l|l|l|l|l|}
2023-03-15 11:16:38 +01:00
\hline
2023-03-21 17:52:19 +01:00
\textbf { Bibliothek} & \textbf { Funkt.} & \textbf { Gepflegtht.} & \textbf { WF.-Eignung} & \textbf { $ \Sigma $ } \\
2023-03-15 11:16:38 +01:00
\hline
\hline
chillerlan/php-qrcode & 10 & 10 & 10 & 30\\ \hdashline
2023-03-30 19:31:13 +02:00
Bacon/BaconQrCode & 5 & 8 & 7 & 20\\ \hdashline
2023-03-15 11:16:38 +01:00
soldair/node-qrcode & 8 & 3 & 4 & 15\\ \hdashline
kjua & 8 & 2 & 0 & 10\\ \hdashline
2023-03-21 17:52:19 +01:00
kreativekorp/barcode & - & 3 & 0 & -\\
2023-03-15 11:16:38 +01:00
\hline
\end { tabular}
2023-03-21 17:52:19 +01:00
\caption { Gesamtübersicht: Subjektive Evaluation der QR-Code Bibliotheken}
2023-03-15 11:16:38 +01:00
\label { tbl:qrlib-compare-barchart}
\end { table}
2023-03-21 17:52:19 +01:00
\section { PDF-Generator}
2023-03-30 08:57:33 +02:00
Firmenintern ist der PDF-Generator \enquote { mpdf/mpdf} etabliert und wird bereits
2023-03-21 17:52:19 +01:00
in zahlreichen Projekten verwendet.
Um die projektübergreifende Kontinuität der Technik zu wahren und um somit die
Wartbarkeit und Nachhaltigkeit des hier behandelten Softwareproduktes
zu fördern, wird sich für den PDF-Generator entschieden, der bereits firmeninterner Standard ist.
2023-03-29 19:07:27 +02:00
Unabhängig dessen ist \enquote { mpdf} ein gut gepflegtes Projekt mit einem Alter von mehr als acht Jahren,
2023-03-21 17:52:19 +01:00
Sponsoren, 72 Entwicklern, über 31 Millionen Downloads, über 3.900 Sterne-Markierungen, über 800 Commits
2023-03-30 08:57:33 +02:00
und regelmäßigen Updates. \enquote { Mpdf} ein Composer-Paket und für verschiede PHP-Versionen verfügbar.
2023-03-29 19:07:27 +02:00
Mpdf verwendet eine GPL-2.0 Lizenz \cite { bib:mpdf} .