Herzlich
Willkommen!
Vote
Chat

Umfrage

Mit deiner Hilfe wollen wir besser werden!


Welche Themen beschäftigen dich gegenwärtig in der Webentwicklung und sollten von uns im Blog behandelt werden?

⮞ Wie ist dein Gesamteindruck dieser Website?
angenehm geht so mag ich nicht
⮞ Ist der Aufbau übersichtlich struktuiert?
angenehm geht so mag ich nicht
⮞ Hast du gefunden was du gesuchst hast?
sofort weniger überhaupt nicht
⮞ Würdest du diese Website weiterempfehlen?
auf jeden Fall eher nicht niemals

Für deine

Teilnahme möchten

wir uns herzlich bedanken!

Möchtest du an unserer
Umfrage teilnehmen?

Meldung
Derzeit haben wir keine Meldung für dich

Blog

Websites sollten ein positives Benutzererlebnis vermitteln. Sie beinhaltet nicht nur ein ansprechendes Design sowie übersichtliche Darstellungsform, sondern auch eine schnelle Ladezeit.

Gleichzeitig verfolgen wir einen offenen Ansatz bei gleichzeitig höchstmöglichem Datenschutz. Dieser Grundsatz soll Kunden die volle Kontrolle über ihre Website geben und somit Vertrauen schenken.

Um diese Kriterien zu erreichen, sind die Anforderungen groß und die Entwicklungen in verschiedenen Richtungen entsprechend rasant. Unter der schnellen Entwicklungen leidet die Übersichtlichkeit der verschiedenen Entwicklungsrichtungen.

Im Blog wird versucht die verschiedenen Themen korrekt zu beschreiben. Wir übernehmen aber keine Gewährleistung für die Darstellung. Dieser Blog soll lediglich als Hilfestellung für die Auswahl schneller, ansprechender sowie sicherer Frameworks dienen.

React

ReactJS ist eine JavaScript-Programmbibliothek. Sie wurde von Meta entwickelt und wird bis heute vom Tech-Giganten verwaltet. Sie ist freigegeben und derzeit die weltweit am häufigsten verwendete Front-End-Entwicklungstechnologie und findet somit auch in der Open-Source-Community großen Anklang.

ReactJS ist für den Aufbau einer Hierarchie oder das Rendern von UI-Komponenten verantwortlich und bietet sowohl Front-End- als auch Server-Unterstützung.

zur Erstellung von webbasierten Benutzeroberflächen. Komponenten werden in ReactJS hierarchisch aufgebaut und können in dessen Syntax als selbst definierte JSX-Tags repräsentiert werden. Das Modell von React verspricht durch die Konzepte des unidirektionalen Datenflusses und des Virtual DOM den einfachen, aber trotzdem performanten Aufbau auch komplexer Anwendungen. React bildet typischerweise die Basis für Single-Page-Webanwendungen, kann jedoch auch mit Node.js serverseitig (vor-)gerendert werden.

Ein Unterschied zwischen beiden Frameworks besteht darin, das React beim Aufbau der Website im Browser jeweils neu interpretiert, während Svelte vor der Anzeige im Browser einmalig beim Erstellen der App kompiliert wird.

Sowohl Svelte als auch React folgen einer komponentenbasierten Entwicklungsarchitektur. Hierfür nutzt React avaScript Syntax Extension J(JSX), während Svelte die drei Standardsprachen HTML, CSS und JavaScript in einer leicht angepassten Syntax verwendet.

Komponenten

ReactJS-Komponenten sind in sich geschlossene und wiederverwendbare Quellcode-Einheiten, die HTML zurückgeben. ReactJS-Komponenten können als Klassen- oder als Funktions-Komponenten definiert werden und müssen immer mit einem Grossbuchstaben beginnen:

ReactJS-Klassen-Komponenten müssen von „React.Component“ erben („extends React.Component“) und die Methode „render()“ enthalten, die den HTML-Code zurückgibt. Eine React-Komponente wird dann wie ein normales HTML-Element eingebunden:

JSX

JSX ist eine Syntaxerweiterung für JavaScript und ist ein integraler Bestandteil von ReactJS. Sie ermöglicht HTML-ähnlichen Code innerhalb einer JavaScript-Datei zu schreiben. Der React-Compiler wandelt wiederum den Code in optimierten JavaScript-Code um, der vom Browser ausgeführt werden kann und somit auf dem Bildschirm dargestellt werden kann.

States und Props

States und Props werden in React verwendet, um den Datenfluss von Komponenten zu steuern. Props sind Variablen, die von der übergeordneten Komponente an eine React-Komponente übergeben werden. Props erweitern die Funktionalität und können wie Variablen innerhalb einer Funktion genutzt werden, sodass Komponenten eine breitere Verwendung finden.

Ein React State ist ebenfalls eine Variable, die jedoch direkt von der Komponente initialisiert und verwaltet wird. Die Daten der States und Props werden verwendet, um die Komponente mithilfe von dynamischen Daten zu rendern. Die veränderbaren internen Daten einer Komponente, die den State der Ansicht beeinflussen, werden in den State-Mitgliedsvariablen der jeweiligen Klasse gespeichert.

Hooks

Hooks sind eine Neuerung von React.js ab der Version 16.8, die es ermöglicht bestimmte Eigenschaften und Methoden von Klassen-Komponenten zu verwenden, ohne Klassen erstellen zu müssen. Klassen-Komponenten haben den Nachteil, das sie schlechter optimiert und minimiert werden können und gegenüber Funktions-Komponenten unzuverlässiger nachgeladen werden. Außerdem können mit Hooks Teile von Komponenten einfacher als bisher extrahiert und unabhängig vom Rest der Komponente getestet oder in anderen Komponenten wiederverwendet werden. Hooks können unabhängig vom bisherigen Code verwendet werden, so dass bereits vorhandener Code bei Bedarf nach und nach um Hooks erweitert werden kann, ohne die bisherige Funktionalität einer Komponente zu beeinträchtigen:

React Router

Sollen mit React.js Multi-Page-Webanwendungen erstellt werden, muss React.js um das sog. Routing erweitert werden. Mit Routing können Komponenten Routen zugeordnet werden und so mit der URL auf bestimmte Komponenten verwiesen, d. h. geroutet, werden. React-Router hat sich hier als de facto Standard durchgesetzt. React-Router ist eine Bibliothek, die von einer großen Community entwickelt und gewartet wird und sowohl Client- als auch Server-seitiges Routing ermöglicht.

Stand: 07.11.2023

Svelte

Svelte ist eine freie JavaScript-Softwarebibliothek, die ein Grundgerüst für die Ausgabe von User-Interface-Komponenten von Webseiten zur Verfügung stellt (Webframework). Mit Svelte lassen sich reaktive Single-Page-Webanwendungen erstellen.

Während herkömmliche Frameworks wie React und Vue den Großteil ihrer Arbeit im Browser erledigen, verlagert Svelte diese Arbeit in einen Kompilierungsschritt, der beim Erstellen der App stattfindet.

Svelte konvertiert eine App zur Erstellungszeit in ideales JavaScript, anstatt deinen Anwendungscode zur Laufzeit zu interpretieren. Das bedeutet, dass du nicht für die Leistungskosten der Abstraktionen des Frameworks aufkommen musst und dass du beim ersten Laden deiner Anwendung keine Nachteile erleidest.

Du kannst deine gesamte Anwendung mit Svelte entwickeln oder es schrittweise zu einer bestehenden Codebasis hinzufügen. Du kannst auch Komponenten als eigenständige Pakete ausliefern, die überall funktionieren, ohne dass du von einem herkömmlichen Framework abhängig bist.

Kein virtuelles DOM: Svelte ist ein Compiler und braucht kein virtuelles DOM. Svelte ist ein Compiler, der schon bei der Erstellung weiß, wie sich die Dinge in deiner Anwendung ändern könnten, anstatt darauf zu warten, die Arbeit zur Laufzeit zu erledigen. Das ist ein sehr wichtiger Vorteil von Svelte gegenüber anderen Web-Frameworks.

Weniger Boilerplate: Ein ausdrückliches Ziel von Svelte ist es, die Menge an Code zu reduzieren, die du schreiben musst. Svelte hilft dir, Benutzeroberflächen mit einem Minimum an Aufwand zu erstellen, was die Lesbarkeit des Codes verbessert, indem es Dinge wie bessere Reaktivität, Bindungen und Top-Level-Elemente implementiert, auf die wir später in diesem Artikel eingehen werden.

Weniger Boilerplate: Ein ausdrückliches Ziel von Svelte ist es, die Menge an Code zu reduzieren, die du schreiben musst. Svelte hilft dir, Benutzeroberflächen mit einem Minimum an Aufwand zu erstellen, was die Lesbarkeit des Codes verbessert, indem es Dinge wie bessere Reaktivität, Bindungen und Top-Level-Elemente implementiert, auf die wir später in diesem Artikel eingehen werden.

Wahrhaft reaktiv: Svelte ist eine eigenständige Sprache und hat Reaktivität standardmäßig aktiviert. Es sind keine besonderen Codezeilen nötig, um deinen Code reaktiv zu machen, jede Variable, die du deklarierst, ist standardmäßig reaktiv. Svelte unterstützt auch abgeleitete Deklarationen und Anweisungen, die bei Zustandsänderungen berechnet werden.

Leichter zu lernen: Svelte bietet eine Hybridsprache, die aus HTML, CSS und JavaScript/TypeScript besteht. Es ist nicht nötig, neue Konzepte oder eine spezielle Syntax wie JSX zu erlernen, was das Erlernen erleichtert. Die Dokumentation von Svelte ist sehr einfach zu verstehen und enthält ein ausführliches, integriertes Tutorial.

Stand: 07.11.2023

SCSS / SASS

Bei komplexen Websites kann die Übersicht im CSS-Code schnell verloren gehen. Moderne Websites nutzen ein durchdachtes Farbkonzept, basieren auf einem Gestaltungsraster das jede erdenkliche Displaygröße bedienen kann, und werden zunehmend interaktiv. Eine stark fragmentierte Browserlandschaft und verschiedene Bedienkonzepte machen die Arbeit zusätzlich kompliziert.

Sass

Sass (Syntactically Awesome Stylesheets) ist eine Stylesheet-Sprache, die als CSS-Präprozessor mit Variablen, Schleifen und vielen anderen Funktionen, die Cascading Style Sheets (CSS) nicht beinhaltet, die Erstellung von CSS vereinfacht und die Pflege großer Stylesheets erleichtert. Neben der ursprünglichen an YAML angelehnten Sass-Syntax unterstützt Sass auch die neuere und heute weiter verbreitete SCSS-Syntax, die sich an der klassischen CSS-Schreibweise orientiert.

In der modernen Programmierung versucht man Änderungen immer nur an einer Stelle vornehmen zu müssen. Diese Vorgehensweise entspricht sowohl dem Templating in HTML, als auch der objektorientierten Programmierung in Programmiersprachen wie PHP. Auch Content Management Systeme sind häufig nach dem sog. DRY-Prinzip (Don’t repeat yourself) aufgebaut und arbeiten mit Modulen.

CSS hingegen zwingt uns dazu unzählige Wiederholungen im Code einzubauen. Wenn die Hausfarbe unseres Unternehmens Blau ist und wir möchten die Überschriften, die Links und die Buttons unserer Website in diesem Blau gestalten, dann bleibt uns kaum etwas anderes übrig als allen Elementen den gleichen Farbcode zuzuweisen. Wenn sich die Farbe ändert, müssen wir alle Code-Passagen anpassen. Diese Arbeitsweise ist nicht effektiv und führt leicht zu Fehlern.

Stand: 07.11.2023

Tailwind Css

tailwindcss ist ein Open-Source-CSS-Framework. Ein CSS-Framework ist eine Sammlung von Funktionen und Elementen, die für das Design einer Website benötigt werden. Das Hauptmerkmal dieser Bibliothek besteht darin, dass sie im Gegensatz zu anderen CSS-Frameworks wie Bootstrap keine Reihe vordefinierter Klassen für Elemente wie Schaltflächen oder Tabellen bereitstellt. Stattdessen wird eine Liste von Utility-First-CSS-Klassen erstellt, mit denen jedes Element durch Mischen und Anpassen gestaltet werden kann.

Tailwind CSS ist ein CSS-Framework, das komplett auf den Utility-First-Ansatz setzt und aus Low-Level-CSS-Klassen in PostCSS besteht, mit denen Komponenten und Designs eigenständig definiert werden können. Durch Hinzufügen anderer Klasse kann ein zu erstellendes Element eine ganz andere Sicht und/oder Eigenschaft erhalten.

Der große Vorteil von Utility-First-Frameworks wie Tailwind CSS ist ihre Flexibilität und die daraus resultierenden Möglichkeiten zur Individualisierung. Anders als herkömmliche Cascading Style Sheets (CSS) stellen Utility-First-Frameworks keine vorgefertigten Komponenten zur Verfügung, sondern bieten lediglich Utility-Klassen. Diese enthalten vordefinierte Stile, die dann auf ein Element angewendet werden können. Das erleichtert die Arbeit, führt zu einem übersichtlichen Code und bietet viele zusätzliche Gestaltungsmöglichkeiten, die zu individuelleren Websites beitragen. TailwindCss kann in FrontEnd-Webprojekten verwendet werden, einschließlich Javascript-Frameworks wie React.js, Svelte, Vite usw.

Tailwind CSS eignet sich vor allem für Nutzerinnen und Nutzer, die bereits Vorkenntnisse in CSS haben und sich mit den Besonderheiten auskennen. Auch ein Grundverständnis von HTML ist für die Arbeit mit dem Utility-First-Framework wichtig, da Komponenten selbstständig erstellt werden müssen und sämtliche Styles direkt in den HTML-Dateien hinterlegt werden. Außer einigen Grundlagen wie Rändern, Größen und Farben verzichtet Tailwind CSS auf Vorgaben. Mit der nötigen Erfahrung ermöglicht Tailwind CSS-Entwicklerinnen und -Entwicklern eine freie Gestaltung der Elemente ihrer Website und führt dabei sogar zu einer großen Zeitersparnis.

Das CSS eignet sich für Frontend-Webprojekte jeder Art und kann mit vielen gängigen JavaScript-Frameworks eingesetzt werden. So lassen sich z. B. Lavarel, Vue.js und React mit Tailwind CSS nutzen. Mit dieser Kombination können Sie auf den objektorientierten Ansatz vieler anderer Frameworks verzichten.

Stand: 07.11.2023

Machine Learning mit RubixMl (PHP)

Maschinelles Lernen (ML) ist ein Oberbegriff für die „künstliche“ Generierung von Wissen aus Erfahrung: Ein künstliches System lernt aus Beispielen und kann diese nach Beendigung der Lernphase verallgemeinern. Dazu bauen Algorithmen beim maschinellen Lernen ein statistisches Modell auf, das auf Trainingsdaten beruht und welches gegen die Testdaten getestet wird. Das heißt, es werden nicht einfach die Beispiele auswendig gelernt (siehe Überanpassung), sondern Muster und Gesetzmäßigkeiten in den Lerndaten erkannt. So kann das System auch unbekannte Daten beurteilen (Lerntransfer) oder aber am Lernen unbekannter Daten scheitern (Überanpassung; englisch overfitting). Aus dem weiten Spektrum möglicher Anwendungen seien hier genannt: automatisierte Diagnose­verfahren, Erkennung von Kreditkartenbetrug, Aktienmarkt­analysen, Klassifikation von Nukleotidsequenzen, Sprach- und Texterkennung sowie autonome Systeme.

Machine Learning oder maschinelles Lernen ist ein Teilbereich der künstlichen Intelligenz. Der Schwerpunkt liegt dabei auf dem Trainieren von Computern, um aus Daten und Erfahrungen zu lernen und sich stets zu verbessern – anstatt explizit dafür programmiert zu werden. Beim Machine Learning werden Algorithmen darauf trainiert, Muster und Korrelationen in großen Datensätzen zu finden und auf Basis dieser Analyse die besten Entscheidungen und Vorhersagen zu treffen. Anwendungen für maschinelles Lernen verbessern sich mit ihrer Nutzung und werden umso genauer, je mehr Daten sie zur Verfügung haben.

Machine Learning – und seine Deep-Learning-Komponenten sowie die neuronalen Netze – sind alles konzentrische Teilmengen von künstlicher Intelligenz. KI verarbeitet Daten, um Entscheidungen und Prognosen zu treffen. Algorithmen für maschinelles Lernen ermöglichen der KI, diese Daten nicht nur zu verarbeiten. Sie verwenden sie, lernen dadurch dazu und werden intelligenter, ohne dass eine zusätzliche Programmierung erforderlich ist. Künstliche Intelligenz ist das übergeordnete Element aller darunterliegenden Teilmengen des maschinellen Lernens. Die erste Teilmenge umfasst maschinelles Lernen; darin enthalten ist Deep Learning und wiederum darin befinden sich die neuronalen Netze.

Ein künstliches neuronales Netzwerk ist den Neuronen in einem biologischen Gehirn nachempfunden. Künstliche Neuronen werden Knoten genannt und sind in mehreren Schichten gruppiert, die parallel arbeiten. Wenn ein künstliches Neuron ein numerisches Signal empfängt, verarbeitet es dieses und sendet Signale an die anderen mit ihm verbundenen Neuronen. Wie im menschlichen Gehirn führt die neuronale Verstärkung zu einer verbesserten Mustererkennung, Fachkenntnis und allgemeinem Lernen.

Stand: 07.11.2023