HSWO_BSC_BACHELORS_THESIS/chapters/stand-der-technik.tex

282 lines
18 KiB
TeX
Raw Normal View History

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.
Im Wesentlichen gibt es drei Arten von Technologien, die untersucht werden müssen: Die bestehende Website von \ac{WM},
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-03-21 17:52:19 +01:00
\section{QR-Code-Bibliotheken}
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-31 10:00:11 +01:00
\subsection{Javascript-Implementationen}
2023-03-21 17:52:19 +01:00
\subsubsection*{Jquery-qrcode}
2023-03-29 21:59:19 +02:00
\enquote{Jquery-qrcode} ist ein Plugin für JQuery, um dynamisch QR-Codes auf Browserseite zu generieren.
Jedoch verweist diese Bibliothek selbst auf ihren desolaten Zustand und empfielt stattdessen \enquote{kjua} zu verwenden
2023-03-29 19:07:27 +02:00
\cite{bib:larsjung-jquery-qrcode}. Somit scheidet \enquote{jquery-qrcode} für nähere Evaluationen aus, da die Software nicht mehr
gepflegt wird. \enquote{Jquery-qrcode} 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-29 19:07:27 +02:00
um über Neuigkeiten auf dem Laufenden gehalten werden zu wollen \cite{bib:github-stars}. \enquote{Jquery-qrcode} ist MIT-lizensiert
2023-01-30 13:25:47 +01:00
\cite{bib:larsjung-jquery-qrcode}.
2023-03-21 17:52:19 +01:00
\subsubsection*{Kjua}
2023-03-29 19:07:27 +02:00
\enquote{Kjua} ist eine Javascript-Bibliothek, die dynamisch QR-Codes auf Browserebene generiert.
Im Gegensatz zu \enquote{jquery-qrcode} 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
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
Issues scheinen ignoriert zu werden. \enquote{Kjua} ist MIT-lizensiert \cite{bib:larsjung-kjua}.
2023-03-21 17:52:19 +01:00
\subsubsection*{Soldair/node-qrcode}
2023-03-29 19:07:27 +02:00
\enquote{Soldair/node-qrcode} ist eine Node.js-basierte Implementation eines QR-Code-Generators und bietet somit Funktionialität
serverseitig, als Kommandozeilenwerkzeug, sowohl auch browserseitig an. Die Readme-Datei ist umfangreich, reich an Beispielen
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-29 21:59:19 +02:00
vor etwa zwei Jahren durch, Februar 2021 und schlug fehl. Einige Pull-Requests und Issues werden seit Jahren ignoriert
\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-31 10:00:11 +01:00
\subsection{PHP-Implementationen}
2023-03-21 17:52:19 +01: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
Eugen Rochko et al.. \enquote{Chillerlan/php-qrcode}s Etabliertheit zeigt sich durch den zu diesem
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.
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
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-29 19:07:27 +02:00
\enquote{Chillerlan/php-qrcode} basiert auf einer angepassten Version von \textit{kazuhikoarase/qrcode-generator}.
Einzig auffällig sind die Commitnachrichten, die zuteils nur aus einem Emoji bestehen.
\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
\cite{bib:chillerlan-php-qrcode}.
2023-01-23 18:16:52 +01:00
2023-03-21 17:52:19 +01:00
\subsubsection*{Kreativekorp/barcode}
2023-03-29 19:07:27 +02:00
\enquote{kreativekorp/barcode} ist eine PHP-Bibliothek zur Generierung von QR-Codes, bereitgestellt von
\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}
wie Beispielsweise \enquote{BaconPdf}, \textit{BaconStringUtils} und \textit{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
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-29 21:59:19 +02:00
syntaktisch und pragmatisch 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-29 19:07:27 +02:00
Die Eignung einer Bibliothek in existierende Workflows und Constraints ü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-21 17:52:19 +01: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
Empfinden des Autors.
2023-01-30 13:25:47 +01:00
2023-03-21 17:52:19 +01:00
\subsubsection*{Kjua}
2023-03-29 19:07:27 +02:00
\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-29 19:07:27 +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-29 19:07:27 +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-29 19:07:27 +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.
\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-21 17:52:19 +01:00
\caption{Subjektive Evaluation: Kjua}
\end{table}
2023-01-30 13:25:47 +01:00
2023-03-21 17:52:19 +01: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
\enquote{Soldair/node-qrcode} als serverseitige Anwendung an. Die Lizenz spricht nicht gegen eine Verwendung. Dennoch wäre es
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-29 19:07:27 +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.
\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-21 17:52:19 +01:00
\caption{Subjektive Evaluation: Soldair/node-qrcode}
\end{table}
2023-01-30 13:25:47 +01:00
2023-03-21 17:52:19 +01: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-29 19:07:27 +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-29 19:07:27 +02:00
Die von Rochko verwendete Lizenz gestattet eine unkomplizierte Verwendung. \enquote{Chillerlan/php-qrcode} funktioniert sowohl mit
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.
\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-21 17:52:19 +01:00
\caption{Subjektive Evaluation: Chillerlan/php-qrcode}
\end{table}
2023-01-30 13:25:47 +01:00
2023-03-21 17:52:19 +01: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-29 14:22:01 +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.
\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 & -\\
\hline
\end{tabular}
2023-03-21 17:52:19 +01:00
\caption{Subjektive Evaluation: Kreativekorp/barcode}
\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-21 17:52:19 +01:00
Projekte Sorgen begründen. Weil der Programmcode an sich gut gepflegt aussieht und große Downloadzahlen von
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-29 19:07:27 +02:00
und das Projekt eine API bereitstellt, ist die technische Workflow-Eignung gut. Die BSD-2-Clause-Lizenz verkompliziert eine Integration,
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.
\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\\
\hline
\end{tabular}
2023-03-21 17:52:19 +01:00
\caption{Subjektive Evaluation: Bacon/BaconQrCode}
\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
\begin{table}[htbp]
\centering
\begin{tabular}{|l||l|l||l|l|}
\hline
2023-03-21 17:52:19 +01:00
\textbf{Bibliothek} & \textbf{Funkt.} & \textbf{Gepflegtht.} & \textbf{WF.-Eignung} & \textbf{$\Sigma$}\\
\hline
\hline
chillerlan/php-qrcode & 10 & 10 & 10 & 30\\\hdashline
2023-03-21 17:52:19 +01:00
baconqrcode & 5 & 8 & 7 & 20\\\hdashline
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 & -\\
\hline
\end{tabular}
2023-03-21 17:52:19 +01:00
\caption{Gesamtübersicht: Subjektive Evaluation der QR-Code Bibliotheken}
\label{tbl:qrlib-compare-barchart}
\end{table}
2023-03-21 17:52:19 +01:00
\section{PDF-Generator}
2023-03-29 19:07:27 +02:00
Firmenintern ist der PDF-Generator \enquote{mpdf/mpdf} \cite{bib: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-29 19:07:27 +02:00
und regelmäßigen Updates \cite{bib:mpdf-github}. \enquote{Mpdf} ein Composer-Paket und für verschiede PHP-Versionen verfügbar.
Mpdf verwendet eine GPL-2.0 Lizenz \cite{bib:mpdf}.