<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Programmierung</title>
	<atom:link href="https://www.yuhiro.de/category/programmierung/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.yuhiro.de</link>
	<description>Ihre Entwickler arbeiten in unserer Niederlassung in Indien</description>
	<lastBuildDate>Fri, 27 Dec 2024 05:28:07 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.6</generator>
	<item>
		<title>Was ist TypeScript? Einführung, Vorteile, Nachteile</title>
		<link>https://www.yuhiro.de/was-ist-typescript/</link>
					<comments>https://www.yuhiro.de/was-ist-typescript/#respond</comments>
		
		<dc:creator><![CDATA[Autor]]></dc:creator>
		<pubDate>Tue, 13 Feb 2024 06:05:44 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programmierung]]></category>
		<guid isPermaLink="false">https://www.yuhiro.de/?p=11922</guid>

					<description><![CDATA[<p>Was ist TypeScript? Einführung, Vorteile, Nachteile TypeScript ist eine Programmiersprache, die 2012 von Microsoft entwickelt worden ist. Von vielen Codern und Programmierern wird sie heute als Ergänzung zu JavaScript eingesetzt oder hat diese Programmiersprache sogar abgelöst.&#160; TypeScript (im Beitrag auch mit TS abgekürzt) bietet durch das Prinzip</p>
The post <a href="https://www.yuhiro.de/was-ist-typescript/">Was ist TypeScript? Einführung, Vorteile, Nachteile</a> first appeared on <a href="https://www.yuhiro.de">Yuhiro</a>.]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">Was ist TypeScript? Einführung, Vorteile, Nachteile</h2>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://www.yuhiro.de/wp-content/uploads/2024/02/JavaScript-3.jpg" rel="wp-prettyPhoto[11922]"><img fetchpriority="high" decoding="async" width="575" height="250" src="https://www.yuhiro.de/wp-content/uploads/2024/02/JavaScript-3.jpg" alt="" class="wp-image-11936" srcset="https://www.yuhiro.de/wp-content/uploads/2024/02/JavaScript-3.jpg 575w, https://www.yuhiro.de/wp-content/uploads/2024/02/JavaScript-3-300x130.jpg 300w" sizes="(max-width: 575px) 100vw, 575px" /></a></figure></div>


<p style="font-size:17px"><strong>TypeScript</strong> ist eine Programmiersprache, die 2012 von Microsoft entwickelt worden ist. Von vielen Codern und Programmierern wird sie heute als Ergänzung zu <strong>JavaScript</strong> eingesetzt oder hat diese Programmiersprache sogar abgelöst.&nbsp;</p>



<p style="font-size:17px">TypeScript (im Beitrag auch mit TS abgekürzt) bietet durch das Prinzip der statischen Typisierung eine gute Fehleranalyse und ermöglicht eine schnelle Entwicklung.&nbsp;</p>



<p style="font-size:17px">Vorteilhaft ist auch die Verfügbarkeit als kostenlose <strong>Open Source</strong> Ressource. Im Folgenden wird ein Überblick über die Programmiersprache gegeben.&nbsp;</p>



<p style="font-size:17px">Es werden Vor- und Nachteile aufgezeigt sowie Hinweise auf mögliche Anwendungsbereiche gegeben.</p>



<h3 class="wp-block-heading"><strong>Ein erster Überblick über die Prinzipien von TS</strong></h3>



<p style="font-size:17px">Es handelt sich um eine Open-Source-Programmiersprache aus dem Hause <strong>Microsoft</strong>. Im Kern geht es um eine Erweiterung von JavaScript um zusätzliche Funktionen. Dazu zählen vor allem <strong>Klassendefinitionen</strong> und <strong>Typisierungen</strong>. Die Programmiersprache lässt sich in allen modernen und gängigen Browsern einsetzen.&nbsp;</p>



<p style="font-size:17px">Sie kann zudem in den Visual Studio Code und in den Node.js-Server integriert werden. Als nützlich erweist sich die Möglichkeit, den Code zu einfachem JavaScript zu kompilieren. Dazu braucht man in der Regel nur die Dateien in Java-Script-Dateien umzuwandeln.</p>



<h3 class="wp-block-heading"><strong>Wann und wo wird es verwendet?</strong></h3>



<p style="font-size:17px">Die Programmiersprache bietet sich für viele verschiedene Anwendungsbereiche an. Bei großen Projekten, an denen viele Entwickler beteiligt sind, lässt sich eine gemeinsame und konsistente Codebasis schaffen. Auf diese Weise werden Fehler vermieden, die durch verschiedene JavaScript Konventionen zustande kommen.&nbsp;</p>



<p style="font-size:17px">Ferner dient die Programmiersprache zur Entwicklung von Angular-Anwendungen, da die Entwicklungssprache Angular auf JavaScript basiert.&nbsp;</p>



<p style="font-size:17px">Besonders zu empfehlen ist TypeScript als <strong>plattformübergreifende Sprache</strong>, die problemlos in nativen Code wie in JavaScript transferiert werden kann.&nbsp;</p>



<p style="font-size:17px">Des Weiteren bietet die Programmiersprache eine deutlich bessere Skalierbarkeit und Wartbarkeit des Codes.</p>



<ul class="wp-block-list">
<li style="font-size:17px">Vereinheitlichung der Code-Basis</li>



<li style="font-size:17px">Entwicklung von Angular-Anwendungen</li>



<li style="font-size:17px">plattformübergreifende Projekte</li>



<li style="font-size:17px">Überarbeitung und Erweiterung von JavaScript-Projekten</li>
</ul>



<h3 class="wp-block-heading"><strong>Die Merkmale</strong></h3>



<p style="font-size:17px">Die Programmiersprache von Microsoft wartet mit vielen <strong>Funktionen</strong> auf, die bei einer modernen Webentwicklung von Vorteil sind und Einschränkungen von JavaScript ausgleichen.&nbsp;</p>



<p style="font-size:17px">Die Funktionsvielfalt optimiert die Organisation des Codes und beschleunigt die Entwicklung.&nbsp;</p>



<p style="font-size:17px">Hier die wichtigsten Merkmale auf einen Blick:</p>



<ul class="wp-block-list">
<li style="font-size:17px">statische Typisierung</li>



<li style="font-size:17px">ES6+ Funktionen</li>



<li style="font-size:17px">optionale Typisierung</li>



<li style="font-size:17px">Code Organisation</li>



<li style="font-size:17px">erweitertes Typsystem</li>



<li style="font-size:17px">objektorientierte Programmierung</li>



<li style="font-size:17px">Kompatibilität mit JavaScript</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://www.yuhiro.de/wp-content/uploads/2024/02/Webentwicklung.jpg" rel="wp-prettyPhoto[11922]"><img decoding="async" width="575" height="250" src="https://www.yuhiro.de/wp-content/uploads/2024/02/Webentwicklung.jpg" alt="" class="wp-image-11924" srcset="https://www.yuhiro.de/wp-content/uploads/2024/02/Webentwicklung.jpg 575w, https://www.yuhiro.de/wp-content/uploads/2024/02/Webentwicklung-300x130.jpg 300w" sizes="(max-width: 575px) 100vw, 575px" /></a></figure></div>


<h3 class="wp-block-heading"><strong>Statische und optimale Typisierung und weitere vorteilhafte Funktionen</strong></h3>



<p style="font-size:17px">Das starke <strong>Typisierungssystem</strong> sorgt dafür, dass Funktionsparameter und Variablen zur Kompilierungszeit festgelegt werden können. So lassen sich typenbezogene Fehler im Code schneller und zuverlässiger finden. Die Entwicklung ist weniger anfällig gegenüber Bugs. Durch die optimale Typisierung ergibt sich mehr Flexibilität bei der Programmierung. Man kann angeben, ob eine <strong>statische Typisierung</strong> genutzt werden soll.</p>



<p style="font-size:17px">Zudem kann bestimmt werden, ob Typen für Funktionsparameter und Variablen angegeben werden sollen oder ob die Typen aus dem zugewiesenen Wert abgeleitet werden sollen.&nbsp;</p>



<p style="font-size:17px">Hervorzuheben ist des Weiteren die <strong>ES6+ Funktion</strong>, die den Syntax verbessert. So können Entwickler Funktionen wie Destrukturierung, Pfeilfunktionen, Template-Literale verwenden und zudem eine Typüberprüfung durchführen. Das Ergebnis ist eine deutlich bessere Code Organisation.&nbsp;</p>



<p style="font-size:17px">Darüber hinaus bietet die Programmiersprache Schnittstellen für die <strong>objektorientierte Programmierung</strong> (OOP) und ein erweitertes Typsystem.&nbsp;</p>



<p style="font-size:17px">Da die Programmiersprache als Obermenge von JavaScript konzipiert ist, ergeben sich keine Kompatibilitätsprobleme. Die Integration von TypeScript-Code in JavaScript-Projekte ist ohne Umschreibungen möglich.</p>



<h3 class="wp-block-heading"><strong>Was ist der Ursprung von TS?</strong></h3>



<p style="font-size:17px">Die Programmiersprache wurde von Microsoft ursprünglich für die hausinterne Nutzung entwickelt.&nbsp;</p>



<p style="font-size:17px">Große JavaScript-Anwendungen sollten vereinfacht und beschleunigt werden. 2012 wurde die Programmiersprache als <strong>Open Source</strong> zur Verfügung gestellt.&nbsp;</p>



<p style="font-size:17px">Die laufenden Weiterentwicklungen werden unter einer MIT-Lizenz vertrieben.&nbsp;</p>



<p style="font-size:17px">Zahlreiche Organisationen und Unternehmen nutzen heute TypeScript für die Entwicklung und Überarbeitung von größeren JavaScript-Anwendungen. Die bekanntesten Nutzer sind Facebook, Google und Netflix.</p>



<h3 class="wp-block-heading"><strong>Die Vor- und Nachteile</strong></h3>



<p style="font-size:17px">Zu den <strong>Vorteilen</strong> der Programmiersprache gehört die freie und kostenlose Verfügbarkeit und Nutzbarkeit.&nbsp;</p>



<p style="font-size:17px">Durch <strong>zusätzliche Features</strong> bietet sie einen höheren <strong>Entwicklungskomfort</strong>.&nbsp;</p>



<p style="font-size:17px">Zugleich ist die Programmiersprache problemlos mit JavaScript kompatibel. Bestehende Codebibliotheken können weiter genutzt werden.&nbsp;</p>



<p style="font-size:17px">Statische und optimale Typisierung gestalten den Code übersichtlicher und sorgen dafür, dass Fehler schneller und zuverlässiger erkannt werden.&nbsp;</p>



<p style="font-size:17px">Darüber hinaus unterstützt die Programmiersprache die objektorientierte Programmierung, was Entwicklern den Umstieg erleichtert. Hier die wichtigsten Vorteile auf einen Blick:</p>



<ul class="wp-block-list">
<li style="font-size:17px">kostenlos und frei verfügbar</li>



<li style="font-size:17px">hoher Entwicklungskomfort durch neue Features</li>



<li style="font-size:17px">Kompatibilität mit JavaScript</li>



<li style="font-size:17px">Weiternutzung bestehender Codebibliotheken</li>



<li style="font-size:17px">leichter Umstieg durch objektorientierte Programmierung</li>



<li style="font-size:17px">optimierte Fehlererkennung durch statische und optimale Typisierung</li>



<li style="font-size:17px">Weiterentwicklung und Support</li>
</ul>



<p style="font-size:17px">Es sind allerdings auch einige <strong>Nachteile</strong> zu verzeichnen. Die Programmiersprache setzt gute Kenntnisse von JavaScript voraus, da es sich um eine Weiterentwicklung handelt. Daher fehlt es an der Zugänglichkeit für Anfänger. Außerdem nimmt die Kompilierung viel Zeit in Anspruch. Hier die Nachteile auf einen Blick:</p>



<ul class="wp-block-list">
<li style="font-size:17px">Voraussetzung guter JavaScript-Kenntnisse</li>



<li style="font-size:17px">mangelnde Zugänglichkeit für Anfänger</li>



<li style="font-size:17px">langsame Kompilierung</li>
</ul>



<h3 class="wp-block-heading"><strong>Die Nutzung von React</strong></h3>



<p style="font-size:17px"><strong>React</strong> gehört zu den am häufigsten verwendeten JavaScript-Bibliotheken. Sie bietet gute Voraussetzungen für die Gestaltung von Benutzeroberflächen. Wer in TypeScript programmiert, kann diese Bibliothek einfach weiterverwenden. Der Code lässt sich ohne Schwierigkeiten zu JavaScript kompilieren. Die Kombination mit React bringt viele Vorteile mit sich. Dazu zählen die statische Typüberprüfung und die bessere Code-Vervollständigung. React sorgt zudem für frühe Warnungen und eine gute Fehlererkennung. Man kann zudem das Code-Verhalten deutlich besser vorhersehen. Durch React gibt es mehr Möglichkeiten, verlorenen Code wiederherzustellen.</p>



<h3 class="wp-block-heading"><strong>Fazit: JavaScript-Projekte ergänzen, vereinfachen und überarbeiten</strong></h3>



<p style="font-size:17px"><strong>TypeScript</strong> ist die richtige Programmiersprache, wenn man Java-Script-Projekte einfacher gestalten beziehungsweise ergänzen und überarbeiten möchte.&nbsp;</p>



<p style="font-size:17px">Die volle Kompatibilität mit JavaScript gehört zu den wichtigsten Vorzügen.&nbsp;</p>



<p style="font-size:17px">Bewährte Code-Bibliotheken wie React können einfach weitergenutzt werden.&nbsp;</p>



<p style="font-size:17px">Darüber hinaus bietet die Programmiersprache einen hohen Entwicklungskomfort durch statische und optimale Typisierung und eine objektorientierte Programmierung.&nbsp;</p>



<p style="font-size:17px">Insgesamt ist für eine bessere Code-Organisation gesorgt. Fehler werden früher und zuverlässiger erkannt.&nbsp;</p>



<p style="font-size:17px">Entwicklung und Support durch Microsoft stellen sicher, dass die Codes in allen gängigen Browsern und Nutzeroberflächen funktionieren.&nbsp;</p>



<p style="font-size:17px">Für plattformübergreifende Projekte ist TypeScript schon heute unentbehrlich.&nbsp;</p>



<p style="font-size:17px">Einziges Manko ist die schwierige Zugänglichkeit für Anfänger, da eine gute Kenntnis von JavaScript für eine gewinnbringende Nutzung sinnvoll ist.</p>



<p style="font-size:17px">Interessante Beiträge:</p>



<p style="font-size:17px"><a href="https://de.wikipedia.org/wiki/TypeScript">Mehr Informationen zu TypeScript auf Wikipedia</a></p>



<p style="font-size:17px"><a href="https://t3n.de/news/eigentlich-typescript-859869/">Informationen zu TS auf dem t3n Blog</a></p>



<p style="font-size:17px">Bilder: Canva</p>



<hr class="wp-block-separator has-css-opacity"/>


<div class="wp-block-image">
<figure class="alignleft"><img decoding="async" width="150" height="150" src="https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed-150x150.jpg" alt="" class="wp-image-229" srcset="https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed-150x150.jpg 150w, https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed.jpg 227w" sizes="(max-width: 150px) 100vw, 150px" /></figure></div>


<p style="font-size:17px">Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.</p>The post <a href="https://www.yuhiro.de/was-ist-typescript/">Was ist TypeScript? Einführung, Vorteile, Nachteile</a> first appeared on <a href="https://www.yuhiro.de">Yuhiro</a>.]]></content:encoded>
					
					<wfw:commentRss>https://www.yuhiro.de/was-ist-typescript/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Was ist eine API Schnittstelle?</title>
		<link>https://www.yuhiro.de/was-ist-eine-api-schnittstelle/</link>
					<comments>https://www.yuhiro.de/was-ist-eine-api-schnittstelle/#respond</comments>
		
		<dc:creator><![CDATA[Autor]]></dc:creator>
		<pubDate>Tue, 06 Feb 2024 03:53:46 +0000</pubDate>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<guid isPermaLink="false">https://www.yuhiro.de/?p=11907</guid>

					<description><![CDATA[<p>Was ist eine API Schnittstelle? Eine API Schnittstelle kann eine entscheidende Erleichterung im Arbeitsalltag sein, die Übertragung von Daten merklich vereinfachen und die Effizienz erhöhen. Sie ermöglicht die Kommunikation zwischen ausschlaggebenden Tools und kann damit nicht nur Abläufe optimieren, sondern neue Möglichkeiten schaffen. Definition Die Abkürzung API</p>
The post <a href="https://www.yuhiro.de/was-ist-eine-api-schnittstelle/">Was ist eine API Schnittstelle?</a> first appeared on <a href="https://www.yuhiro.de">Yuhiro</a>.]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">Was ist eine API Schnittstelle?</h2>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://www.yuhiro.de/wp-content/uploads/2024/02/Programmierschnittstelle.jpg" rel="wp-prettyPhoto[11907]"><img loading="lazy" decoding="async" width="575" height="250" src="https://www.yuhiro.de/wp-content/uploads/2024/02/Programmierschnittstelle.jpg" alt="" class="wp-image-11908" srcset="https://www.yuhiro.de/wp-content/uploads/2024/02/Programmierschnittstelle.jpg 575w, https://www.yuhiro.de/wp-content/uploads/2024/02/Programmierschnittstelle-300x130.jpg 300w" sizes="auto, (max-width: 575px) 100vw, 575px" /></a></figure></div>


<p>Eine API Schnittstelle kann eine entscheidende Erleichterung im Arbeitsalltag sein, die Übertragung von Daten merklich vereinfachen und die Effizienz erhöhen. Sie ermöglicht die Kommunikation zwischen ausschlaggebenden Tools und kann damit nicht nur Abläufe optimieren, sondern neue Möglichkeiten schaffen.</p>



<h3 class="wp-block-heading"><strong>Definition</strong></h3>



<p>Die Abkürzung API steht für Application Programming Interface und im Deutschen für Programmierschnittstelle. Sie stellt eine Verbindung zwischen verschiedenen Apps und Tools dar. </p>



<p>Durch diese Schnittstelle werden die Kommunikation und der Austausch von Daten zwischen verschiedenen Programmen möglich. Codes sind dafür nicht mehr erforderlich, wodurch APIs besonders benutzerfreundlich und einfach in der Anwendung sind. Sie übernehmen die Funktion eines Übersetzers und bieten damit zahlreiche Vorteile.</p>



<h3 class="wp-block-heading"><strong>Praktische Beispiele der Programmierschnittstellen</strong></h3>



<p>Obwohl der Begriff API einfach verständlich und im IT-Bereich bereits weit verbreitet und gebräuchlich ist, fällt die Vorstellung der Funktion oftmals schwer. Vergleiche zum Alltag können Klarheit schaffen.</p>



<p>Ein Kunde (App 1) sucht nach den Produkten A, B, C, die im Ladengeschäft nicht auffindbar sind. Der Angestellte (Programmierschnittstelle) nimmt die Produktanfragen auf und begibt sich damit ins Lager (App 2). Vom Lager werden die Produkte ausgehändigt. Der Angestellte übergibt sie dem Kunden und fungiert damit als Vermittler.</p>



<p>Ein Blinder möchte ein Buch lesen. Das ist unmöglich, da es nicht in Braille-Schrift erhältlich ist. Dank moderner Sprachausgabe der E-Book-Version, wird der Inhalt dennoch vermittelbar. Dabei ist der Vorgang deutlich schneller und einfacher als die umständliche Übersetzung in Braille. In diesem Fall ist die Sprachausgabe die übersetzende und vermittelnde Einheit.</p>



<p>Auf die Kommunikation von Apps bezogen, ist das Buch in geschriebener Sprache App 1. Der Blinde ist App 2. Die Sprachausgabe ist die Programmierschnittstelle, die die Daten von App 1 in verständliche Inhalte für App 2 verwandelt und damit eine immense Erleichterung darstellt sowie neue Möglichkeiten eröffnet.</p>



<h3 class="wp-block-heading"><strong>Vorteile</strong></h3>



<p>Einige Vorzüge von API liegen auf der Hand. Die Kommunikation und der Datenaustausch zwischen verschiedenen Tools, Apps oder Quellen wird erheblich vereinfacht und beschleunigt. An dieser Stelle hören die Vorteile jedoch noch längst nicht auf.</p>



<ul class="wp-block-list">
<li><strong>Steigerung der Effizienz:</strong> Die Automatisierung verschiedener Aufgaben in Unternehmen durch die Anwendung von API steigert die Effizienz in mehrfacher Hinsicht. Zeit, Kosten und Aufwand werden reduziert. Die Vielseitigkeit und die Anpassungsfähigkeit professionell implementierter Systeme erlaubt eine genaue Abstimmung auf den Bedarf und damit eine weitere Steigerung der Effizienz.</li>



<li><strong>zeitnaher Überblick:</strong> Das Auslesen und Übertragen von Daten führt dazu, dass zum einen nur historische Informationen betrachtet werden können. Zum anderen ist das Erkennen von Zusammenhängen erschwert und erfolgt ebenfalls verzögert. Hierdurch entsteht ein Wettbewerbsnachteil. Bereits eine API Schnittstelle in einem ausschlaggebenden und zeitsensitiven Bereich, bedeutet einen klaren Vorteil und kann neue Chancen eröffnen. Sie erlaubt zudem schnelles Agieren.</li>



<li><strong>Arbeitszeitersparnis:</strong> Eine klassische Alternative zu Programmierschnittstellen ist die manuelle Übertragung von Informationen aus einem Tool in ein anderes. Hierfür muss je nach Datenmenge, Umfang der Informationen und nötiger Umwandlung ein immenser Anteil an Arbeitszeit und -kraft aufgewendet werden. Bereits die Ersparnis durch die Nutzung von Programmierschnittstellen lässt essenzielle Ressourcen freiwerden.</li>



<li><strong>sinkende Fehlerquote:</strong> Die direkte und automatische Übertragung der Informationen von einem Tool zum nächsten reduziert die menschliche Fehlerquote. Bereits ein Tippfehler reicht aus, um in der Folge weitere Fehler und fehlleitende Ergebnisse zu erzeugen. Dieses Risiko entfällt bei einer fachkundig eingerichteten API Schnittstelle.</li>



<li><strong>erhöhte Flexibilität:</strong> Die Einrichtung von Programmierschnittstellen trägt zu einem lockeren und leichteren Management bei. Da sich hiermit einzelne Einheiten etablieren lassen, fällt der Aufwand für die Wartung geringer aus. Zudem kann schneller, einfacher und angepasster auf Probleme reagiert werden. Wird eine Lösung benötigt, lässt sich diese mit weniger Aufwand und in kürzerer Zeit durch Application Programming Interface aufbauen und einsetzen. Ebenso einfach ist die Anpassung an den jeweiligen Bedarf.</li>



<li><strong>Freisetzung von Ressourcen:</strong> Bei der nötigen Arbeitszeit und -kraft lässt sich bereits sparen. Zusätzlich kann durch den Einsatz von API Schnittstellen festgestellt werden, an welchen Stellen Verbesserungsmöglichkeiten bestehen, Ressourcen freigesetzt oder anders verteilt werden können. Das dadurch entstehende Optimierungspotenzial ist nicht zu unterschätzen.</li>



<li><strong>Optionen für Kunden:</strong> Kunden einen direkten und zeitnahen Einblick in Abläufe und Entwicklungen zu geben, wirkt sich positiv auf die Bindung aus. Es kann mehr Vertrauen schaffen und dadurch in mehrfacher Hinsicht ein Wettbewerbsvorteil sein.</li>



<li><strong>vergrößertes Innovationspotenzial:</strong> Die Anwendung von Application Programming Interfaces an geeigneten Stellen und individuell abgestimmt eingesetzt, schafft Freiräume und kann inspirieren. Die Verbindung verschiedener Bereiche, das Nachverfolgen bisher unklarer Zusammenhänge und die daraus entstehenden Möglichkeiten sind nicht zu unterschätzen.</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://www.yuhiro.de/wp-content/uploads/2024/02/Application-Programming-Interfaces.jpg" rel="wp-prettyPhoto[11907]"><img loading="lazy" decoding="async" width="575" height="250" src="https://www.yuhiro.de/wp-content/uploads/2024/02/Application-Programming-Interfaces.jpg" alt="" class="wp-image-11909" srcset="https://www.yuhiro.de/wp-content/uploads/2024/02/Application-Programming-Interfaces.jpg 575w, https://www.yuhiro.de/wp-content/uploads/2024/02/Application-Programming-Interfaces-300x130.jpg 300w" sizes="auto, (max-width: 575px) 100vw, 575px" /></a></figure></div>


<h3 class="wp-block-heading"><strong>Potenzielle Nachteile</strong></h3>



<p>Neben den überzeugenden Vorteilen der API Schnittstelle oder sogar mehrerer Programmierschnittstellen finden sich bei den Anwendungen zwischen den Apps und Tools auch einige Punkte, die vor der Entscheidung berücksichtigt werden sollten. Dazu gehören:</p>



<ul class="wp-block-list">
<li><strong>Kosten:</strong> Individuelle Lösungen erfordern auch individuelle Entwicklungen. Sofern es sich nicht um ein Programm handelt, das ohne Änderungen und Anpassung die angedachte Aufgabe übernehmen kann, stellt die Programmierschnittstelle zunächst einen größeren finanziellen Aufwand dar. Ob sich dieser lohnt, hängt vom individuellen Fall ab.</li>



<li><strong>Aufwand:</strong> Neben den Ausgaben für das Fachpersonal, die Entwicklung und Implementierung muss beim Einpflegen, bei Wartung und Anpassungen der zeitliche Aufwand eingerechnet werden. Auch die Umstellungen in Hinblick auf die Arbeitsweise, das Auslesen der Daten und Zusammenhänge und die Bereitstellung der Ergebnisse sind nicht zu unterschätzen. Ob sich der Einsatz lohnt, lässt sich nur fallabhängig entscheiden.</li>



<li><strong>Personal:</strong> Eine API Schnittstelle oder mehrere Programmierschnittstellen für die Kommunikation zwischen Apps und Programmen sowie die Anzeige gewünschter Ergebnisse erfordert fachkundiges, professionelles Personal. Nur dann lohnt sich die Implementierung, da Probleme und Anfangsschwierigkeiten sich somit bereits im Vorfeld verhindern lassen. Es bedeutet allerdings auch eine Investition.</li>
</ul>



<h3 class="wp-block-heading"><strong>Praktischer Nutzen</strong></h3>



<p>Aus den Vorteilen der Schnittstelle ergeben sich bereits mehrere praktische Funktionen und ein sinnvoller Nutzen. Dennoch ist das Abwägen von Aufwand und Gewinn durch die Implementierung unverzichtbar. Nicht bei jedem Unternehmen und nicht bei jedem geschäftlichen Ziel sind Application Programming Interfaces wirklich die beste Wahl oder auch nur im Ansatz sinnvoll. Zudem sind sie nicht alternativlos.</p>



<h3 class="wp-block-heading"><strong>Alternativen zu Application Programming Interfaces</strong></h3>



<p>Aufgrund der zahlreichen Möglichkeiten der Application Programming Interfaces und der Optionen zur Anpassung finden sich einige alternative Lösungen, die speziell auf bestimmte Bereiche zugeschnitten sind. Sie weisen eine geringere Vielseitigkeit auf, verbinden aber dennoch die entsprechenden Vorteile und Funktionen miteinander. Vor der Entscheidung für eine Programmierschnittstelle ist es daher ratsam, alle infrage kommenden Lösungen auf ihre Eignung hin zu überprüfen.</p>



<h3 class="wp-block-heading"><strong>Beratung und fachkundige Planung</strong></h3>



<p>Ausschlaggebend für die beste Wahl und Anpassung in jedem Fall ist eine genaue Bestandsaufnahme und eine professionelle Beratung. Nur dadurch lässt sich sicherstellen, dass unnötige Ausgaben vermieden werden und das vorhandene Potenzial vollkommen ausgenutzt wird.&nbsp;</p>



<p>Interessante Links:</p>



<p><a href="https://www.talend.com/de/resources/was-ist-eine-api/" title="">Was ist eine API auf dem talend blog</a></p>



<p><a href="https://www.computerwoche.de/article/2790525/was-sie-ueber-application-programming-interfaces-wissen-muessen.html" title="">Mehr zu solchen Schnittstellen auf Computerwoche</a></p>



<p>Bilder: Canva</p>



<hr class="wp-block-separator has-css-opacity"/>


<div class="wp-block-image">
<figure class="alignleft"><img loading="lazy" decoding="async" width="150" height="150" src="https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed-150x150.jpg" alt="" class="wp-image-229" srcset="https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed-150x150.jpg 150w, https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed.jpg 227w" sizes="auto, (max-width: 150px) 100vw, 150px" /></figure></div>


<p>Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.</p>The post <a href="https://www.yuhiro.de/was-ist-eine-api-schnittstelle/">Was ist eine API Schnittstelle?</a> first appeared on <a href="https://www.yuhiro.de">Yuhiro</a>.]]></content:encoded>
					
					<wfw:commentRss>https://www.yuhiro.de/was-ist-eine-api-schnittstelle/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Shopify App Entwicklung: darum ist es interessant</title>
		<link>https://www.yuhiro.de/shopify-app-entwicklung/</link>
					<comments>https://www.yuhiro.de/shopify-app-entwicklung/#respond</comments>
		
		<dc:creator><![CDATA[Autor]]></dc:creator>
		<pubDate>Tue, 16 Jan 2024 05:41:53 +0000</pubDate>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Programmierung]]></category>
		<guid isPermaLink="false">https://www.yuhiro.de/?p=11877</guid>

					<description><![CDATA[<p>Shopify App Entwicklung: darum ist es interessant Im E-Commerce-Sektor zählt Shopify zu den beliebtesten Shopsystemen, das sich als All-in-One-Lösung durch zahlreiche Funktionen auszeichnet. Die Plattform ist bekannt für eine riesige Vielfalt an Apps, mit denen Onlinehändler ihren Shop individualisieren können.&#160; Die Entwicklung dieser multifunktionalen Erweiterungen ist einer</p>
The post <a href="https://www.yuhiro.de/shopify-app-entwicklung/">Shopify App Entwicklung: darum ist es interessant</a> first appeared on <a href="https://www.yuhiro.de">Yuhiro</a>.]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">Shopify App Entwicklung: darum ist es interessant</h2>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://www.yuhiro.de/wp-content/uploads/2024/01/Ecommerce-Anwendung.jpg" rel="wp-prettyPhoto[11877]"><img loading="lazy" decoding="async" width="575" height="250" src="https://www.yuhiro.de/wp-content/uploads/2024/01/Ecommerce-Anwendung.jpg" alt="" class="wp-image-11878" srcset="https://www.yuhiro.de/wp-content/uploads/2024/01/Ecommerce-Anwendung.jpg 575w, https://www.yuhiro.de/wp-content/uploads/2024/01/Ecommerce-Anwendung-300x130.jpg 300w" sizes="auto, (max-width: 575px) 100vw, 575px" /></a></figure></div>


<p>Im E-Commerce-Sektor zählt Shopify zu den beliebtesten Shopsystemen, das sich als All-in-One-Lösung durch zahlreiche Funktionen auszeichnet. Die Plattform ist bekannt für eine riesige Vielfalt an Apps, mit denen Onlinehändler ihren Shop individualisieren können.&nbsp;</p>



<p>Die Entwicklung dieser multifunktionalen Erweiterungen ist einer der gefragtesten Jobs der Softwarebranche. Dementsprechend vielversprechend sehen die Karrieremöglichkeiten für angehende Shopify-Entwickler aus. Gleichzeitig kann man auch als Unternehmer solche Anwendungen programmieren oder programmieren lassen und diese auf der Plattform erfolgreich vermarkten.</p>



<p>Wie die Zusammenarbeit mit Shopify funktioniert und welche Anforderungen mit der Erstellung von Apps verbunden sind, informiert der folgende Ratgeber.</p>



<h3 class="wp-block-heading"><strong>Welche Chancen bietet die Plattform?</strong></h3>



<p>In dem App-Store der cloudbasierten E-Commerce-Plattform Shopify stehen Nutzern mehr als 9.000 Apps für zahlreiche Branchen zur Auswahl. Neben den zur Verfügung stehenden Erweiterungen ergeben sich durch die Entwicklung weiterer Applikationen unbegrenzte Möglichkeiten für Shopbetreiber. Grundsätzlich lässt sich die Entwicklung einer App in Eigenregie oder mithilfe eines Shopify-Entwicklungspartners realisieren.&nbsp;</p>



<p>Registrierte Shopify-Entwickler können Applikationen und Themes im Rahmen einer umfassenden Entwicklungsplattform programmieren und diese über den App-Store für Millionen von Händlern bereitstellen. Dabei gilt es zwischen öffentlich gelisteten und öffentlich nicht gelisteten Apps, welche ausschließlich über einen Direktlink zu finden sind, zu unterscheiden. </p>



<p>Darüber hinaus lassen sich im Adminbereich oder über das Partner-Dashboard benutzerdefinierte Applikationen, auch Custom-Apps genannt, für einen einzelnen Shop erstellen. Für den Verkauf dieser Erweiterungen bietet sich der App-Store von Shopify an. Über diesen Marktplatz lassen sich Apps gegen eine Einzahlung oder im Rahmen eines Abonnements an Shopify-User verkaufen.&nbsp;</p>



<p>Speziell Abonnement-Apps sind für Entwicklungspartner von Vorteil, da die wiederkehrenden Gebühren die Grundlage für eine passive Einnahmequelle bilden. Dabei ist die erste Million US-Dollar innerhalb eines Jahres von einer Umsatzbeteiligung durch Shopify befreit. Anschließend berechnet die Plattform für die Bereitstellung der Infrastruktur eine Umsatzbeteiligung in Höhe von 20 % auf alle Gesamteinnahmen. Zusätzlich steht die Plattform ihren App-Entwicklern durch gezielte Promotion beim Reichweitenaufbau unterstützend zur Seite.</p>



<h3 class="wp-block-heading"><strong>Welche Technologien kommen zum Einsatz?</strong></h3>



<p>Bei Shopify-Apps handelt es sich um cloudbasierte SaaS-Anwendungen, deren Erstellung aus mehreren Entwicklungsprozessen besteht und im ersten Schritt mit der Planungs- und Designphase beginnt. Dieser Teilbereich umfasst das Kreieren eines UX-Designs sowie die Gestaltung eines ästhetischen Visual-Designs auf der Grundlage strukturgebender Wireframes. Grundsätzlich ist der Entwicklungsaufwand von dem geplanten Funktionsumfang und der Art der Anwendung abhängig.&nbsp;</p>



<p>Oftmals ist die Programmierung von öffentlichen Apps mit größerem Aufwand als die Erstellung von Custom-Apps verbunden. Der Mehraufwand ist auf die komplexere Softwarearchitektur zurückzuführen, da die Kernfunktionen mit einer Vielzahl an Shops kompatibel sein müssen. Nach Abschluss der Planungs- und Designphase erfolgt mit den folgenden Programmiersprachen die Entwicklung der Software.</p>



<h3 class="wp-block-heading"><strong>React.js – komponentenbasierte JavaScript-Bibliothek</strong></h3>



<p>Bei dieser Front-end-Technologie handelt es sich um ein Framework für die Erstellung von webbasierten Benutzeroberflächen. Als Programmierbibliothek von JavaScript ist React.js eine der einfachsten Entwicklungsmethoden, um benutzerfreundliche E-Commerce-Apps zu erstellen.&nbsp;</p>



<p>Mit React.js lassen sich Single-Page-Apps entwickeln, die auf einer dynamischen Benutzeroberfläche basieren und deren Content sich nach einer einmaligen Serveransprache automatisch aktualisiert.&nbsp;</p>



<p>Aufgrund dessen zeichnen sich React-Anwendungen durch eine hohe Leistung aus und überzeugen durch Funktionalität, ein schnelles Rendering und einen geringen Codeumfang.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://www.yuhiro.de/wp-content/uploads/2024/01/Onlineshop-Programmierung.jpg" rel="wp-prettyPhoto[11877]"><img loading="lazy" decoding="async" width="575" height="250" src="https://www.yuhiro.de/wp-content/uploads/2024/01/Onlineshop-Programmierung.jpg" alt="" class="wp-image-11879" srcset="https://www.yuhiro.de/wp-content/uploads/2024/01/Onlineshop-Programmierung.jpg 575w, https://www.yuhiro.de/wp-content/uploads/2024/01/Onlineshop-Programmierung-300x130.jpg 300w" sizes="auto, (max-width: 575px) 100vw, 575px" /></a></figure></div>


<h3 class="wp-block-heading"><strong>HTML und CSS</strong></h3>



<p>Abgesehen von JavaScript stellen HTML und CSS die Kernsprachen bei der Erstellung von interaktiven Webanwendungen dar. Für die Entwicklung einer Shopify-App ist grundlegend die Verwendung von Hypertext-Markup-Language (HTML) erforderlich. Mit dieser textbasierten Auszeichnungssprache lassen sich die Inhalte der Applikation festlegen und beschreiben. Für die Darstellung und optische Gestaltung der HTML-Elemente sind Cascading-Style-Sheets (CSS) verantwortlich.&nbsp;</p>



<p>Wenn die Struktur und Designbeschaffenheit durch HTML und CSS definiert ist, ermöglichen JavaScript-Komponenten die Interaktion mit der Anwendung. Für eine reibungslose Kommunikation zwischen Nutzer und Server kommt die Open-Source-Skriptsprache Hypertext-Preprocessor (PHP) zum Einsatz.</p>



<h3 class="wp-block-heading"><strong>Ruby on Rails</strong></h3>



<p>Im Bereich der Back-End-Entwicklung verwendet Shopify das quelloffene Webframework Ruby on Rails, kurz RoR. Dementsprechend stellt Shopify eine Reihe von Integrationsbibliotheken bereit, die sich in Ruby on Rails unkompliziert einbinden lassen.&nbsp;</p>



<p>Auf diese Weise können Entwickler mit einem vorgefertigten Grundgerüst in die Programmierung starten. RoR-Anwendungen weisen hohe Sicherheitsstandards auf und kommen aufgrund der klar strukturierten MVC-Architektur, die sich aus den Komponenten Modell, Ansicht und Steuerung zusammensetzt, mit wenig Code aus.&nbsp;</p>



<p>Zudem steht für diese Programmiersprache eine breit gefächerte Palette an Tools und Bibliotheken für zahlreiche Einsatzbereiche zur Verfügung.</p>



<h3 class="wp-block-heading"><strong>Darauf sollten Entwickler achten</strong></h3>



<p>E-Commerce-Apps müssen eine geringe Fehleranfälligkeit aufweisen, auf einen zuverlässigen Betrieb konzipiert sein und durch regelmäßige Updates eine Kompatibilität zu den aktuellsten technischen Standards aufweisen.&nbsp;</p>



<p>Auf diese Weise ist sichergestellt, dass die Anwendung trotz einer neuen Shopify-Version oder eines aktualisierten Themes reibungslos funktioniert. Andernfalls können Kompatibilitätsprobleme den Ausfall wichtiger Shop-Funktionen verursachen.&nbsp;</p>



<p>Darüber hinaus gilt es zu bedenken, dass öffentliche Applikationen für den App-Store einer breiten Masse an Händlern zur Verfügung stehen und an bestimmte Sicherheitsanforderungen geknüpft sind. Infolgedessen führt Shopify vor der Freigabe eine 100-Punkte-Prüfung durch, um den Nutzern die sicherste Lösung für ihr Unternehmen bereitstellen zu stellen.&nbsp;</p>



<p>Bei benutzerdefinierten Apps entfällt dieses Prüfverfahren, da die Kooperation zwischen Entwickler und Händler auf Vertrauensbasis beruht. Letztlich spielt die Preisgestaltung, die sich in erster Linie nach der Art der Anwendung und dem Umfang an Funktionen richtet, eine wichtige Rolle. Demnach sollten die Preise für den Kunden in einem angemessenen Rahmen dimensioniert sein.</p>



<h3 class="wp-block-heading"><strong>Was sind die Erfolgsfaktoren für gute und weitverbreitete Apps?</strong></h3>



<p>Ein grundlegender Faktor bei der Entwicklung einer erfolgreichen E-Commerce-Anwendung ist die Leistung. Gute Apps für Shopify müssen trotz hohem Traffic-Volumens leistungsstark sein, ohne die Performance des Shops auszubremsen. Darüber hinaus stehen bei der Entwicklung die Bedürfnisse des Endbenutzers an erster Stelle.&nbsp;</p>



<p>Unabhängig davon, ob es sich um eine kundenspezifische Custom-App oder um eine Anwendung für den App-Store handelt, sollte die Applikation mit einem benutzerfreundlichen Layout ausgestattet sein und einen hohen Mehrwert für Shopbetreiber bieten. Hierbei ist es wichtig im Voraus die Geschäftsbedürfnisse der Händler in Erfahrung zu bringen, um im Anschluss lösungsorientierte Funktionen erstellen zu können. Speziell multifunktionale Erweiterungen, welche aufgrund eines hohen Funktionsumfangs mehrere Apps ersetzen, sind in jedem Fall von Vorteil.&nbsp;</p>



<p>Durch eine geringe Anzahl an installierten Apps ergeben sich kurze Ladezeiten, wodurch Kunden von einem komfortablen Nutzererlebnis profitieren. Interessante Multifuntkionsapps mit praktischen Features sind beispielsweise im Marketing-Bereich vertreten. Strategisches Marketing ist ein allgegenwärtiger Faktor im E-Commerce, um Neukunden zu gewinnen und Bestandskunden zu binden.&nbsp;</p>



<p>Mit diesen Tools lassen sich mit wenig Zeitaufwand umfangreiche Kampagnen erstellen und automatisieren. Auch Buchhahltungsapps sowie All-in-One-Lösungen zur Umsatzsteigerung wie Sales Rocket kommen in jedem guten Store zum Einsatz. Im Dropshipping-Bereich erfreut sich die Anwendung Printful für den Vertrieb von individualisierten Produkten einer großen Beliebtheit.</p>



<h3 class="wp-block-heading"><strong>Erfolgreich als Entwicklungspartner durchstarten – so funktioniert es</strong></h3>



<p>Das Partnerprogramm von Shopify bietet Entwicklern die Möglichkeit, ein zusätzliches Einkommen mit dem Vertrieb von E-Commerce-Apps aufzubauen. Die Einnahmen kommen durch Abonnementgebühren im Zuge der wiederkehrenden Nutzung von erstellen Anwendungen oder durch einmalige App-Käufe zustande. Dabei richtet sich die Verdiensthöhe nach der Anzahl der veröffentlichten Applikationen sowie nach deren Preisplänen.&nbsp;</p>



<p>Die Teilnahme ist komplett kostenfrei und ist über das Anmeldeformular in wenigen Schritten abgeschlossen. Nach erfolgreicher Anmeldung lassen sich alle geschäftlichen Vorgänge über das Partner-Dashboard verwalten. Dieser Hauptbereich zeigt alle Einnahmen und Ausgaben an und liefert einen Überblick über Kundenprojekte, veröffentlichte Anwendungen und Kooperationen mit Entwicklerteams.&nbsp;</p>



<p>Schlussendlich ist der E-Commerce-Bereich eine schnelllebige Branche, welche ständigen Veränderungen und Trendentwicklungen unterliegt. Umso wichtiger ist die regelmäßige Weiterbildung für Entwickler. Diesbezüglich bietet Shopify kostenlos fachspezifische Schulungskurse und Dokumentationen an. Zusätzlich ist der Erwerb von Auszeichnungen und Zertifizierungen innerhalb des Schulungsprogramms möglich.&nbsp;</p>



<p>Somit können sich Neukunden einen direkten Überblick über die Kompetenzen eines Entwicklers verschaffen. Bei Fragen und Problemen steht das Supportteam von Shopify sowie die internationale Partner-Community kompetent zur Seite.</p>



<p>Interessante Links:</p>



<p><a href="https://de.wikipedia.org/wiki/Shopify" title="">Mehr zu Shopify auf Wikipedia</a></p>



<p><a href="https://www.buzzwoo.de/blog/wie-erstelle-ich-eine-shopify-app" title="">Mehr Informationen wie man eine Shopify Anwendung baut</a></p>



<p>Bilder: Canva</p>



<hr class="wp-block-separator has-css-opacity"/>


<div class="wp-block-image">
<figure class="alignleft"><img loading="lazy" decoding="async" width="150" height="150" src="https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed-150x150.jpg" alt="" class="wp-image-229" srcset="https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed-150x150.jpg 150w, https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed.jpg 227w" sizes="auto, (max-width: 150px) 100vw, 150px" /></figure></div>


<p>Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.</p>The post <a href="https://www.yuhiro.de/shopify-app-entwicklung/">Shopify App Entwicklung: darum ist es interessant</a> first appeared on <a href="https://www.yuhiro.de">Yuhiro</a>.]]></content:encoded>
					
					<wfw:commentRss>https://www.yuhiro.de/shopify-app-entwicklung/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Vorteile und Nachteile von Ruby on Rails</title>
		<link>https://www.yuhiro.de/vorteile-und-nachteile-von-ruby-on-rails/</link>
					<comments>https://www.yuhiro.de/vorteile-und-nachteile-von-ruby-on-rails/#respond</comments>
		
		<dc:creator><![CDATA[Autor]]></dc:creator>
		<pubDate>Tue, 28 Nov 2023 05:12:35 +0000</pubDate>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Webentwicklung]]></category>
		<guid isPermaLink="false">https://www.yuhiro.de/?p=11820</guid>

					<description><![CDATA[<p>Vorteile und Nachteile von Ruby on Rails In der Webentwicklung kann die Wahl des passenden Frameworks eine Herausforderung darstellen.&#160; Zu den beliebtesten Webentwicklungstechnologien, die der Markt zu bieten hat, zählt das Framework Ruby on Rails.&#160; Der folgende Ratgeber liefert Entwicklern einen Einblick in den technischen Aufbau des</p>
The post <a href="https://www.yuhiro.de/vorteile-und-nachteile-von-ruby-on-rails/">Vorteile und Nachteile von Ruby on Rails</a> first appeared on <a href="https://www.yuhiro.de">Yuhiro</a>.]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">Vorteile und Nachteile von Ruby on Rails</h2>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://www.yuhiro.de/wp-content/uploads/2023/11/MVC-Framework.jpg" rel="wp-prettyPhoto[11820]"><img loading="lazy" decoding="async" width="575" height="250" src="https://www.yuhiro.de/wp-content/uploads/2023/11/MVC-Framework.jpg" alt="" class="wp-image-11821" srcset="https://www.yuhiro.de/wp-content/uploads/2023/11/MVC-Framework.jpg 575w, https://www.yuhiro.de/wp-content/uploads/2023/11/MVC-Framework-300x130.jpg 300w" sizes="auto, (max-width: 575px) 100vw, 575px" /></a></figure></div>


<p>In der Webentwicklung kann die Wahl des passenden Frameworks eine Herausforderung darstellen.&nbsp;</p>



<p>Zu den beliebtesten Webentwicklungstechnologien, die der Markt zu bieten hat, zählt das Framework Ruby on Rails.&nbsp;</p>



<p>Der folgende Ratgeber liefert Entwicklern einen Einblick in den technischen Aufbau des Webframeworks und zeigt neben den Unterschieden zu Java, PHP und Python die Vor- und Nachteile auf, die mit der Verwendung einhergehen.</p>



<h3 class="wp-block-heading"><strong>Plattformunabhängiges Webframework mit zunehmender Popularität</strong></h3>



<p>Das als RoR bekannte Ruby on Rails ist ein im Jahr 2004 entwickeltes Webframework des dänischen Programmierers David Heinemeier Hansson.&nbsp;</p>



<p>Dabei handelt es sich um eine Open-Source-Software auf Basis der in den 1990er-Jahren konzipierten Programmiersprache Ruby.&nbsp;</p>



<p>Das offene MVC-Framework dient Webanwendungen als vorprogrammiertes Grundgerüst, das zur individuellen Modifizierung gemäß der MIT-Lizenz kostenlos bereitsteht.&nbsp;</p>



<p>Die Abkürzung MVC steht für Model-View-Controller (MVC) zu Deutsch Modell-Ansicht-Steuerung und beschreibt das agile Architekturmuster von Ruby on Rails. Mithilfe dieser Methode sind moderne Webanwendungen in die drei Hauptsegmente Modell, Ansicht und Controller unterteilbar.&nbsp;</p>



<p>Auf diese Weise lassen sich verschiedene Softwarekomponenten unabhängig voneinander warten und weiterentwickeln. Ruby on Rails ist unter anderem für E-Commerce-Seiten, soziale Netzwerke sowie für Online-Marktplätze geeignet.&nbsp;</p>



<p>Demnach ist das MVC-Framework seit langem ein fester Bestandteil bei Airbnb, Twitter, Shopify, Fiverr und anderen bekannten Webseiten.</p>



<h3 class="wp-block-heading"><strong>Funktionsweise und Bestandteile</strong></h3>



<p>Mit dem MVC-Framework lassen sich innerhalb kurzer Zeit Webanwendungen in Form von datenbankbasierten Webseiten mit dynamisch generierten Inhalten entwickeln. Dabei basiert die zum Einsatz kommende Laufzeitumgebung auf einem geschlossenen System.&nbsp;</p>



<p>In der Praxis handelt es sich bei einer Laufzeitumgebung um eine digitale Plattform, die mit allen notwendigen Ressourcen ausgestattet ist, um einen betriebssystemunabhängigen Betrieb für die programmierte Applikation zu ermöglichen.&nbsp;</p>



<p>Der aus den Komponenten Views, Datenbankmodell, Controller und Konfigurationen bestehende Verzeichnisbaum des Dateisystems der Ruby-on-Rails-Laufzeitumgebung garantiert eine saubere Trennung zwischen dem Datenbestand, der Datenaufbereitung und der Datenanzeige.&nbsp;</p>



<p>Somit sind RoR-Anwendungen pflegeleicht und zeichnen sich durch eine unkomplizierte Wartung aus.&nbsp;</p>



<p>Die Anwendungsarchitektur von Ruby on Rails setzt sich aus den folgenden Bestandteilen zusammen.</p>



<h3 class="wp-block-heading"><strong>Model</strong></h3>



<p>RoR-Applikationen sind in der Regel mit relationalen SQL-Datenbanken verknüpft und verwenden Models, um eine Kommunikation mit dem Datenbankmanagementsystem (DBMS) herzustellen.&nbsp;</p>



<p>Das Datenbankmodell fungiert als Strukturschema, das vorgibt, in welcher Beziehung die Datenbankinformationen zueinander stehen. Hierfür nutzt Ruby on Rails Klassen, Methoden und Eigenschaften als Unterscheidungskriterien.&nbsp;</p>



<p>Demnach stellt jede Klasse eine Tabelle der Datenbank dar. Dabei sind die Zeilen als Objekte und dessen Eigenschaften als Felder eingeteilt.</p>



<h3 class="wp-block-heading"><strong>View</strong></h3>



<p>Das View-Segment übernimmt in einer RoR-Anwendung die Aufgabe der Präsentationsschicht und bezieht sich auf die Datenvisualisierung.&nbsp;</p>



<p>Diesen Prozess realisiert Ruby on Rails mit der Action View-Klasse, welche mit einer Vielzahl an Ausgabeformaten kompatibel ist. Anschließend erfolgt die Darstellung der gerenderten Daten auf Grundlage von HTML für den Webseitenbesucher.&nbsp;</p>



<p>Mit der Actions-View-Klasse ist die Anwendung in der Lage, die komplette Website oder bestimmte Bereiche wie beispielsweise den Warenkorbinhalt eines Shops darzustellen.</p>



<h3 class="wp-block-heading"><strong>Controller</strong></h3>



<p>Da die Architektursegmente Model und View kommunikativ voneinander getrennt sind, stellt der Controller das Verbindungsglied zwischen diesen Teilen dar und sorgt für den Informationsaustausch.&nbsp;</p>



<p>Der Controller, auch zentrale Steuerungsschicht genannt, ist eine Ruby-Datei, die bei einer Request in Form einer Anfrage durch den Webbrowser für den Aufbau der Seite sorgt. Hierfür ruft der Controller die notwendigen Datenpakete aus der Model-Schicht ab und leitet diese an die View-Schicht für die Visualisierung weiter.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://www.yuhiro.de/wp-content/uploads/2023/11/Ruby.jpg" rel="wp-prettyPhoto[11820]"><img loading="lazy" decoding="async" width="575" height="250" src="https://www.yuhiro.de/wp-content/uploads/2023/11/Ruby.jpg" alt="" class="wp-image-11822" srcset="https://www.yuhiro.de/wp-content/uploads/2023/11/Ruby.jpg 575w, https://www.yuhiro.de/wp-content/uploads/2023/11/Ruby-300x130.jpg 300w" sizes="auto, (max-width: 575px) 100vw, 575px" /></a></figure></div>


<h3 class="wp-block-heading"><strong>Die Vorteile im Überblick</strong></h3>



<h3 class="wp-block-heading"><strong>Gute Code-Qualität</strong></h3>



<p>Ruby on Rails basiert auf einem schlanken und zugleich objektorientierten Code, der aufgrund der MVC-Architektur einer klaren Strukturierung unterliegt.&nbsp;</p>



<p>In Kombination mit dem umfangreichen Portfolio an zur Verfügung stehendem Open-Source-Code ergibt sich für Entwickler eine einfache Programmierbarkeit.&nbsp;</p>



<p>Hinzu kommt, dass sich das Framework aufgrund der autoritativen Code-Snippets durch ein geringes Fehlerbild auszeichnet. Infolgedessen weisen Drittanbieter-Codes in RoR-Applikationen ein höheres Qualitätsniveau als bei alternativen Programmiersprachen auf.</p>



<h3 class="wp-block-heading"><strong>Bewährte Praxis mit hohen Sicherheitsstandards</strong></h3>



<p>In Anbetracht der einfachen Anwendbarkeit hat sich Ruby als einer der beliebtesten Programmiersprachen etabliert.&nbsp;</p>



<p>Bei kleinen sowie komplexen Entwicklungsprojekten überzeugen RoR-Anwendungen durch einen breit gefächerten Bestand an Modulen und Bibliotheken. Neben der selbsterklärenden Codestruktur, die sich durch die ausdrucksstarke Syntax der Ruby-Programmiersprache definiert, ist das Framework mit zeitgemäßen Sicherheitsmechanismen ausgestattet.&nbsp;</p>



<p>Diese schließen im Zuge regelmäßiger Aktualisierungen zuverlässig bestehende Sicherheitslücken und schützen die Webanwendung vor bedrohlichen Cyberangriffen.</p>



<h3 class="wp-block-heading"><strong>Beachtliche Entwicklungsgeschwindigkeit</strong></h3>



<p>Entwickler haben mit dem Framework die Möglichkeit, innerhalb von Minuten ein Grundgerüst für kleine und komplexe Webanwendungen zu kreieren.&nbsp;</p>



<p>Durch eine Vielzahl an Open-Source-Bibliotheken in Verbindung mit dem ausgereiften Model- und Paketverwaltungssystem lässt sich eine effiziente Anwendungsentwicklung ohne großen Zeitaufwand realisieren.&nbsp;</p>



<p>Ebenfalls unkompliziert gestaltet sich das Vornehmen von Änderungsanpassungen sowie nachträgliche Erweiterungen durch neue Funktionen.</p>



<h3 class="wp-block-heading"><strong>Keine Lizenzkosten</strong></h3>



<p>Ein großer Vorteil der objektorientierten Programmierung mittels Rails ist der geringe Kostenfaktor. Das Framework steht im Gegensatz zu kommerziellen Varianten zur kostenlosen Nutzung bereit, was vor allem Start-ups mit geringem Kapitalvolumen zugutekommt.&nbsp;</p>



<p>Insgesamt ist die Webseitenerstellung mit wenig Zeit- und Kostenaufwand verbunden, ohne dass Entwickler Kompromisse bei Leistung, Qualität und Skalierbarkeit eingehen müssen.</p>



<h3 class="wp-block-heading"><strong>Vielschichtiges Angebot an Generatoren</strong></h3>



<p>Das Ruby-Framework ist an einem Webserver mit angebundener Datenbank gekoppelt und bietet Anfängern sowie Profis eine Vielzahl an Generatoren, den den Entwicklungsprozess vereinfachen.&nbsp;</p>



<p>Diese Werkzeuge verkürzen durch die Generierung von Codesegmenten die Entwicklungszeit und garantieren einen effizienten Arbeitsablauf. Auch die Erstellung eigener Generatoren mithilfe von bestimmten Vorlagen sowie die Anpassung von bestehenden Generatoren ist bei Bedarf möglich.</p>



<h3 class="wp-block-heading"><strong>Große Bandbreite an Tools und Bibliotheken</strong></h3>



<p>Die umfangreiche Palette an Werkzeugen erstreckt sich über Tools, die zum Testen, Debuggen, Optimieren und für viele weitere Bereiche einsetzbar sind. Zusätzlich können sich experimentierfreudige Entwickler auf eine Vielzahl an öffentlich zur Verfügung stehenden Bibliotheken für unterschiedliche Einsatzbereiche freuen.&nbsp;</p>



<p>Innerhalb einer Bibliothek befinden sich unterschiedliche Funktionen, Befehle und Klassen, die als Bauplan für die Erstellung von Objekten dienen.</p>



<h3 class="wp-block-heading"><strong>Große Ruby-Community</strong></h3>



<p>Ein weiter Pluspunkt bei Ruby on Rails ist die engagierte Community, welche die RoR-Entwicklung seit Jahren vorantreibt. Die aktive Gemeinschaft bietet fachkundigen Support und steht Entwicklern bei Problemen mit Dokumentationen, Tutorials und hilfreichen Problemlösungen zur Seite.&nbsp;</p>



<p>Darüber hinaus erleichtern automatisierte Tests sowie eine riesige Auswahl an implementierten Funktionen das Programmieren mit Ruby on Rails.</p>



<h3 class="wp-block-heading"><strong>Das sind die Nachteile des Frameworks</strong></h3>



<h3 class="wp-block-heading"><strong>Leistung und Laufzeitgeschwindigkeit</strong></h3>



<p>Bislang haben C-Programme und Java-Anwendungen in puncto Performance die Nase vorn. Obwohl das Leistungsniveau für die meisten Webentwicklungs-Projekte ausreicht, hingt das MVC-Framework gegenüber seinen Konkurrenten hinterher, was gleichzeitig die Skalierbarkeit der Anwendung limitiert.&nbsp;</p>



<p>Um die Performanceprobleme zu reduzieren, ist ein hohes Maß an Expertise im Umgang mit Ruby gefragt.&nbsp;</p>



<p>Ein weiteres Argument, das Entwickler oftmals gegen Rails anführen, ist der lange Bootvorgang. Für eine verbesserte Laufzeitgeschwindigkeit lässt sich Ruby mit dem Interpreter JRuby in Java implementieren.</p>



<h3 class="wp-block-heading"><strong>Hostingkosten</strong></h3>



<p>Obwohl bei der Verwendung des Frameworks keine Lizenzkosten oder versteckten Gebühren anfallen, kann sich das Hosting einer RoR-Webseite kostspielig gestalten.&nbsp;</p>



<p>Abgesehen von den Hostingkosten benötigt Rails mehr Ressourcen, als es bei Alternativen wie PHP der Fall ist. Dementsprechend sind nicht alle Hosting-Provider mit Rails kompatibel.</p>



<h3 class="wp-block-heading"><strong>Aufwendige Fehlerbehebung</strong></h3>



<p>Bei Ruby können falsche Architekturentscheidungen zu komplexen Fehlern führen, die im Rahmen der umfangreichen Struktur oftmals schwer identifizierbar sind. Da die einzelnen Komponenten und Schichten in einer gewissen Abhängigkeit miteinander verbunden sind, kann sich das Debuggen des Quellcodes zeitaufwendig gestalten.</p>



<h3 class="wp-block-heading"><strong>Alternative Frameworks – Unterschiede und Gemeinsamkeiten</strong></h3>



<p>Anders als das weitverbreitete Java ist das serverseitige RoR-Framework nicht an eine Plattform gebunden.&nbsp;</p>



<p>Auch in Bezug auf die Anzahl an Bibliotheken ergibt sich bei Rails ein klarer Vorteil gegenüber JavaScript-Frameworks.&nbsp;</p>



<p>Beide Systeme verfügen über integrierte Sicherheitsfunktionen und sind mit einem reichhaltigen Ökosystem an Ressourcen, Tools und Werkzeugen für eine leichtere Codierung ausgestattet.&nbsp;</p>



<p>Darüber hinaus weist Ruby als dynamisch interpretierte Skriptsprache viele Ähnlichkeiten zu dem Django-Framework für Python sowie zu PHP auf.&nbsp;</p>



<p>Was die Verwendung eines Ruby-Frameworks für Entwickler attraktiv gegenüber anderen Sprachen macht, ist das strukturierte Codesystem, das eine effiziente Webentwicklung bei terminlichem Zeitdruck ermöglicht.</p>



<h3 class="wp-block-heading"><strong>Fazit: Sinnvolle Einsatzbereiche für Ruby-Frameworks</strong></h3>



<p>Als Backend-Lösung ist Ruby on Rails ein vielseitig einsetzbares Allzweck-Framework, das sich ideal für die Erstellung von modernen Webseiten und Apps in zahlreichen Branchen eignet.&nbsp;</p>



<p>Dabei schafft der logisch strukturierte Code die Grundlage für individuelle Anwendungen in Form von Webseiten oder Apps mit benutzerfreundlichem Aufbau.&nbsp;</p>



<p>Bemerkenswert ist das umfangreiche Ökosystem an Bibliotheken und Generatoren, das Ruby on Rails zu einem einfach zu handhabenden Entwicklungswerkzeug für Anfänger und Profis macht.&nbsp;</p>



<p>Die folgende Liste gibt einen Überblick über die sinnvollsten Einsatzgebiete.</p>



<ul class="wp-block-list">
<li>Blogs</li>



<li>Soziale Netzwerke</li>



<li>E-Commerce-Plattformen</li>



<li>Anwendungen im Web 2.0</li>



<li>Unternehmen mit begrenztem Budget</li>



<li>Für Projekte in der Validierungsphase</li>



<li>Eignet sich für die Prototypendarstellung</li>



<li>Dynamische Webseiten in Form von Onlineshops</li>



<li>Ideal beim Umgang mit komplexen Geschäftslogiken</li>



<li>Projekte mit hohem Termindruck und kurzen Durchlaufzeiten</li>



<li>Performanceorientierte Schnittstelle zwischen App und Backend</li>



<li>Zeitsparende Realisierung von benutzerfreundlichen Datenbanklösungen</li>
</ul>



<p>Interessante Beiträge:</p>



<p><a href="https://www.computerweekly.com/de/tipp/Die-Vor-und-Nachteile-der-Programmierung-in-Ruby">Vorteile von Ruby on Rails auf ComputerWeekly</a></p>



<p><a href="https://de.ryte.com/wiki/Ruby_on_Rails">Mehr Informationen zu RoR auf Ryke</a></p>



<p>Bilder: Canva</p>



<hr class="wp-block-separator has-css-opacity"/>


<div class="wp-block-image">
<figure class="alignleft"><img loading="lazy" decoding="async" width="150" height="150" src="https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed-150x150.jpg" alt="" class="wp-image-229" srcset="https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed-150x150.jpg 150w, https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed.jpg 227w" sizes="auto, (max-width: 150px) 100vw, 150px" /></figure></div>


<p>Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.</p>The post <a href="https://www.yuhiro.de/vorteile-und-nachteile-von-ruby-on-rails/">Vorteile und Nachteile von Ruby on Rails</a> first appeared on <a href="https://www.yuhiro.de">Yuhiro</a>.]]></content:encoded>
					
					<wfw:commentRss>https://www.yuhiro.de/vorteile-und-nachteile-von-ruby-on-rails/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Java vs C++: was sind die Unterschiede?</title>
		<link>https://www.yuhiro.de/java-vs-cpp/</link>
					<comments>https://www.yuhiro.de/java-vs-cpp/#comments</comments>
		
		<dc:creator><![CDATA[Autor]]></dc:creator>
		<pubDate>Thu, 07 Oct 2021 02:01:34 +0000</pubDate>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<guid isPermaLink="false">https://www.yuhiro.de/?p=11315</guid>

					<description><![CDATA[<p>Java vs C++: was sind die Unterschiede? Wer gerne eine Programmiersprache lernen möchte, der sollte sich zuerst einmal entscheiden, welche Sprache er erlernen möchte. Hier gibt es eine stetig wachsende Auswahl.&#160; Auch die etlichen Kategorien der unterschiedlichen Programmiersprachen machen einem die Auswahl nicht immer leicht. Objektorientiert, Assembler-</p>
The post <a href="https://www.yuhiro.de/java-vs-cpp/">Java vs C++: was sind die Unterschiede?</a> first appeared on <a href="https://www.yuhiro.de">Yuhiro</a>.]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">Java vs C++: was sind die Unterschiede?</h2>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://www.yuhiro.de/wp-content/uploads/2021/10/Programmiersprache.jpg" rel="wp-prettyPhoto[11315]"><img loading="lazy" decoding="async" width="575" height="250" src="https://www.yuhiro.de/wp-content/uploads/2021/10/Programmiersprache.jpg" alt="" class="wp-image-11316" srcset="https://www.yuhiro.de/wp-content/uploads/2021/10/Programmiersprache.jpg 575w, https://www.yuhiro.de/wp-content/uploads/2021/10/Programmiersprache-300x130.jpg 300w" sizes="auto, (max-width: 575px) 100vw, 575px" /></a></figure></div>


<p>Wer gerne eine Programmiersprache lernen möchte, der sollte sich zuerst einmal entscheiden, welche Sprache er erlernen möchte. Hier gibt es eine stetig wachsende Auswahl.&nbsp;</p>



<p>Auch die etlichen Kategorien der unterschiedlichen Programmiersprachen machen einem die Auswahl nicht immer leicht. Objektorientiert, Assembler- oder Skriptsprache und viele mehr gehören dazu.&nbsp;</p>



<p>Zwei der beliebtesten und bekanntesten Programmiersprachen sind jedoch Java (im Beitrag kurz JV) und C++ (auch CPP). Deshalb stellt sich die Frage, wo genau die Unterschiede bei beiden Sprachen liegen, für welche Anwendungszwecke sie sich eignen und welche Vor- und Nachteile diese jeweils besitzen.</p>



<h3 class="wp-block-heading"><strong>Java &#8211; anfängerfreundlich und Objektorientiert</strong></h3>



<p>Viele Nutzer, die einen Einstieg in die Welt des Programmierens suchen, starten ihre ersten Gehversuche mit Java. Denn die Sprache ist eine sogenannte objektorientierte Programmiersprache und funktioniert zudem vollständig plattformunabhängig. Es wird lediglich die Java-Laufzeitumgebung von der Firma Sun Microsystems benötigt.</p>



<p>Mit Java geschriebene Anwendungen laufen sowohl auf Windows wie auch auf Apple-Betriebssystemen und den verschiedenen Linux-Systemen. Selbst unterschiedliche Prozessorunterbauten werden unterstützt wie beispielsweise ARM oder x86.</p>



<p>Diese vollständige Modularität, welche die Sprache mit sich bringt, wird durch eine VM (Virtual Machine) realisiert. Diese virtuelle Maschine funktioniert dabei, fast wie ein echtes Betriebssystem. Die VM ist in der entsprechenden Laufzeitumgebung integriert und simuliert dabei immer das entsprechende Betriebssystem.</p>



<h3 class="wp-block-heading"><strong>Vor- und Nachteile von JV</strong></h3>



<p>Wie auch C++ ist auch die Java-Sprache eine objektorientierte Programmiersprache. Das heißt im Klartext, dass alles in zwei Bestandteile aufgeteilt wird. Zum einen der Code mit den integrierten Funktionen und zum anderen die sogenannten Datenelemente, also die Objekte.&nbsp;</p>



<p>Die Trennung in Klassen und Objekte erleichtert vor allem Anfängern das Verständnis der Sprache. Auch eine große mitgelieferte Bibliothek an unterschiedlichen Objekten für Grafik- und Tonanwendungen erleichtern den Einstieg ins Programmieren deutlich.&nbsp;</p>



<p>Im Vergleich zu anderen Sprachen erfolgt hier auch die Speicherverteilung automatisch. Bei Sprachen wie C oder C# hingegen, muss die Speicherverteilung durch den Nutzer erfolgen.&nbsp;</p>



<p>Der letzte große Vorteil ist natürlich die Plattformunabhängigkeit. Auch diese Eigenschaft weisen nicht sehr viele Programmiersprachen auf.</p>



<p>Leider besitzt die Sprache auch einige Nachteile. Durch die VM und die Eigenschaften der Sprache kann es gelegentlich zu Verzögerungen im Hinblick auf die Programmausführung kommen. Wenn es also um präzise und zeitlich genaue Ausführen von Befehlen geht, dann ist diese Sprache weniger geeignet.&nbsp;</p>



<p>Somit ist der größte Vorteil der Sprache gleichzeitig auch der größte Nachteil. Denn im Vergleich zu anderen Sprachen reagiert Java deutlich langsamer in der Ausführung, was von vielen Nutzern als Kritikpunkt gesehen wird.</p>



<h3 class="wp-block-heading"><strong>Wofür eignet sich die Sprache?</strong></h3>



<p>Die Sprache eignet sich perfekt für alle plattformunabhängigen Anwendungen, welche keine besondere Hardwarenähe aufweisen.&nbsp;</p>



<p>Besonders im Unternehmensumfeld ist die Sprache perfekt, um Anwendungen zu bauen, welche kein bestimmtes Betriebssystem benötigen und somit komplett flexibel sind.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://www.yuhiro.de/wp-content/uploads/2021/10/Software.jpg" rel="wp-prettyPhoto[11315]"><img loading="lazy" decoding="async" width="575" height="250" src="https://www.yuhiro.de/wp-content/uploads/2021/10/Software.jpg" alt="" class="wp-image-11317" srcset="https://www.yuhiro.de/wp-content/uploads/2021/10/Software.jpg 575w, https://www.yuhiro.de/wp-content/uploads/2021/10/Software-300x130.jpg 300w" sizes="auto, (max-width: 575px) 100vw, 575px" /></a></figure></div>


<h3 class="wp-block-heading"><strong>C++ &#8211; die objektorientierte Programmiersprache für fortgeschrittene</strong></h3>



<p>Auch C++ zählt zu den objektorientierten Programmiersprachen und ist ähnlich wie Java recht anfängerfreundlich. Wer mit C++ den Einstieg in die Welt des Programmierens versucht, der kann auch die fortgeschrittenen Techniken erst mal vernachlässigen.&nbsp;</p>



<p>Denn prinzipiell ist die Sprache etwas komplexer und eigentlich eher weniger für Anfänger geeignet. Die Sprache bringt ebenfalls viele Bibliotheken und Ressourcen mit, welche von Anfang an dabei sind. C++ ist eine relativ maschinennahe Programmiersprache, was sie von anderen objektorientierten Sprachen unterscheidet.&nbsp;</p>



<p>Dafür besitzt C++ viele Eigenschaften von anderen Sprachen. Das bedeutet im Klartext, wer sich in der Sprache auskennt, wird recht schnell den Einstieg in andere Sprachen finden. Die Sprache ist jedoch nicht so plattformunabhängig wie Java. Hier gibt es keine VM, welche zum Einsatz kommt. Zudem erfolgt die Speicherverwaltung hier manuell und nicht automatisch.</p>



<h3 class="wp-block-heading"><strong>Die Vor- und Nachteile von CPP</strong></h3>



<p>Der große Vorteil bei dieser Sprache ist, dass sie besonders schnell und effizient ist. Zudem lässt sich die Sprache auf Windows-Systemen und auf verschiedenen Linuxsystemen anwenden und ausführen.&nbsp;</p>



<p>Es wird keine zusätzliche Software benötigt und der Programmierer hat die volle Kontrolle über das System. Dies bedeutet, er kann Ports ansprechen und auch APIs (Schnittstellen) problemlos nutzen. Der größte Vorteil dieser maschinennahen Sprache ist jedoch, dass sie sehr schnell und effizient arbeitet. Da hier keine VM zum Einsatz kommt, können die Befehle deutlich schneller ausgeführt werden.</p>



<p>Leider gibt es auch hier wieder einige Nachteile. Zum einen ist die Syntax der Sprache recht kompliziert und recht veraltet. Zudem muss hier die Speicherbelegung manuell erfolgen. Das kann besonders für Anfänger zu Beginn recht komplex sein, weswegen viele Nutzer recht schnell die Lust am Programmieren in dieser Technologie verlieren können.&nbsp;</p>



<p>Auch die Plattformunabhängigkeit ist nicht ganz so groß wie bei anderen Sprachen. Da hier keine VM zum Einsatz kommt, können die Anwendungen nur auf Systemen ausgeführt werden, auf denen sie auch geschrieben wurden. Die Sprache funktioniert bisher auch nur auf Windows und Linux.</p>



<h3 class="wp-block-heading"><strong>Wofür eignet sich die Programmiersprache?</strong></h3>



<p>Fast alle C-Sprachen werden aufgrund ihrer maschinennahen Eigenschaften für sogenannte Embedded-Systems verwendet. Dies bedeutet alles, was mit Elektronik zu tun hat, wie beispielsweise Kühlschränke, Waschmaschinen oder bei Geräten in der Medizintechnik.&nbsp;</p>



<p>Weiterhin findet die Sprache auch Anwendung in unterschiedlichen Desktopanwendungen oder in der Spieleprogrammierung. Oftmals werden viele Spielmechaniken beispielsweise in C++ geschrieben. Prinzipiell lässt sich sagen, alle Anwendungen, welche sehr stark auf die Hardware bezogen sind, lassen sich gut mit dieser Sprache realisieren.</p>



<h3 class="wp-block-heading"><strong>Die Unterschiede zwischen beiden Sprachen</strong></h3>



<p>Da nun beide Sprachen vorgestellt wurden, gilt es herauszufinden, wo die Unterschiede liegen. Prinzipiell sind beide Sprachen objektorientiert, doch da hören die Gemeinsamkeiten bereits wieder auf. Denn während Java aufgrund seiner VM auf nahezu jeder Plattform problemlos läuft, gibt es bei C++ einige Einschränkungen dahingehend.&nbsp;</p>



<p>Denn hier kann nur Linux und Windows genutzt werden. </p>



<p>Weiterhin sind Anwendungen, welche auf einer der beiden Plattform geschrieben sind, auch nur auf diesen wieder ausführbar. Was Plattformunabhängigkeit betrifft, hat Java aufgrund seiner VM also deutlich die Nase vorne.&nbsp;</p>



<p>Jedoch ist der Einsatz dieser VM auch gleichzeitig ein großer Nachteil, welcher das Ausführen von Befehlen deutlich ausbremst. Hier geht der Punkt klar an C++, da die maschinennahe Sprache deutlich effizienter und schneller arbeitet.</p>



<p>Im Hinblick auf die Komplexität ergeben sich ebenfalls weitere Differenzen zwischen beiden Sprachen. Während Java deutlich anfängerfreundlicher und leichter ist und die Speicherverteilung hier vollständig automatisiert erfolgt, ist das bei C-Sprachen ganz anders aus.&nbsp;</p>



<p>Hier müssen die Speicher vom Programmierer festgelegt werden und auch die Syntax ist relativ unübersichtlich und veraltet. Prinzipiell sind alle C-Sprachen deutlich komplexer und für den Einstieg in die Welt des Programmierens eher ungeeignet. Java hingegen stellt hier eine deutlich anfängerfreundliche und überschaubare Umgebung für Einsteiger des Programmierens dar.</p>



<p>Der letzte Unterschied bei beiden Sprachen liegt schlussendlich in der Anwendung. Während C-Sprachen relativ maschinennah sind und eher in Embedded-Systems oder in der Spieleentwicklung Einsatz finden, ist Java für solche Anwendungen eher ungeeignet.</p>



<p>Was sind Ihre Erfahrungen?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>



<p>Interessante Links:</p>



<p><a href="https://www.it-talents.de/it-wissen/c-vs-java/" title="">Ein Vergleich von Java und C++<br></a><a href="https://www.computerweekly.com/de/feature/Java-versus-C-Welche-Programmiersprache-ist-schneller" title="">Welche der beiden Programmiersprachen ist schneller?</a></p>



<p>Bilder: Freepik</p>



<hr class="wp-block-separator has-css-opacity"/>


<div class="wp-block-image">
<figure class="alignleft"><img loading="lazy" decoding="async" width="150" height="150" src="https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed-150x150.jpg" alt="" class="wp-image-229" srcset="https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed-150x150.jpg 150w, https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed.jpg 227w" sizes="auto, (max-width: 150px) 100vw, 150px" /></figure></div>


<p>Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.</p>The post <a href="https://www.yuhiro.de/java-vs-cpp/">Java vs C++: was sind die Unterschiede?</a> first appeared on <a href="https://www.yuhiro.de">Yuhiro</a>.]]></content:encoded>
					
					<wfw:commentRss>https://www.yuhiro.de/java-vs-cpp/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>10 Tipps für die Verbesserung der Code Qualität</title>
		<link>https://www.yuhiro.de/10-tipps-fuer-die-verbesserung-der-code-qualitaet/</link>
					<comments>https://www.yuhiro.de/10-tipps-fuer-die-verbesserung-der-code-qualitaet/#respond</comments>
		
		<dc:creator><![CDATA[Autor]]></dc:creator>
		<pubDate>Tue, 30 Mar 2021 05:23:19 +0000</pubDate>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<guid isPermaLink="false">https://www.yuhiro.de/?p=11113</guid>

					<description><![CDATA[<p>10 Tipps für die Verbesserung der Code Qualität Meldungen über Softwareprobleme und Sicherheitslücken in Programmcode sind heutzutage an der Tagesordnung. Da stellt sich natürlich die Frage, warum es trotz hochqualifizierter Softwareentwickler in großen Unternehmen immer wieder zu Problemen mit dem Programmcode kommt.&#160; Die Antwort lautet: Programmierung ist</p>
The post <a href="https://www.yuhiro.de/10-tipps-fuer-die-verbesserung-der-code-qualitaet/">10 Tipps für die Verbesserung der Code Qualität</a> first appeared on <a href="https://www.yuhiro.de">Yuhiro</a>.]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">10 Tipps für die Verbesserung der Code Qualität</h2>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://www.yuhiro.de/wp-content/uploads/2021/03/Softwareentwicklung-1.jpg" rel="wp-prettyPhoto[11113]"><img loading="lazy" decoding="async" width="575" height="250" src="https://www.yuhiro.de/wp-content/uploads/2021/03/Softwareentwicklung-1.jpg" alt="" class="wp-image-11114" srcset="https://www.yuhiro.de/wp-content/uploads/2021/03/Softwareentwicklung-1.jpg 575w, https://www.yuhiro.de/wp-content/uploads/2021/03/Softwareentwicklung-1-300x130.jpg 300w" sizes="auto, (max-width: 575px) 100vw, 575px" /></a></figure></div>


<p>Meldungen über Softwareprobleme und Sicherheitslücken in Programmcode sind heutzutage an der Tagesordnung. Da stellt sich natürlich die Frage, warum es trotz hochqualifizierter Softwareentwickler in großen Unternehmen immer wieder zu Problemen mit dem Programmcode kommt.&nbsp;</p>



<p>Die Antwort lautet: Programmierung ist derart komplex, dass es bei hochspezialisierter Software irgendwann selbst für den besten Programmierer unmöglich wird, alle Konsequenzen aller Programmzeilen abschätzen zu können. Trotzdem ist es im Interesse eines jeden Unternehmens, Softwarefehler so weit wie möglich zu vermeiden.&nbsp;</p>



<p>Daher gehört die stetige Verbesserung der Code Qualität zu den wichtigsten Eckpfeilern in der Softwareentwicklung. Hier sind einmal die 10 wichtigsten Tipps aufgelistet, die zur Verbesserung der Softwarequalität eingesetzt werden:</p>



<h3 class="wp-block-heading"><strong>1) Versionskontrolle</strong></h3>



<p>Wenn mehrere Programmierer an einem Stück Software arbeiten, kommen unterschiedliche Versionen von Code zusammen. Bei der Vielzahl der Dateien den Überblick zu behalten, sie zusammenzuführen, Fehler zu erkennen und gleichzeitig im Team auszutauschen, kann recht schwierig sein.&nbsp;</p>



<p>Versionskontrollsysteme sind Software-Tools, die Teams dabei unterstützen, Änderungen am Quellcode vorzunehmen. Die Versionskontrollsoftware verfolgt jede Korrektur des Codes und sammelt sie in einer benannten Datenbank. So können einfach Softwarefehler beseitigt werden, indem fehlerhafte Versionen zurückgenommen werden. Die gebräuchlichsten Tools auf dem Markt sind Git und Subversion.</p>



<h3 class="wp-block-heading"><strong>2) Automatisierte Tests</strong></h3>



<p>Um immer wiederkehrende manuelle Tests zu vermeiden, werden automatisierte Tests eingesetzt. Diese haben unter anderem den Vorteil, dass sie testen, ob durch neu entwickelten Code Fehler in bereits existenten, vorher fehlerfreien Modulen auftreten. Die meisten Entwicklungsteams werden zustimmen, dass sie automatische Tests zwar nicht besonders mögen, diese Tests aber nützlich sind:&nbsp;</p>



<p>Sie helfen den Entwicklern, den Code ehrlich zu verstehen und bieten eine solide Grundlage für die kontinuierliche Testpyramide. Dies wiederum ermöglicht es den Teams, die agile Entwicklung zu beschleunigen und gleichzeitig das Risiko zu verringern, dass sich in späteren Phasen Bugs einschleichen.&nbsp;</p>



<p>Mit Hilfe von sogenannten Unit-Tests können Code-Komponenten oder Methoden daraufhin überprüft werden, ob sie wie vorgesehen laufen. Ein Unit-Test deckt eine möglichst kleine Einheit ab, etwa eine Methode oder ein Modul. Es können aber auch größere Einheiten durch Unit-Tests geprüft werden.</p>



<h3 class="wp-block-heading"><strong>3) Individuelle Tests</strong></h3>



<p>Eine Kombination aus automatischen und menschlichen Tests wird in der Praxis am häufigsten praktiziert. Ein menschlicher Tester kann bei der Durchführung von manuellen Tests immer seine Erfahrung einbringen und schauen, ob es Fehler abseits der genauen Testschritte gibt. Am Ende muss manuell bewertet werden, ob es sich bei einer Anomalie um einen Fehler handelt oder nicht.&nbsp;</p>



<p>Zum Beispiel könnte die vom Testautomatisierungswerkzeug angezeigte Anomalie auf eine neue Softwareversion mit fehlerfreiem und geändertem Softwaredesign zurückzuführen sein und &#8222;nur&#8220; das Testskript wurde vergessen zu aktualisieren. Andererseits können auch Testskripte Fehler haben.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://www.yuhiro.de/wp-content/uploads/2021/03/Testing.jpg" rel="wp-prettyPhoto[11113]"><img loading="lazy" decoding="async" width="575" height="250" src="https://www.yuhiro.de/wp-content/uploads/2021/03/Testing.jpg" alt="" class="wp-image-11115" srcset="https://www.yuhiro.de/wp-content/uploads/2021/03/Testing.jpg 575w, https://www.yuhiro.de/wp-content/uploads/2021/03/Testing-300x130.jpg 300w" sizes="auto, (max-width: 575px) 100vw, 575px" /></a></figure></div>


<h3 class="wp-block-heading"><strong>4) Profiling</strong></h3>



<p>Profiler sind Programmierwerkzeuge, die das Laufzeitverhalten von Software analysieren. In der Software-Entwicklung ist das Profiling eine Form der lebendigen Programmanalyse, die z.B. die Verwendung von Safe-Anweisungen oder die Häufigkeit und Länge von Funktionsaufrufen misst. Profiling wird insbesondere bei der Geschwindigkeitsmessung und Speichernutzung eingesetzt. Profiler sind dabei in praktisch jeder höheren Programmiersprache im Paket mit enthalten.</p>



<h3 class="wp-block-heading"><strong>5) Programmcode kommentieren</strong></h3>



<p>Das Kommentieren von Quellcode ist leider etwas, das stiefmütterlich behandelt wird. In der Regel arbeiten immer mehrere Programmierer nacheinander oder nebeneinander am Programmcode. Daher ist es sehr hilfreich, wenn ein Programmierer seinen Kollegen einen lesbaren und verständlichen Programmcode hinterlässt.&nbsp;</p>



<p>Gerade wenn die Softwarekomponenten immer größer werden, macht es Sinn, einige Teile des Programms in Stichworten im Programmcode zu kommentieren. Niemand liest oder arbeitet gerne mit schlechtem Code, denn es ist anstrengend und kostet Zeit, die eigentlich für etwas anderes verwendet werden könnte.</p>



<h3 class="wp-block-heading"><strong>6) Coding Standards / Clean Code</strong></h3>



<p>In größeren Projekten, in denen viele Mitwirkende bei der Softwareentwicklung zusammenarbeiten, werden die Anforderungen an den Programmierstil oft in Programmierrichtlinien festgelegt: Diese bauen oft auf unternehmensübergreifenden oder weltweit veröffentlichten Konventionen auf.&nbsp;</p>



<p>Standards für die Wartung der Software, die festlegen, wie andere Entwickler den Code lesen, verstehen, ändern und aktualisieren können, sind vielleicht die wichtigsten und am weitesten verbreiteten in der Softwareentwicklung, da Software oft länger als geplant wiederverwendet wird.</p>



<p>Einer dieser Standards ist &#8222;Clean Code&#8220;. &#8222;Clean Code&#8220; ist eine Sammlung von Programmierprinzipien, die in der Realität konkretisiert werden müssen. Softwareentwickler sprechen von &#8222;korrektem&#8220; Quellcode, aber auch von Dokumenten, Konzepten, Regeln, die intuitiv verständlich sind. Das Clean Code-Paradigma umfasst den gesamten Software-Lebenszyklus &#8211; vom Design bis zur Entwicklung.</p>



<h3 class="wp-block-heading"><strong>7) Code Review</strong></h3>



<p>Ein Code-Review ist eine systematische Untersuchung von Quellcode mit dem Ziel, Fehler und Mängel im Code zu finden und die Code Qualität zu korrigieren. Das Review gehört zu den analytischen Qualitätssicherungsmaßnahmen.&nbsp;</p>



<p>Es ist ein Analyse- und Bewertungsprozess, bei dem die Projektergebnisse einer Gruppe von Reviewern präsentiert und von diesen kommentiert oder freigegeben werden. Zu den Ergebnissen von Code-Reviews gehört neben den gefundenen Fehlern auch eine verbesserte Code Qualität. Fehler, die während des Reviews ans Licht kommen, können oft viel kostengünstiger korrigiert werden, als wenn sie vorher bei der Testausführung gefunden werden. Während Code-Reviews, die über die Schulter hinweg stattfinden, eine großartige Möglichkeit sind, Neues abzuhaken, verlassen sich geografisch verstreute Gruppen von Mitarbeitern traditionell auf E-Mails für Code-Reviews.&nbsp;</p>



<p>Bei diesem Code-Review-Prozess sendet ein Entwickler Änderungen per E-Mail an das gesamte Entwicklerteam, typischerweise über Versionskontrollsysteme, die Benachrichtigungen automatisieren. Beim Pair Programming wird der Review-Prozess selbst direkt in das Schreiben des Codes integriert.</p>



<h3 class="wp-block-heading"><strong>8) Test-driven Development und Pair Programming</strong></h3>



<p>Es gibt zahlreiche Möglichkeiten, die Art und Weise der Entwicklung zu steuern, um von Beginn an eine saubere Herangehensweise zu forcieren. Testgetriebene Entwicklung ist dabei eine Methode der agilen Softwareentwicklung, bei der die Entwickler Unit-Tests konsequent vor den zu testenden Codeabschnitten oder Komponenten erstellen.&nbsp;</p>



<p>Damit erschafft man ein Grundgerüst, an dem sich die Programmierer strategisch ausrichten sollen. Beim Pair Programming hingegen arbeiten zwei Programmierer gleichzeitig am Code, wobei einer programmiert und der andere den programmierten Code kontrolliert.</p>



<h3 class="wp-block-heading"><strong>9) Refactoring</strong></h3>



<p>Code-Refactoring ist der Prozess der Umstrukturierung von bestehendem Computercode. Refactoring zielt darauf ab, das Design, die Struktur und/oder die Implementierung der Software zu verbessern, während ihre Funktionalität erhalten bleibt.&nbsp;</p>



<p>Die Vorteile sind eine verbesserte Lesbarkeit des Codes und eine reduzierte Komplexität. Die Programmierung einer Software ist ein langwieriger Prozess, an dem mehrere Entwickler beteiligt sind. Dabei wird der geschriebene Quellcode oft verschoben und erweitert.</p>



<h3 class="wp-block-heading"><strong>10) Hilfssoftware</strong></h3>



<p>Zunehmend wird Software eingesetzt, die die Aufgabe hat, die aktuelle Code Qualität von Software zu ermitteln. Dadurch lassen sich Schwachstellen herausfiltern. Eine automatische Verbesserung erfolgt aber in der Regel dadurch nicht. Meistens sind diese Tools teuer, erreichen aber oftmals nicht die Qualitäten eines menschlichen Analysten.</p>



<p>Interessante Links:</p>



<p><a href="https://onoffice.com/blog/tech-topics/wie-bewertet-man-code-qualitaet/" title="">Wie bewertet man Codequalität? Mehr im Blogbeitrag</a></p>



<p><a href="https://www.heise.de/blog/5-Massnahmen-fuer-mehr-Codequalitaet-5039770.html" title="">Massnahmen um die Codequalität zu verbessern</a></p>



<p>Bilder: Canva</p>



<hr class="wp-block-separator has-css-opacity"/>


<div class="wp-block-image">
<figure class="alignleft"><img loading="lazy" decoding="async" width="150" height="150" src="https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed-150x150.jpg" alt="" class="wp-image-229" srcset="https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed-150x150.jpg 150w, https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed.jpg 227w" sizes="auto, (max-width: 150px) 100vw, 150px" /></figure></div>


<p>Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.</p>The post <a href="https://www.yuhiro.de/10-tipps-fuer-die-verbesserung-der-code-qualitaet/">10 Tipps für die Verbesserung der Code Qualität</a> first appeared on <a href="https://www.yuhiro.de">Yuhiro</a>.]]></content:encoded>
					
					<wfw:commentRss>https://www.yuhiro.de/10-tipps-fuer-die-verbesserung-der-code-qualitaet/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>GIT vs. SVN: welches Versionskontrollsystem sollte man nutzen?</title>
		<link>https://www.yuhiro.de/git-vs-svn-welches-versionskontrollsystem-sollte-man-nutzen/</link>
					<comments>https://www.yuhiro.de/git-vs-svn-welches-versionskontrollsystem-sollte-man-nutzen/#respond</comments>
		
		<dc:creator><![CDATA[Autor]]></dc:creator>
		<pubDate>Tue, 02 Mar 2021 06:16:12 +0000</pubDate>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<guid isPermaLink="false">https://www.yuhiro.de/?p=11068</guid>

					<description><![CDATA[<p>GIT vs. SVN: welches Versionskontrollsystem sollte man nutzen? Digitale Dokumente werden während ihres Lebenszyklus mehrfach verändert. In solchen Fällen ist für Bearbeiter oft wichtig, nicht nur die neueste Version zu haben, sondern auch auf bestimmte vorherige Versionen zurückgreifen zu können.&#160; Im einfachsten Fall ist es möglich mehrere</p>
The post <a href="https://www.yuhiro.de/git-vs-svn-welches-versionskontrollsystem-sollte-man-nutzen/">GIT vs. SVN: welches Versionskontrollsystem sollte man nutzen?</a> first appeared on <a href="https://www.yuhiro.de">Yuhiro</a>.]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">GIT vs. SVN: welches Versionskontrollsystem sollte man nutzen?</h2>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://www.yuhiro.de/wp-content/uploads/2021/03/Versionskontrolle.jpg" rel="wp-prettyPhoto[11068]"><img loading="lazy" decoding="async" width="575" height="250" src="https://www.yuhiro.de/wp-content/uploads/2021/03/Versionskontrolle.jpg" alt="" class="wp-image-11069" srcset="https://www.yuhiro.de/wp-content/uploads/2021/03/Versionskontrolle.jpg 575w, https://www.yuhiro.de/wp-content/uploads/2021/03/Versionskontrolle-300x130.jpg 300w" sizes="auto, (max-width: 575px) 100vw, 575px" /></a></figure></div>


<p>Digitale Dokumente werden während ihres Lebenszyklus mehrfach verändert. In solchen Fällen ist für Bearbeiter oft wichtig, nicht nur die neueste Version zu haben, sondern auch auf bestimmte vorherige Versionen zurückgreifen zu können.&nbsp;</p>



<p>Im einfachsten Fall ist es möglich mehrere Versionen eines Dokuments zu speichern und mit einer eindeutigen Versionsnummer zu versehen. Bis zu einer gewissen Anzahl an Dokumenten, mag zwar diese Methode funktionieren &#8211; doch sind wir mal ehrlich, sie ist absolut unwirksam!&nbsp;</p>



<p>Denn fast nahezu identische Kopien eines Dokuments müssen mehrfach gespeichert und gepflegt werden – es erfordert viel Aufmerksamkeit, Disziplin und kann im schlimmsten Fall zu einem Versionschaos und Datenverlust führen.&nbsp;</p>



<p>Daher wurden Software Tools entwickelt, um die Versionsarbeit zu automatisieren. Die zwei bekanntesten Tools im Bereich der Versionskontrollsysteme sind Git und Subversion. In diesem Artikel erfahren Sie nützliche Informationen über diese beiden Versionskontrollsysteme und lernen deren wichtigste Unterschiede sowie Vor- und Nachteile kennen.</p>



<h3 class="wp-block-heading"><strong>Was ist ein Versionskontrollsystem und warum wird es benötigt?</strong></h3>



<p><strong>Versionskontrollsystem (VCS)</strong> ist eine Software zur Erleichterung der Arbeit bei sich oft veränderlichen Daten und Informationen. Mit einem Versionskontrollsystem ist es möglich mehrere Versionsstände desselben Dokuments zu speichern und bei Bedarf auf frühere Versionen zurückzugreifen.&nbsp;</p>



<p>Ein Versionsverwaltungssystem erlaubt außerdem eine Datenzugriffsteuerung, Verwaltung und Einrichtung unterschiedlicher Benutzerberechtigungen (z. B. lesender oder schreibender Zugriff) bis hin zum Tracking aller Änderungen.</p>



<p>Solche Systeme werden sehr häufig in der Softwareentwicklung zum Speichern und Verwalten des Quellcodes eines Programms benutzt. Jedoch können diese Systeme auch in anderen Bereichen erfolgreich eingesetzt werden, vor allem in denen mit einer Vielzahl sich ständig ändernder Dokumente gearbeitet wird.</p>



<h3 class="wp-block-heading"><strong>Was ist Git?</strong></h3>



<p><strong>Git</strong> entstand aus der Abspaltung des proprietären Tools mit dem Namen BitKeeper, das ursprünglich von Linus Torvalds, dem Linux-Schöpfer, für die Versionsverwaltung des Linux-Kernel-Codes entwickelt wurde. Seither hat sich dieses VCS zu einem der beliebtesten Tools etabliert und bescherte der Entwickler-Community eine neue Ebene der kollaborativen Programmierung.&nbsp;</p>



<p>Mittlerweile wird es in zahlreichen Projekten verwendet und gehört bei Millionen von Entwicklern zum Standardtool im Bereich der Versionskontrolle. Git ist kostenlos und wird unter der Open Source-Lizenz GNU der Version 2 vertrieben.</p>



<p>Es handelt sich um ein verteiltes Versionskontrollsystem, mit dem Änderungen am Quellcode durchgeführt und nachverfolgt werden können, indem ein spezieller Datenbanktyp unterstützt wird – das sogenannte lokale Repository.&nbsp;</p>



<p>Es ist im Grunde der exakte Klon des zentralen Repositorys, in dem Benutzer auf ihren lokalen Computer-Systemen sowohl aktuelle als auch frühere Versionen von Dateien speichern. Der Hauptvorteil davon besteht darin, dass Benutzer für seinen Betrieb nicht auf den Netzwerkzugriff angewiesen ist, wodurch die Integrität des Inhalts sichergestellt wird.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://www.yuhiro.de/wp-content/uploads/2021/03/Subversion.jpg" rel="wp-prettyPhoto[11068]"><img loading="lazy" decoding="async" width="575" height="250" src="https://www.yuhiro.de/wp-content/uploads/2021/03/Subversion.jpg" alt="" class="wp-image-11070" srcset="https://www.yuhiro.de/wp-content/uploads/2021/03/Subversion.jpg 575w, https://www.yuhiro.de/wp-content/uploads/2021/03/Subversion-300x130.jpg 300w" sizes="auto, (max-width: 575px) 100vw, 575px" /></a></figure></div>


<h3 class="wp-block-heading"><strong>Was ist Subversion?</strong></h3>



<p><strong>Subversion (SVN)</strong> ist ein kostenloses Open-Source-Versionskontrollsystem, mit dem Dateien und deren Änderungen auf einem zentralen Server verwaltet und gespeichert werden. Es wird unter der Apache-Lizenz als Open Source zur Verfügung gestellt. SVN wurde im Jahr 2000 von CollabNet entwickelt und besteht bereits seit über zwei Jahrzehnten.&nbsp;</p>



<p>Es wird weiterhin häufig als ein erfolgreiches VCS-Tool sowohl in der Open Source-Community als auch in korporativen Ökosystemen eingesetzt. Im Gegensatz zu Git speichert Subversion die Dateiversionshistorien auf einem zentralen Server. Es werden Verzweigungen in einem zentralen Repository erstellt. Wenn Benutzer Änderungen am Code vornehmen, führen sie dies auf den lokalen Computersystemen durch. Sobald sie fertig sind, wird der geänderte Code wieder in das zentrale Repository eingecheckt. Im Fachjargon nennt man diesen Vorgang Commiten.</p>



<h3 class="wp-block-heading"><strong>Git vs. Subversion: Die Unterschiede auf einen Blick</strong></h3>



<p>Subversion wird verwendet, um den Entwicklungsprozess zu automatisieren und Routinearbeiten zu vermeiden. Dieses Programm ist vor allem im Software-Entwicklungsbereich sehr nützlich:</p>



<ul class="wp-block-list">
<li>Es ist nicht notwendig sich an alle Änderungen und Fehler im Code zu erinnern, all diese Funktionen werden von Subversion unterstützt. Jede Änderung wird protokolliert und kann dank einer Suchfunktion später ganz leicht wieder gefunden werden.</li>



<li>Es ist nicht erforderlich Revisionen auf der Festplatte zu speichern. Diese befinden sich bereits im zentralen System-Repository.</li>



<li>Es gibt einen automatischen Prozess zum Erstellen von Ordnern mit geringfügigen Unterschieden.</li>



<li>Projekte müssen nicht manuell übertragen werden, sondern können an einem neuen Speicherort aus dem Repository abgerufen werden (Check-Out).</li>
</ul>



<p>Darüber hinaus lässt das System keine Fehler zu, die ein Entwickler durch manuelles Ausführen all dieser Aktionen machen könnte.</p>



<p>Unter den Funktionen dieser VCS-Software sollten die nachfolgenden besonders nützlichen Funktionen hervorgehoben werden:</p>



<ul class="wp-block-list">
<li>Speichern des Änderungsverlaufs in einem zentralen Repository</li>



<li>Kopieren von Objekten mit Verzweigungsverlauf</li>



<li>Gewährleistung der Übertragung von Änderungen zwischen Kopien von Objekten, auch einer vollständigen Zusammenführung von Kopien</li>



<li>Verzweigungsunterstützung &#8211; Erstellen und Zusammenführen von Zweigen (Merging)</li>



<li>Bereitstellung von Marken, sogenannter &#8222;billiger Kopien&#8220;</li>



<li>Änderungsverlauf und Kopien von Objekten werden in Form von verknüpften einfachen Kopien gespeichert</li>



<li>effizientes Arbeiten mit Text- und Binärdateien</li>



<li>viele Optionen für den Zugriff auf das Repository Speicher</li>



<li>die Möglichkeit zur Spiegelung des Projektarchivs (Repository)</li>



<li>Verfügbarkeit von Libraries für diverse Programmiersprachen und die Möglichkeit, diese zu in den Programmcode zu integrieren</li>
</ul>



<p>Im Gegensatz zum verteilten VCS-System wie Git speichert Subversion Informationen in einem einzigen zentralen Repository, das sich entweder auf einer lokalen Festplatte oder auf einem Netzwerkserver befinden kann. Das einfach zu bedienende und gleichzeitig leistungsstarke System ist bei allen Entwicklern sehr beliebt.</p>



<p>Werfen wir nun einen Blick auf ein das Git-Versionskontrollsystem. Dieses System ist im Gegensatz zu Subversion ein verteiltes Versionskontrollsystem. Das Programm ist frei lizenziert und wird von Projekten wie Linux-Kernel, Android, PHP, GNU Core Utilities, Chrom, jQuery, NASM, MediaWiki, DokuWiki und einigen weiteren Linux-Distributionen verwendet.</p>



<p>Wofür wird Git verwendet? Um den Stand der Arbeit insbesondere mit der Hauptentwicklungslinie (Remote-Repository) zu synchronisieren und unterschiedliche Versionen zu speichern und zu aktualisieren.&nbsp;</p>



<p>Dieses System ist besonders praktisch, wenn mehrere Entwickler gleichzeitig an einem Projekt arbeiten. Mit diesem System ist es möglich die Dateien des lokalen Repository unter Berücksichtigung der von anderen Entwicklern vorgenommenen Änderungen im Remote-Repository zu aktualisieren und zu bearbeiten.</p>



<p><strong>Die Vorteile der Git-Verwendung:</strong></p>



<ul class="wp-block-list">
<li>Das Git-System bietet alle Vorteile eines VCS, wie auch Subversion.</li>



<li>Das System Verfügt über einen einfachen, sofort einsatzbereiten Verschlüsselungsprozess.</li>



<li>Wenn es keine Verbindung zum Server mit dem Remote-Repository besteht, können Entwickler Commits an dem lokalen Server vornehmen und erst bei Verfügbarkeit hochladen.</li>



<li>Serviceinformationen werden im Stammverzeichnis des Repositorys gespeichert.</li>



<li>Support vom Import/Export nach/von Subversion und CVS.</li>



<li>Das System ist sehr beliebt und viele Entwickler arbeiten damit.</li>



<li>Es ist möglich den Code auf GitHub, BitBucket und Google Code zu hosten.</li>
</ul>



<p>Das Versionsmanagement Software weist eine hohe Performance auf und bietet fortschrittliche Integrationsmöglichkeiten mit anderen VCS. Es enthält außerdem ein durchdachtes Befehlssystem und eine benutzerfreundliche und sofort einsatzbereite Weboberfläche. Bei der Arbeit damit haben die Entwickler eine absolute Kontrolle über das Repository und die Arbeitsgeschwindigkeit.</p>



<p>Es gibt aber auch ein paar Nachteile, die Benutze häufig nennen:</p>



<ul class="wp-block-list">
<li>unbequemer Übergang von anderen VCS</li>



<li>Verwendung von SHA1-Hashes zur Identifizierung von Revisionen</li>



<li>das System findet keine leeren Verzeichnisse</li>



<li>das Generieren des Verlaufs einer bestimmten Datei, des Bearbeitungsverlaufs für einen bestimmten Benutzer, der Suche nach Änderungen an einem bestimmten Speicherort einer bestimmten Datei dauert zu lange</li>
</ul>



<h3 class="wp-block-heading"><strong>Fazit</strong></h3>



<p>Das Git-System ist zweifellos eines der beliebtesten und am weitverbreiteten Versionskontrollsysteme, das speziell für kleine bis große Projekte entwickelt wurde. Es handelt sich um ein verteiltes Open-Source-Versionskontrollsystem, mit dem Änderungen im Quellcode in einem lokalen Repository gespeichert und verwaltet werden können. Es ist nichts anderes als ein Klon des zentralen Repositorys.&nbsp;</p>



<p>SVN ist auch ein VCS, das auch für den gleichen Zweck verwendet wird, dass allerdings im Gegensatz zu Inhaltsspeicherung bei Git nur Dateien speichert. Auch verwendet SVN einen zentralen Server, um aktuelle und frühere Versionen von Dateien wie Quellcode, Dokumentation und anderer Inhalte zu verwalten.&nbsp;</p>



<p>Ein großer Vorteil des Git-Systems gegenüber SVN ist, dass Benutzer die absolute Versionskontrolle haben, ohne sich jemals um die Netzwerkverfügbarkeit sorgen zu müssen. Ein Zugriff auf SVN auf den Repository-Server bei fehlender Netzwerkverbindung ist dagegen äußerst unwahrscheinlich.</p>



<p>Subversion wurde als Ersatz für CVS geschaffen und hat sich bis heute sehr erfolgreich geschlagen. Das Git-Versionskontrollsystem hat allerdings im Laufe der Zeit aufgrund seiner Architektur und Benutzerfreundlichkeit des Systems deutlich aufgeholt und an Popularität gewonnen.&nbsp;</p>



<p>Welches System tatsächlich besser ist, lässt sich an dieser Stelle jedoch nicht final beantworten. Vielmehr hängt die Entscheidung über den Einsatz eines bestimmte Versionskontrollsystems auch ein Stück von den einzelnen Projektanforderungen und des Setups des Entwicklungsteams ab.</p>



<p>Interessante Links:</p>



<p><a href="https://entwickler.de/programmierung/git-vs-subversion-svn-welches-versionskontrollsystem-sollten-sie-nutzen/" title="">Beitrag auf entwickler.de zu Versionskontrollsystemen</a></p>



<p><a href="https://www.slideshare.net/slideshow/git-vs-svn-eine-vergleichende-einfhrung/4403194" title="">Eine Einführung zu GIT und SVN</a></p>



<p>Bilder: Canva</p>



<hr class="wp-block-separator has-css-opacity"/>


<div class="wp-block-image">
<figure class="alignleft"><img loading="lazy" decoding="async" width="150" height="150" src="https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed-150x150.jpg" alt="" class="wp-image-229" srcset="https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed-150x150.jpg 150w, https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed.jpg 227w" sizes="auto, (max-width: 150px) 100vw, 150px" /></figure></div>


<p>Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.</p>The post <a href="https://www.yuhiro.de/git-vs-svn-welches-versionskontrollsystem-sollte-man-nutzen/">GIT vs. SVN: welches Versionskontrollsystem sollte man nutzen?</a> first appeared on <a href="https://www.yuhiro.de">Yuhiro</a>.]]></content:encoded>
					
					<wfw:commentRss>https://www.yuhiro.de/git-vs-svn-welches-versionskontrollsystem-sollte-man-nutzen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Was ist sauberer Code? (Clean Code)</title>
		<link>https://www.yuhiro.de/was-ist-sauberer-code-clean-code/</link>
					<comments>https://www.yuhiro.de/was-ist-sauberer-code-clean-code/#respond</comments>
		
		<dc:creator><![CDATA[Sascha Thattil]]></dc:creator>
		<pubDate>Fri, 07 Aug 2020 08:36:45 +0000</pubDate>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<guid isPermaLink="false">https://www.yuhiro.de/?p=10819</guid>

					<description><![CDATA[<p>Was ist sauberer Code? (Clean Code) Heutzutage ist Software in fast allem. In der Waschmaschine, im Smartphone, im Lichtschalter, in der Klimaanlage. Die Liste ist fast unendlich. Das bedingt, dass Software mit sauberem Code oder wartbar geschrieben wird. Im Beitrag mehr dazu. Der Start Zum Start einer</p>
The post <a href="https://www.yuhiro.de/was-ist-sauberer-code-clean-code/">Was ist sauberer Code? (Clean Code)</a> first appeared on <a href="https://www.yuhiro.de">Yuhiro</a>.]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">Was ist sauberer Code? (Clean Code)</h2>



<div class="wp-block-image"><figure class="aligncenter size-full is-resized"><a href="https://www.yuhiro.de/wp-content/uploads/2020/08/Programmierung-4.jpg" rel="wp-prettyPhoto[10819]"><img loading="lazy" decoding="async" src="https://www.yuhiro.de/wp-content/uploads/2020/08/Programmierung-4.jpg" alt="" class="wp-image-10820" width="402" height="175" srcset="https://www.yuhiro.de/wp-content/uploads/2020/08/Programmierung-4.jpg 402w, https://www.yuhiro.de/wp-content/uploads/2020/08/Programmierung-4-300x131.jpg 300w" sizes="auto, (max-width: 402px) 100vw, 402px" /></a></figure></div>



<p>Heutzutage ist Software in fast allem. In der Waschmaschine, im Smartphone, im Lichtschalter, in der Klimaanlage. Die Liste ist fast unendlich.</p>



<p>Das bedingt, dass Software mit sauberem Code oder wartbar geschrieben wird. Im Beitrag mehr dazu.</p>



<h3 class="wp-block-heading"><strong>Der Start</strong></h3>



<p>Zum Start einer Softwareentwicklung ist alles noch ganz einfach.</p>



<p>Der Manager oder Kunde gibt dem Entwickler den Auftrag eine Anwendung zu schreiben.</p>



<p>Da es noch keinen Code gibt, kann man auch von einer “Grünen Wiese” sprechen, da man programmieren kann, wie man es will.&nbsp; Man muss andere Codeschnipsel oder ähnliches nicht berücksichtigen.</p>



<p>Es wird also wild drauf los programmiert.</p>



<p>Der Mensch denkt nicht in geraden Linien, oder zumindest nicht so wie es ein Computer am besten verstehen würde, sondern versucht eine Lösung zu finden, wie auch immer das gemacht wird.</p>



<p>Auch wenn hier ein Umweg programmiert wird und dort eine Art “Hack” verwendet wird,&nbsp; um es zum Laufen zu bringen.</p>



<p>Irgendwie läuft das Ganze dann nach zwei Monaten.</p>



<p>Der Auftraggeber ist super Happy. Es wurde alles so schnell entwickelt. Das muss ein super toller Entwickler sein!</p>



<p>Jedoch: Das Thema Clean Code, oder sauberer Code wurde nicht beachtet. Es ging nur darum, die Funktionalitäten – irgendwie – umzusetzen.</p>



<h3 class="wp-block-heading"><strong>Das Add On</strong></h3>



<p>Jetzt kommt der Kunde nach zwei weiteren Monaten und sagt, ich möchte ein weiteres Modul programmiert haben.</p>



<p>Der Entwickler kann sich noch ein wenig daran erinnern, wie der Code geschrieben wurde und fügt das Modul schnell hinzu. Wenn auch mit vielen Hacks und Coding Tricks.</p>



<p>Aber wehe, man würde nur eine Karte aus diesem Kartenhaus verschieben, alles würde zusammenbrechen. Das sagt man dem Auftraggeber natürlich nicht.</p>



<p>Der Schein ist immer noch gewahrt. Alle sind Happy.</p>



<h3 class="wp-block-heading"><strong>Nach zwei Jahren</strong></h3>



<p>Nach zwei Jahren werden weitere Entwicklungen geplant.</p>



<p>Nun kann sich der Programmierer, der das programmiert hat, nicht mehr daran erinnern, welcher Logik er denn genau gefolgt ist.</p>



<p>Ein Modul für welches zwei Wochen eingeplant ist, wird jetzt auch noch nicht in 6 Monaten fertiggestellt.</p>



<p>Der Auftraggeber wundert sich: Am Anfang ging doch alles so schnell? Hat der Entwickler die Motivation verloren? Was ist passiert?</p>



<p>Die Antwort: Es wurde bei der Softwareentwicklung nicht geplant. Und jetzt gibt es einen sogenannten Spaghetti Code, der irgendwie am Leben gehalten wird.</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><a href="https://www.yuhiro.de/wp-content/uploads/2020/08/Software-6.jpg" rel="wp-prettyPhoto[10819]"><img loading="lazy" decoding="async" width="402" height="175" src="https://www.yuhiro.de/wp-content/uploads/2020/08/Software-6.jpg" alt="" class="wp-image-10821" srcset="https://www.yuhiro.de/wp-content/uploads/2020/08/Software-6.jpg 402w, https://www.yuhiro.de/wp-content/uploads/2020/08/Software-6-300x131.jpg 300w" sizes="auto, (max-width: 402px) 100vw, 402px" /></a></figure></div>



<h3 class="wp-block-heading"><strong>Der Entwickler wechselt</strong></h3>



<p>Nach drei Jahren entscheidet sich der Entwickler für einen Karrierewechsel.</p>



<p>Nun ist das Chaos perfekt.</p>



<p>Der neue Entwickler, der sich in die Software einarbeitet, hat keine Ahnung, was, wie und mit welcher Logik entwickelt wurde.</p>



<p>Nicht selten wird dieser neue Entwickler dann vorschlagen, alles von neu auf zu programmieren, um es dann besser zu machen.</p>



<p>Dieser wird jedoch dann wieder von der “Grünen Wiese” anfangen und die gleichen Fehler machen, welche der erste Entwickler gemacht hat.</p>



<p>Nur, dass man den Code nun zwei mal geschrieben hat.</p>



<h3 class="wp-block-heading"><strong>Was kann man besser machen?</strong></h3>



<p>Es gibt ein Prinzip von dem Softwarespezialisten Robert Cecil Martin, auch Uncle Bob genannt. Er spricht von sauberem Code oder Clean Code.</p>



<p>Er geht davon aus, dass man zum Start sehr komplexen Code schreiben wird, einfach weil der Mensch genauso tickt. Ein Mensch wird nicht von Anfang alles richtig gut entwickeln. Sondern wird es so programmieren “das es funktioniert”.</p>



<p>Jedoch sollte man dann einen zweiten Schritt einbauen, bevor man weitermacht. -&gt; Man soll den Code überarbeiten und schöner machen. Dabei kann man gut und gerne die gleiche Zeit verwenden, welche man auch für die Programmierung selbst gebraucht hat.</p>



<p>D.h. eine Stunde Entwicklung, dann eine Stunde “Code sauber” machen. In der Computersprache nennt man das auch Refactoring. Das Verhalten nach aussen der Software bleibt gleich, nur die Struktur des Codes verbessert sich.</p>



<h3 class="wp-block-heading"><strong>Was ist Clean Code?</strong></h3>



<p>Hier ein paar Prinzipien, welche Uncle Bob beschreibt:</p>



<h3 class="wp-block-heading"><strong>1) Sauberer Code (SC) ist einfach zu lesen</strong></h3>



<p>Bereits in der ersten Zeile des Codes kann man erkennen, um was es sich bei der Entwicklung handelt. Man muss nicht die komplette Software für eine Halbe Stunde und länger studieren, nur zu verstehen, um welche Funktionalität es sich handelt.</p>



<p>Die Software Zeilen werden also nicht für sich selbst geschrieben, sondern man denkt immer an die Person, welche es später vielleicht lesen wird. So dass es für diesen umso leichter wird, das Ganze zu verstehen.</p>



<h3 class="wp-block-heading"><strong>2) SC ist simpel</strong></h3>



<p>Es werden keine komplizierten Hacks und Programmier Ansätze verwendet, nur weil der Programmierer daran Spass hat.</p>



<p>Es wird immer der einfachste Weg genommen, der einfach zu verstehen ist, funktioniert und simpel ist.</p>



<p>Auch wird es vermieden unnötig langen Code zu schreiben, der im Grunde genommen gar nich so komplex geschrieben werden müsste.</p>



<h3 class="wp-block-heading"><strong>3) SC ist getested</strong></h3>



<p>Niemand schreibt perfekte Software, die fehlerfrei ist. Jede Software hat Bugs.</p>



<p>Daher ist es wichtig jeweils einen Test Code zu schreiben. So dass der spätere hinzukommende Entwickler weiss, dass es sich um funktionierende Software handelt und es eine einfache Testing Möglichkeit gibt, um zu überprüfen ob alles noch passt.</p>



<h3 class="wp-block-heading"><strong>4) SC muss man sich antrainieren</strong></h3>



<p>Man sollte immer Clean Code schreiben. Auch wenn es ein Hobby Projekt ist, welcher von niemandem anders gesehen wird.</p>



<p>Es ist wie ein Muskel den man trainiert. Nur dann wird dieser mit der Zeit immer stärker.</p>



<p>Uncle Bob spricht auch von Code Kata. Kata ist eine Kampfsport, in welchem man die gleichen Schritte, immer wieder und wieder wiederholt, bis es perfekt sitzt.</p>



<p>So sollte man sich auch antrainieren immer sauberen Code zu schreiben.</p>



<h3 class="wp-block-heading"><strong>Fazit</strong></h3>



<p>Der Softwareentwickler von heutzutage hat die Verantwortung sauber zu arbeiten. Denn Software ist in fast allen unseren unwichtigen, aber auch wichtigen Geräten.</p>



<p>In der Zukunft wird fast alles mit Software ausgestattet sein. Software muss also perfekt funktionieren, wenn alles reibungslos ablaufen soll.</p>



<p>Dafür muss jedoch zukunftsfähiger und wartbarer Code geschrieben werden. Auf dem auch mit Modulen und Erweiterungen aufgebaut werden kann.</p>



<p>Noch immer wird Software jedoch nach dem Prinzip “so schnell wie möglich erledigen” gebaut. Denn Budgets sind beschränkt, Zeit ist knapp und Entwickler haben meistens hohe Stundensätze.</p>



<p>Somit wird das Problem höchstwahrscheinlich in naher Zukunft nicht gelöst werden.</p>



<p>Dennoch: Uncle Bob sagt auch -&gt; Irgendwann in der Zukunft wird ein grosses Chaos durch fehlerhafte Software entstehen und dann wird der Gesetzgeber einschreiten und Softwareentwicklung mit Gesetzen regulieren.</p>



<p>Bevor dass geschieht, sollten jedoch Softwareentwickler selbst, oder die Community selbst, die Gesetze und Richtlinien dafür schreiben. Welche dann vom Gesetzgeber übernommen werden können. So wie das bei den Ärzten, Anwälten und ähnlichen Gruppen bereits geschehen ist.</p>



<p>Was sind Ihre Erfahrungen?</p>



<p>Interessante Links:</p>



<p><a href="http://sebastianviereck.de/regeln-fur-guten-sauberen-code-clean-code/">Ein paar Tipps für sauberen Code</a></p>



<p><a href="https://www.ionos.de/digitalguide/websites/web-entwicklung/was-ist-clean-code/">Was ist Clean Code</a></p>



<p>Bilder: Canva</p>



<hr class="wp-block-separator"/>



<div class="wp-block-image"><figure class="alignleft"><img loading="lazy" decoding="async" width="150" height="150" src="https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed-150x150.jpg" alt="" class="wp-image-229" srcset="https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed-150x150.jpg 150w, https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed.jpg 227w" sizes="auto, (max-width: 150px) 100vw, 150px" /></figure></div>



<p>Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.</p>The post <a href="https://www.yuhiro.de/was-ist-sauberer-code-clean-code/">Was ist sauberer Code? (Clean Code)</a> first appeared on <a href="https://www.yuhiro.de">Yuhiro</a>.]]></content:encoded>
					
					<wfw:commentRss>https://www.yuhiro.de/was-ist-sauberer-code-clean-code/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PHP Programmiersprache: darum ist die Skriptsprache so beliebt</title>
		<link>https://www.yuhiro.de/php-programmiersprache/</link>
					<comments>https://www.yuhiro.de/php-programmiersprache/#comments</comments>
		
		<dc:creator><![CDATA[Autor]]></dc:creator>
		<pubDate>Wed, 31 Jul 2019 04:00:40 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmierung]]></category>
		<guid isPermaLink="false">https://www.yuhiro.de/?p=9747</guid>

					<description><![CDATA[<p>PHP Programmiersprache: darum ist die Skriptsprache so beliebt PHP ist natürlich eine Skriptsprache. In diesem Beitrag wird es der Einfachheit halber jedoch auch wie im Titel bezeichnet. Im Beitrag ein paar Informationen was man mit dieser Programmiersprache alles machen kann. Warum sollte man diese Technologie nutzen? PHP</p>
The post <a href="https://www.yuhiro.de/php-programmiersprache/">PHP Programmiersprache: darum ist die Skriptsprache so beliebt</a> first appeared on <a href="https://www.yuhiro.de">Yuhiro</a>.]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">PHP Programmiersprache: darum ist die Skriptsprache so beliebt</h2>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://www.yuhiro.de/wp-content/uploads/2019/04/Webentwicklung-1.jpg" rel="wp-prettyPhoto[9747]"><img loading="lazy" decoding="async" width="575" height="150" src="https://www.yuhiro.de/wp-content/uploads/2019/04/Webentwicklung-1.jpg" alt="" class="wp-image-9473" srcset="https://www.yuhiro.de/wp-content/uploads/2019/04/Webentwicklung-1.jpg 575w, https://www.yuhiro.de/wp-content/uploads/2019/04/Webentwicklung-1-300x78.jpg 300w" sizes="auto, (max-width: 575px) 100vw, 575px" /></a></figure></div>


<p>PHP ist natürlich eine Skriptsprache. In diesem Beitrag wird es der Einfachheit halber jedoch auch wie im Titel bezeichnet.</p>



<p>Im Beitrag ein paar Informationen was man mit dieser Programmiersprache alles machen kann.</p>



<h3 class="wp-block-heading"><strong>Warum sollte man diese Technologie nutzen?</strong></h3>



<p>PHP hat sich über die letzten Jahre hinweg bewährt. Es ist der de facto Standard, um Webanwendungen zu entwickeln.</p>



<p>Es gibt kaum eine andere Programmiersprache die so verbreitet ist.</p>



<p>Zudem gibt es viele Entwickler die sich mit dieser Skriptsprache auskennen.</p>



<p>Üblicherweise nutzen Webexperten in diesem Zusammenhang auch folgende Dinge:</p>



<ul class="wp-block-list">
<li>MySQL/ MongoDB: Unterschiedliche Datenbanklösungen</li>



<li>JavaScript</li>



<li>Node.JS</li>



<li>HTML/ CSS</li>



<li>Angular</li>



<li>Vue.JS</li>



<li> jQuery</li>



<li>Ajax</li>
</ul>



<p>Beliebt sind auch Frameworks wie:</p>



<ul class="wp-block-list">
<li>Laravel</li>



<li>Symfony</li>



<li>Zend</li>



<li>YII</li>



<li>CodeIgniter</li>
</ul>



<p>Besonders Laravel hat in den letzten Jahren stark an Bedeutung gewonnen. Solche Frameworks vereinfachen die Arbeit mit PHP und enthalten zudem auch wichtige Komponenten wie Sicherheitsmassnahmen und ähnliche.</p>



<p>Auch viele Shopsysteme und Content Management Systeme laufen mit darauf.</p>



<p>Hier einige die man kennen sollte:</p>



<ul class="wp-block-list">
<li>WordPress</li>



<li>Joomla</li>



<li>Drupal</li>



<li>TYPO3</li>



<li>Contao</li>



<li>Shopware</li>



<li>Magento</li>



<li>OXID</li>



<li>osCommerce</li>
</ul>



<p>Dabei sind besonders WordPress, TYPO3, Magento und Shopware weit verbreitet. Die Basis dieser Technologien ist jeweils PHP.</p>



<p>Das alleine zeigt bereits die Eignung für die Entwicklung von Weblösungen.</p>



<h3 class="wp-block-heading"><strong>Softwareentwicklung damit</strong></h3>



<p>Es gibt auch sehr viele Softwareunternehmen welche damit Webanwendungen programmiert haben, und diese deren Kunden anbieten.</p>



<p>Bekanntere Beispiele sind Facebook und Wikipedia.</p>



<p>Es gibt jedoch auch aus dem deutschsprachigen Raum Anbieter, welche mit dieser Programmiersprache arbeiten.</p>



<ul class="wp-block-list">
<li>Blog2Social: Dabei handelt es sich um ein Softwareunternehmen aus Deutschland, welches ein PHP basierendes WordPress Plugin Anbietet. Die Firma hat zirka 10 Mitarbeiter.</li>



<li>troi: Es handelt sich um eine Agentursoftware, welche von den führenden Werbeagenturen genutzt wird. Es basiert auf MySQL, PHP 7, Ajax, XML, HTML/ CSS, JavaScript.</li>
</ul>



<p>Das sind nur zwei Beispiele von sehr vielen.</p>



<h3 class="wp-block-heading"><strong>Vorteil: kostenfreie Nutzung möglich</strong></h3>



<p>Anders als zum Beispiel bei .NET Technologien, kann man die komplette Palette an PHP Technologien kostenfrei nutzen. Es fallen keine Lizenzen an. Die Kostenersparnis kann sehr hoch sein, wenn zum Beispiel sehr viele Personen die Software nutzen.</p>



<p>Zum Vergleich: Würde man zum Beispiel eine Software mit .NET entwickeln, dann müsste man in vielen Fällen pro Nutzer eine monatliche Lizenz erwerben.</p>



<p>Die kostenfreie Nutzung gilt in einem bestimmten Umfang auch auf die anderen Technologien wie Magento, WordPress, etc. Überall dort kann man Erweiterungen schreiben und die Software ohne Zusatzkosten nutzen.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://www.yuhiro.de/wp-content/uploads/2019/07/Software.jpg" rel="wp-prettyPhoto[9747]"><img loading="lazy" decoding="async" width="575" height="150" src="https://www.yuhiro.de/wp-content/uploads/2019/07/Software.jpg" alt="" class="wp-image-9749" srcset="https://www.yuhiro.de/wp-content/uploads/2019/07/Software.jpg 575w, https://www.yuhiro.de/wp-content/uploads/2019/07/Software-300x78.jpg 300w" sizes="auto, (max-width: 575px) 100vw, 575px" /></a></figure></div>


<h3 class="wp-block-heading"><strong>Welche Unternehmen nutzen es?</strong></h3>



<p>Neben Softwareunternehmen nutzen es auch folgende Gruppen:</p>



<ul class="wp-block-list">
<li><strong>Agenturen:</strong> Internet- und Werbeagenturen nutzen PHP um Webanwendungen bei deren Kundenunternehmen zu implementieren. Nicht selten werden auch eigene Content Management Systeme damit entwickelt und den Kunden bereitgestellt. WordPress und TYPO3 sind andere Standards die häufig verwendet werden.</li>



<li><strong>Onlineshop Anbieter:</strong> Es gibt eine Vielzahl an kleineren bis mittleren Onlineshops, welche ihre Waren im Internet anbieten. Diese haben ihre Shops oftmals mit PHP programmiert, um flexibler in der Entwicklung zu sein. Fast alle Anwendungen lassen sich ohne Einschränkungen erstellen.</li>



<li><strong>IT Dienstleister:</strong> Auch bei IT Dienstleistern kommt diese Programmiersprache zum Einsatz. Es lassen sich damit auch viele Backendprogrammierungen vornehmen. Zum Beispiel für die Implementierung von Schnittstellen (API’s) und ähnlichen.</li>



<li><strong>KMU:</strong> Kleine und mittelständische Unternehmen haben oftmals kleinere Intranets und Webseiten am Laufen, mit welchen diese, ihren Kunden unterschiedliche Produktlösungen anbieten. Der Klassiker sind noch immer Webseiten mit Produktkonfiguratoren.</li>



<li><strong>Freelancer:</strong> Viele Freiberufler arbeiten mit den oben genannten Firmen zusammen, um Programmierdienstleistungen zu erbringen. Oftmals nutzen sie die Technologie jedoch auch um Erweiterungen für WordPress und ähnliche Lösungen zu schreiben.</li>
</ul>



<h3 class="wp-block-heading"><strong>Wie performant ist es gegenüber anderen Lösungen?</strong></h3>



<p>PHP wird nachgesagt, dass es nicht so performant ist wie andere Programmiersprachen.</p>



<p>Jedoch kommt es auch auf die Anforderungen an. In 90 Prozent der Fälle reicht diese Skriptsprache.</p>



<p>Nur in zirka 10 Prozent der Anwendungen werden andere Ansätze notwendig. Hier ein paar Alternativen:</p>



<ul class="wp-block-list">
<li><strong>Java:</strong> Im Bereich Banking und Versicherungen braucht es Leistungsstarke und sehr sichere Anwendungen. Hier kann man mit Java arbeiten. Damit lassen sich auch Weblösungen umsetzen.</li>



<li><strong>Python:</strong> Wenn man sehr grosse Programmierungen umsetzen will, in welchen sehr viele Daten Online verarbeitet werden sollen, dann ist Python eine interessante Methode. Suchmaschinen wie Google arbeiten damit.</li>



<li><strong>Ruby on Rails:</strong> Auch Ruby ist sehr performant. Mittelgrosse Applikationen lassen sich auch damit umsetzen.</li>



<li><strong>C#.NET:</strong> IT Abteilungen von grossen Konzernen haben oftmals Programme, welche auf C#.NET laufen. Im Webbereich gibt es zudem ASP.NET als mögliche Option.</li>



<li><strong>Node.JS:</strong> Moderne und schnell wachsende Startups nutzen die JavaScript Technologie Node.JS. Dabei kann man JavaScript im Frontend, als auch im Backend und in der Datenbank nutzen. Somit wird die Weblösung sehr schnell. Startups wie Netflix oder Trello arbeiten damit erfolgreich.</li>
</ul>



<h3 class="wp-block-heading"><strong>Weltweit verfügbar</strong></h3>



<p>Programmierer welche sich mit PHP auskennen, sind weltweit verfügbar. Das liegt auch daran, dass der Hypertext Preprocessor (so wird es auch genannt) bereits seit mehreren Jahrzehnten im Einsatz ist.</p>



<p>Zudem muss ein Entwickler der damit arbeitet, nicht unbedingt vor Ort sein. Er kann zum Beispiel auch in Pakistan oder Indien sitzen.</p>



<p>Nicht selten kommt es vor, dass Teams aus globalen Einheiten bestehen, wo ein Teil in Deutschland sitzt und weitere Mitglieder in Südasien.</p>



<p>So kann man nicht nur von weiteren Entwicklungskapazitäten profitieren, sondern auch von niedrigeren Kostenstrukturen.</p>



<h3 class="wp-block-heading"><strong>Wohin geht die Reise?</strong></h3>



<p>Besonders der Aufstieg des Frameworks Laravel, hat die Technologie wieder aufsteigen lassen.</p>



<p>Es gilt wieder als sexy mit dieser Programmiersprache zu arbeiten.</p>



<p>Von der Performance und der Sicherheit kann es nun auch mit Technologien wie Ruby on Rails mithalten.</p>



<p>Es lohnt sich daher PHP Programmierer zu werden. Auch weil es als Grundlage der meisten Shopsysteme und Content Management Systeme dient.</p>



<p>Zudem kann man Stellen global finden, sei es in den USA, Kanada, der Schweiz, oder auch in Indien.</p>



<h3 class="wp-block-heading"><strong>Fazit</strong></h3>



<p>Die Technologie ist heutzutage sehr stark verbreitet und es deckt zirka 90 Prozent aller Webanwendungs-Anforderungen ab. Nur wenn man wirklich grosse und schnelle Anwendungen benötigt, muss man auf Lösungen wie Java oder C# setzen.</p>



<p>Der Bedarf an der PHP Programmiersprache wird in der kommenden Zeit also nicht abnehmen. Im Gegenteil, höchstwahrscheinlich braucht es immer mehr Profis die sich damit auskennen.</p>



<p>Es ist zudem relativ einfach die ersten Programme damit zu schreiben. Damit kann man den Einstieg relativ einfach schaffen. Das ist bei .NET Lösungen etwas anders.</p>



<p>Was sind Eure Erfahrungen?</p>



<p>Interessante Links:<br><a href="https://de.wikipedia.org/wiki/PHP" title="">Wikipedia Eintrag zu PHP</a><br><a href="https://www.ionos.de/digitalguide/websites/webseiten-erstellen/php-lernen-leicht-gemacht-das-grosse-einsteiger-tutorial/" title="">Ein Einsteiger Tutorial zu PHP</a></p>



<p>Bilder: Canva</p>



<hr class="wp-block-separator has-css-opacity"/>


<div class="wp-block-image">
<figure class="alignleft"><img loading="lazy" decoding="async" width="150" height="150" src="https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed-150x150.jpg" alt="" class="wp-image-229" srcset="https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed-150x150.jpg 150w, https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed.jpg 227w" sizes="auto, (max-width: 150px) 100vw, 150px" /></figure></div>


<p>Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.</p>The post <a href="https://www.yuhiro.de/php-programmiersprache/">PHP Programmiersprache: darum ist die Skriptsprache so beliebt</a> first appeared on <a href="https://www.yuhiro.de">Yuhiro</a>.]]></content:encoded>
					
					<wfw:commentRss>https://www.yuhiro.de/php-programmiersprache/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Versionsverwaltung in der Softwareentwicklung</title>
		<link>https://www.yuhiro.de/versionsverwaltung-in-der-softwareentwicklung/</link>
					<comments>https://www.yuhiro.de/versionsverwaltung-in-der-softwareentwicklung/#respond</comments>
		
		<dc:creator><![CDATA[Sascha Thattil]]></dc:creator>
		<pubDate>Thu, 15 Nov 2018 05:54:56 +0000</pubDate>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<guid isPermaLink="false">https://www.yuhiro.de/?p=9022</guid>

					<description><![CDATA[<p>Versionsverwaltung in der Softwareentwicklung Für die Entwicklung größerer Softwareprojekte und die Verwaltung der dazugehörenden Sourcecodes ist eine Versionsverwaltung unverzichtbar. Aber auch für überschaubare Programme sind Versionierungstools hilfreiche Werkzeuge. Sie ermöglichen es, einzelne Entwicklungsschritte nachzuvollziehen. Letztendlich ist es das Ziel, ein hochwertiges Release einer Software zu erstellen, die</p>
The post <a href="https://www.yuhiro.de/versionsverwaltung-in-der-softwareentwicklung/">Versionsverwaltung in der Softwareentwicklung</a> first appeared on <a href="https://www.yuhiro.de">Yuhiro</a>.]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">Versionsverwaltung in der Softwareentwicklung</h2>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://www.yuhiro.de/wp-content/uploads/2018/10/Code-1.jpg" rel="wp-prettyPhoto[9022]"><img loading="lazy" decoding="async" width="575" height="180" src="https://www.yuhiro.de/wp-content/uploads/2018/10/Code-1.jpg" alt="" class="wp-image-9027" srcset="https://www.yuhiro.de/wp-content/uploads/2018/10/Code-1.jpg 575w, https://www.yuhiro.de/wp-content/uploads/2018/10/Code-1-300x94.jpg 300w" sizes="auto, (max-width: 575px) 100vw, 575px" /></a></figure></div>


<p>Für die Entwicklung größerer Softwareprojekte und die Verwaltung der dazugehörenden Sourcecodes ist eine Versionsverwaltung unverzichtbar. Aber auch für überschaubare Programme sind Versionierungstools hilfreiche Werkzeuge. Sie ermöglichen es, einzelne Entwicklungsschritte nachzuvollziehen. Letztendlich ist es das Ziel, ein hochwertiges Release einer Software zu erstellen, die Wege von der Anforderung zum fertigen Programm sind jedoch vielfältig.</p>



<p>Insbesondere wenn ein größeres Team gemeinsam an einem Softwareprojekt arbeitet, ist es wichtig, die Übersicht über die Dateimengen zu behalten und ggf. unterschiedliche Dateiversionen im Endprodukt zusammenzuführen. In diesem Beitrag fassen wir die Funktionsweise von Versionsverwaltungen zusammen und beschreiben die bekanntesten Tools.</p>



<h3 class="wp-block-heading"><strong>Warum sollte ich Versionierungstools einsetzen?</strong></h3>



<p>Eine Versionsverwaltung &#8211; häufig auch kurz als VCS (Version Control System) bezeichnet &#8211; ist ein System, mit dem Sourcecode nachvollzogen und verwaltet werden kann. Dabei können Entwicklungsstände jederzeit optimiert oder aber ggf. auf einen früheren Entwicklungsstand zurückgeführt werden.</p>



<p>Da in komplexen Projekten häufig mehrere Softwareentwickler gemeinsam an den Sourcecodes arbeiten, treffen verschiedene Versionsstände der einzelnen Dateien aufeinander. Um Fehler bei der Zusammenführung sämtlicher Releases zu vermeiden, sind folgende Funktionen grundlegende Bestandteile einer Versionsverwaltung:</p>



<ul class="wp-block-list">
<li>Änderungsprotokolle: Wer hat wann was gemacht und warum?</li>



<li>Archivierung, Zusammenführung und Wiederherstellung von einzelnen Entwicklungsständen (inkl. Vergabe von Release-Nummern)</li>



<li>Koordination und Delegierung von Aufgaben beteiligter Entwickler (ToDos)</li>
</ul>



<p>In der Historie der Softwareentwicklung haben sich drei Typen der Versionsverwaltung herausgebildet:</p>



<ul class="wp-block-list">
<li>Eine <strong>lokale Versionsverwaltung</strong> wird in der Regel nur auf einem Arbeitsplatz eingesetzt, deren Funktionsweise geht selten über die Versionierung von Dateien hinaus. Diese Art der Versionierung ist lediglich für einzelne Entwickler (z. B. kleine Entwicklungsbüros) sinnvoll. Im Grunde spielt diese Form der Versionsverwaltung heutzutage keine Rolle mehr.</li>



<li>Echte Teamfunktionen in der Softwareentwicklung bietet eine <strong>zentrale Versionsverwaltung</strong>. Hier wird das gesamte Softwareprojekt netzwerkbasiert auf einem System gespeichert und zugriffsberechtigten Entwicklern zur Verfügung gestellt. Die unterschiedlichen Versionsstände werden somit zentral auf einem Server abgelegt.</li>



<li>Eine <strong>verteilte Versionsverwaltung</strong> bietet den Entwicklern die Möglichkeit, sich von einem zentral gelagerten Softwarestand einen lokalen Klon zu erstellen, auf dem sie dann ortsunabhänig weiterarbeiten können. Die Änderungen werden später mit dem zentralen Datenbestand abgeglichen und wieder zusammengeführt. Zusätzlich haben alle beteiligten Entwickler die Möglichkeit, den neu eingebrachten Code zu überprüfen. Der Projektleiter führt dann den finalen Versionsstand zusammen.</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://www.yuhiro.de/wp-content/uploads/2018/10/Konzept.jpg" rel="wp-prettyPhoto[9022]"><img loading="lazy" decoding="async" width="575" height="180" src="https://www.yuhiro.de/wp-content/uploads/2018/10/Konzept.jpg" alt="" class="wp-image-9028" srcset="https://www.yuhiro.de/wp-content/uploads/2018/10/Konzept.jpg 575w, https://www.yuhiro.de/wp-content/uploads/2018/10/Konzept-300x94.jpg 300w" sizes="auto, (max-width: 575px) 100vw, 575px" /></a></figure></div>


<h3 class="wp-block-heading"><strong>Konzepte und deren Vor- und Nachteile</strong></h3>



<p>Zentrale Versionsverwaltungen arbeiten nach dem Prinzip &#8222;Lock-Modify-Write&#8220; und wird in Fachkreisen auch als &#8222;pessimistische Versionsverwaltung&#8220; bezeichnet. Bei diesem Verfahren werden einzelne Dateien eines zentralen Repositories durch den Entwickler gesperrt und nach dem Abspeichern der Änderungen wieder freigegeben.</p>



<p>Wesentlicher Vorteil dieses Konzeptes ist, dass keine Zusammenführung von unterschiedlichen Versionen notwendig ist, da immer nur ein einziger Entwickler eine Datei ändern kann. Daraus ergibt sich jedoch auch der Nachteil, dass weitere Entwickler auf die Freigabe der Datei warten müssen, damit sie ihrerseits Änderungen einbringen können.</p>



<p>Ein moderneres Verfahren ist das Prinzip &#8222;Copy-Modify-Merge&#8220;, das heutzutage bei fast allen zentralen und verteilten Versionsverwaltungen anzutreffen ist. Die zugrundeliegende Philosophie der &#8222;optimistischen Versionsverwaltung&#8220; lässt gleichzeitige Änderungen von Dateien zu, die anschließend &#8211; automatisch oder auch manuell &#8211; zusammengeführt werden.</p>



<p>Dieses Verfahren erleichtert die Arbeit der Mitglieder eines Entwicklerteams sehr, da geplante Änderungen nicht angekündigt werden müssen. Es ermöglicht räumlich getrenntes Arbeiten an einem Softwareprojekt und steigert dadurch die Produktionseffizienz. Als einziger Nachteil ist die problematische Verarbeitung und Versionierung von fertig compilierten Binärdateien, dies ist meist nur mit zusätzlichen Tools zu bewerkstelligen. Aus diesem Grund wird bei Binärdateien oft weiterhin mit dem Lock-Modify-Write-Verfahren gearbeitet.</p>



<p>Mit modernem Versionsverwaltungssystemen ist es möglich, parallel mehrere unterschiedliche Softwareversionen zu erstellen. Eine solche Version wird als &#8222;Branch&#8220; bezeichnet. Dies ist im Grunde nichts anderes als ein weiterer Zweig im Dateiverzeichnisbaum. Diese Branches sind dem so genannten &#8222;Trunk&#8220;, dem Hauptversionsstamm, untergeordnet. Des Weiteren gibt es &#8222;Tags&#8220;, dies sind Kopien weiter zurückliegender Versionsstände, die zu Archivierungszwecken gespeichert werden.</p>



<h3 class="wp-block-heading"><strong>Welche Versionierungssoftware-Anbieter gibt es?</strong></h3>



<p>Die verbreitetsten Versionierungswerkzeuge sind das Subversion-Projekt (SVN) aus dem Hause Apache sowie Git mit seinen webbasierten Services GitHub, GitLab und Bitbucket. Das Open-Source-Projekt SVN zählt du den zentralen Versionsverwaltungsplattformen und unterstützt auch die Versionierung von Binärdateien. Insbesondere große Binär-Files wie z. B. grafische Elemente können automatisch erkannt und somit mit vorherigen Versionen abgeglichen werden.</p>



<p>Git ist den verteilten Versionsverwaltungen zuzurechnen und ermöglicht systembedingt im professionellen Umfeld eine schnelle Bearbeitung des Sourcecodes durch die lokale Version auf dem Rechner des Programmierers. Außerdem ermöglicht Git es allen beteiligten Entwicklern, den aktuellen Stand der Programmierung einzusehen und auf Fehler zu überprüfen, bevor dieses in das zentrale Repository eingespielt wird.</p>



<p>Insbesondere in der Webentwicklung werden zunehmend webbasierte Dienste eingesetzt. GitHub bietet mit seinen zahllosen Open-Source-Projekten die Möglichkeit, Software kostenlos einem Versionsmanagement zu unterziehen.</p>



<p>Im professionellen Bereich ist man jedoch aus rechtlichen Gründen auf kostenpflichtige Angebote angewiesen. Hier kommt z. B. GitLab als webbasierter Dienst zum Einsatz, da hierdurch die Codes einer Closed-Source-Software zusätzlich auf einem eigenen Server behalten werden können.</p>


<div class="wp-block-image">
<figure class="aligncenter"><a href="https://www.yuhiro.de/wp-content/uploads/2018/10/Auswahl.jpg" rel="wp-prettyPhoto[9022]"><img loading="lazy" decoding="async" width="575" height="180" src="https://www.yuhiro.de/wp-content/uploads/2018/10/Auswahl.jpg" alt="" class="wp-image-9029" srcset="https://www.yuhiro.de/wp-content/uploads/2018/10/Auswahl.jpg 575w, https://www.yuhiro.de/wp-content/uploads/2018/10/Auswahl-300x94.jpg 300w" sizes="auto, (max-width: 575px) 100vw, 575px" /></a></figure></div>


<h3 class="wp-block-heading"><strong>Was man bei der Auswahl einer passenden Versionierungsplattform beachten sollte</strong></h3>



<p>Bevor man sich für eine Versionsverwaltungssoftware entscheidet, sollte überprüft werden, ob die Plattform die Integration des verwendeten Versionskontrollsystems unterstützt.</p>



<p>Zu diesem Zweck bieten einige Anbieter gleich mehrere Schnittstellen an. Des Weiteren sollten Sie sich über den Umfang Ihrer Softwareprojekte und Businesspläne im Klaren sein, bevor Sie eine Entscheidung für oder gegen einen Provider fällen. Möglicherweise ist die Nutzeranzahl und die Speicherkapazität begrenzt oder mit Zusatzkosten verbunden.</p>



<p>Ein weiteres wesentliches Auswahlkriterium ist die Datensicherheit. Das ausgewählte Tool sollte auf jeden Fall eine Funktion für individuelle Zugriffsberechtigungen vorweisen können. Ein weiterer bedeutender Faktor sind mögliche Funktionen zur Unterstützung der Team-Kollaboration. Bei der teambasierten Softwareentwicklung ist ein funktionierender Austausch unter allen beteiligten Entwicklern eine Grundvoraussetzung, um Systemfehler auszuschließen.</p>



<h3 class="wp-block-heading"><strong>Fazit</strong></h3>



<p>Professionelles Coding und das dazugehörende Projektmanagement funktioniert nicht mehr ohne eine zeitgemäße Versionsverwaltung. Eine effiziente Versionsverwaltung setzt wiederum eine passende Plattform voraus, die einem Entwicklerteam eine bestmögliche Zusammenarbeit ermöglicht.</p>



<p>Ob Sie sich für ein führendes Produkt entscheiden oder doch lieber für einen Nischenanbieter, der mit seinem Produkt den Workflow Ihres Projektteams optimal abbildet, entscheidet der Einzelfall. Der Markt der Versionierungsplattformen ist breit aufgestellt, für jede Projektgröße und jedes Budget findet sich ein passender Anbieter. Vergleichen Sie in Ruhe, dann steht dem fehlerfreien Coding und optimierten Arbeitsabläufen in der Softwareentwicklung nichts mehr im Wege.</p>



<p>Interessante Beiträge zum Thema:<br><a href="https://de.wikipedia.org/wiki/Versionsverwaltung" title="">Beschreibung zu Versionsverwaltung auf Wikipedia</a><br><a href="https://www.d-velop.de/blog/prozesse-gestalten/versionsverwaltung/" title="">Informationen zur Versionsverwaltung</a></p>



<p>Bilder: Canva</p>



<hr class="wp-block-separator has-css-opacity"/>


<div class="wp-block-image">
<figure class="alignleft"><img loading="lazy" decoding="async" width="150" height="150" src="https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed-150x150.jpg" alt="" class="wp-image-229" srcset="https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed-150x150.jpg 150w, https://www.yuhiro.de/wp-content/uploads/2012/11/DSC04409-Changed.jpg 227w" sizes="auto, (max-width: 150px) 100vw, 150px" /></figure></div>


<p>Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.</p>The post <a href="https://www.yuhiro.de/versionsverwaltung-in-der-softwareentwicklung/">Versionsverwaltung in der Softwareentwicklung</a> first appeared on <a href="https://www.yuhiro.de">Yuhiro</a>.]]></content:encoded>
					
					<wfw:commentRss>https://www.yuhiro.de/versionsverwaltung-in-der-softwareentwicklung/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/

Page Caching using Disk: Enhanced 

Served from: www.yuhiro.de @ 2026-08-11 11:46:58 by W3 Total Cache
-->