<?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>Praxis Archive - CEOsBay</title>
	<atom:link href="https://ceosbay.com/tag/praxis/feed/" rel="self" type="application/rss+xml" />
	<link>https://ceosbay.com/tag/praxis/</link>
	<description>It&#039;s all about Tech</description>
	<lastBuildDate>Sun, 16 Apr 2023 07:46:12 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://i0.wp.com/ceosbay.com/wp-content/uploads/2022/11/image.jpg?fit=32%2C32&#038;ssl=1</url>
	<title>Praxis Archive - CEOsBay</title>
	<link>https://ceosbay.com/tag/praxis/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">211828771</site>	<item>
		<title>Clean Code &#8211; Elegante Lösungen für effiziente und wartungsfreundliche Software</title>
		<link>https://ceosbay.com/2023/04/11/erklaerung-clean-code/</link>
					<comments>https://ceosbay.com/2023/04/11/erklaerung-clean-code/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Tue, 11 Apr 2023 19:53:02 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Automatisierung]]></category>
		<category><![CDATA[Bildung]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Architekt]]></category>
		<category><![CDATA[Bob]]></category>
		<category><![CDATA[Clean]]></category>
		<category><![CDATA[CleanCode]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Coder]]></category>
		<category><![CDATA[Continuous]]></category>
		<category><![CDATA[Craftmanship]]></category>
		<category><![CDATA[Deployment]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[DRY]]></category>
		<category><![CDATA[Einfachheit]]></category>
		<category><![CDATA[Erleichterung]]></category>
		<category><![CDATA[Fazit]]></category>
		<category><![CDATA[Fehler]]></category>
		<category><![CDATA[Fehlerhandhabung]]></category>
		<category><![CDATA[Kommentar]]></category>
		<category><![CDATA[Kommentare]]></category>
		<category><![CDATA[Komplex]]></category>
		<category><![CDATA[Komplexität]]></category>
		<category><![CDATA[Leichter]]></category>
		<category><![CDATA[Lesbarkeit]]></category>
		<category><![CDATA[Modularität]]></category>
		<category><![CDATA[Praxis]]></category>
		<category><![CDATA[Prinzipien]]></category>
		<category><![CDATA[Probleme]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Qualität]]></category>
		<category><![CDATA[Responsibility]]></category>
		<category><![CDATA[Single]]></category>
		<category><![CDATA[SRP]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Team]]></category>
		<category><![CDATA[Team Work]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Verständnis]]></category>
		<category><![CDATA[Wiederverwendbarkeit]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Zeitdruck]]></category>
		<category><![CDATA[Zusammenarbeit]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1398</guid>

					<description><![CDATA[<p>In der Welt der Softwareentwicklung hat sich der Begriff &#8222;Clean Code&#8220; zu einem wichtigen Leitprinzip entwickelt. Die Idee, dass sauberer, gut strukturierter und leicht verständlicher Code zu besseren und wartungsfreundlicheren Softwareprodukten führt, ist mittlerweile weit &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/04/11/erklaerung-clean-code/">Clean Code &#8211; Elegante Lösungen für effiziente und wartungsfreundliche Software</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In der Welt der Softwareentwicklung hat sich der Begriff &#8222;Clean Code&#8220; zu einem wichtigen Leitprinzip entwickelt. Die Idee, dass sauberer, gut strukturierter und leicht verständlicher Code zu besseren und wartungsfreundlicheren Softwareprodukten führt, ist mittlerweile weit verbreitet. Heute geht es um das Konzept von Clean Code, warum es wichtig ist und wie man es in der Praxis umsetzen kann.</p>



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



<p>Clean Code bezieht sich auf den Ansatz, Code so zu schreiben, dass er leicht verständlich, wartbar und erweiterbar ist. Das Konzept wurde von Robert C. Martin, auch bekannt als &#8222;Uncle Bob&#8220;, in seinem Buch &#8222;Clean Code: A Handbook of Agile Software Craftsmanship&#8220; populär gemacht. Im Kern geht es darum, Softwareentwicklung als Handwerk zu betrachten und stets auf hohe Qualität und Präzision in der Codegestaltung zu achten.</p>



<h3 class="wp-block-heading">Warum ist es wichtig?</h3>



<p>Sauberer Code bietet verschiedene Vorteile, sowohl für den Entwickler selbst, für das gesamte Team und meiner Meinung nach auch für die ganze Welt.</p>



<ul class="wp-block-list">
<li>Verständlichkeit: Clean Code ist einfacher zu lesen und zu verstehen. Das hilft Entwicklern, sich schneller mit dem Code vertraut zu machen und Fehler oder Verbesserungsmöglichkeiten schneller zu erkennen.</li>



<li>Wartbarkeit: Sauberer Code ist leichter zu warten, da er klar strukturiert und weniger anfällig für Fehler oder unerwartete Probleme ist.</li>



<li>Effizienz: Da Clean Code einfacher zu verstehen ist, kann das Team schneller arbeiten und die Produktivität steigt.</li>



<li>Zusammenarbeit: Ein sauberer Code erleichtert die Zusammenarbeit im Team, da jeder den Code anderer Entwickler leichter lesen und verstehen kann.</li>
</ul>



<h3 class="wp-block-heading">Prinzipien von Clean Code</h3>



<p>Es gibt viele Prinzipien und Praktiken, die beim Schreiben von sauberem Code helfen können. Einige der wichtigsten sind:</p>



<ul class="wp-block-list">
<li>Lesbarkeit: Der Code sollte leicht lesbar und verständlich sein. Das bedeutet, dass man Variablen, Funktionen und Klassen sinnvoll benamt und ihre Funktion leicht erkennbar ist. Kommentare setzt man sparsam ein, um den Code nicht zu überfrachten.</li>
</ul>



<ul class="wp-block-list">
<li>Einfachheit: Man hält den Code so einfach wie möglich, ohne unnötige Komplexität oder Verwirrung. Das bedeutet, dass man sich auf das Wesentliche konzentrieren und abstrakte Konzepte wie Design Patterns oder Funktionen nur verwendet, wenn sie tatsächlich nützlich sind.</li>
</ul>



<ul class="wp-block-list">
<li>Modularität: Man teilt den Code in kleine unabhängige Module auf, die jeweils eine bestimmte Funktion erfüllen. Dadurch wird der Code leichter zu verstehen und zu warten.</li>
</ul>



<ul class="wp-block-list">
<li>Wiederverwendbarkeit: Man schreibt den Code so, dass die Wiederverwendbarkeit gewährleistet ist. Dies bedeutet, dass Funktionen oder Klassen, die eine bestimmte Aufgabe erfüllen, generisch genug sind, um in verschiedenen Situationen Verwendung zu finden.</li>
</ul>



<h3 class="wp-block-heading">Clean Code in der Praxis</h3>



<p>Hier sind einige konkrete Schritte, die man beim Schreiben von Clean Code in der Praxis beachten sollte:</p>



<ul class="wp-block-list">
<li>Variablen-, Funktions- und Klassennamen: Man wählt sinnvolle, beschreibende Namen, die klar machen, was eine Variable, Funktion oder Klasse macht. Die Vermeidung von Abkürzungen oder unverständliche Namen ist eines der obersten Gebote.</li>
</ul>



<ul class="wp-block-list">
<li>Single Responsibility Principle (SRP): Jede Funktion oder Klasse sollte nur eine einzige Verantwortung haben. Dies bedeutet, dass sie nur einen Aspekt des Problems lösen sollte, um den Code einfacher und leichter zu warten.</li>
</ul>



<ul class="wp-block-list">
<li>Funktionen und Methoden: Man hält Funktionen und Methoden kurz und konzentrieren sich darauf, dass sie eine einzige Aufgabe erfüllen. Eine Funktion oder Methode sollte in der Regel nicht länger als 20 Zeilen sein, um ihre Verständlichkeit zu gewährleisten.</li>
</ul>



<ul class="wp-block-list">
<li>KISS (Keep It Simple, Stupid) Prinzip: Man versucht, den Code so einfach wie möglich zu halten und unnötige Komplexität zu vermeiden. Wenn es eine einfachere Lösung gibt, zieht man diese der komplexeren vor.</li>
</ul>



<ul class="wp-block-list">
<li>Don&#8217;t Repeat Yourself (DRY) Prinzip: Man vermeidet doppelten Code, indem man wiederverwendbare Funktionen oder Klassen erstellt. Das verringert die Wahrscheinlichkeit von Fehlern und macht den Code leichter zu warten.</li>
</ul>



<ul class="wp-block-list">
<li>Code-Kommentare: Man sollte Kommentare dazu verwenden, den Zweck und die Funktionsweise von Code-Teilen zu erläutern, die nicht sofort offensichtlich sind. Man sollte jedoch nicht zu viele Kommentare schreiben, da dies den Code unübersichtlich machen kann.</li>
</ul>



<ul class="wp-block-list">
<li>Fehlerbehandlung: Die Implementierung einer angemessenen Fehlerbehandlung sollte unabdingbar sein, um unerwartete Probleme zu erkennen und angemessen darauf zu reagieren. Die Verwendung von Exceptions und try-catch-Blöcken, kann eine gute Lösung darstellen, um Fehler abzufangen und entsprechend darauf zu reagieren.</li>
</ul>



<ul class="wp-block-list">
<li>Testgetriebene Entwicklung (<a href="https://ceosbay.com/2023/03/13/erklaerung-test-driven-development/" target="_blank" rel="noreferrer noopener">TDD</a>): Man schreibt zuerst Tests, bevor man den eigentlichen Code entwickelt. Auf diese Weise kann man sicherstellen, dass die Implementierung den gewünschten Anforderungen entspricht und weniger fehleranfällig ist. Siehe hierzu meinen <a href="https://ceosbay.com/2023/03/13/erklaerung-test-driven-development/" target="_blank" rel="noreferrer noopener">Beitrag über Test Driven Development</a>.</li>
</ul>



<ul class="wp-block-list">
<li>Kontinuierliche Integration (CI) und Continuous Deployment (CD): Man verwendet CI/CD-Tools, um den Code regelmäßig zu testen und automatisch zu deployen. Dies stellt sicher, dass der Code immer auf dem neuesten Stand ist und das man potenzielle Probleme schnell erkennen kann.</li>
</ul>



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



<p>Im Grunde genommen ist dies für mich eine relativ neue Angelegenheit, da ich in der Vergangenheit schon recht of den Code einfach reingehackt habe, da ich mich unter Zeitdruck gefühlt habe. Ich ertappe mich hin und wieder immer noch dabei und dies sehr oft, wie ich auf alte Gewohnheiten und Muster zurückgreife. Doch dies sollte sich hoffentlich in den nächsten Monaten und Jahren auf ein Minimum reduzieren lassen. Ich bin davon überzeugt, dass Clean Code ein wesentlicher Bestandteil einer erfolgreichen Softwareentwicklung ist. Indem man sich auf Lesbarkeit, Einfachheit, Modularität und Wiederverwendbarkeit konzentriert, kann man den eigenen Code nicht nur leichter verstehen, sondern auch schneller und effizienter arbeiten. Durch die Anwendung der oben genannten Prinzipien und Praktiken kann man den Code verbessern und letztendlich zu erfolgreichen, wartungsfreundlichen Softwareprodukten beitragen.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/04/11/erklaerung-clean-code/">Clean Code &#8211; Elegante Lösungen für effiziente und wartungsfreundliche Software</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/04/11/erklaerung-clean-code/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1398</post-id>	</item>
		<item>
		<title>Refactoring &#8211; Optimierung und Evolution für nachhaltigen Code</title>
		<link>https://ceosbay.com/2023/04/10/erklaerung-refactoring/</link>
					<comments>https://ceosbay.com/2023/04/10/erklaerung-refactoring/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Mon, 10 Apr 2023 09:15:17 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Aufwand]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[Entwicklungsumgebung]]></category>
		<category><![CDATA[Funktionalität]]></category>
		<category><![CDATA[HAL]]></category>
		<category><![CDATA[Inkonsistenz]]></category>
		<category><![CDATA[Inkonsistenzen]]></category>
		<category><![CDATA[Komplex]]></category>
		<category><![CDATA[Komplexität]]></category>
		<category><![CDATA[Lesbarkeit]]></category>
		<category><![CDATA[Modular]]></category>
		<category><![CDATA[Ops]]></category>
		<category><![CDATA[Optimal]]></category>
		<category><![CDATA[Optimierung]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Practices]]></category>
		<category><![CDATA[Praktisch]]></category>
		<category><![CDATA[Praxis]]></category>
		<category><![CDATA[Probleme]]></category>
		<category><![CDATA[Prozess]]></category>
		<category><![CDATA[Qualität]]></category>
		<category><![CDATA[Qualitätsstandards]]></category>
		<category><![CDATA[Refactor]]></category>
		<category><![CDATA[Schulden]]></category>
		<category><![CDATA[Sicherstellen]]></category>
		<category><![CDATA[Smell]]></category>
		<category><![CDATA[Smells]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Team]]></category>
		<category><![CDATA[Technik]]></category>
		<category><![CDATA[tests]]></category>
		<category><![CDATA[Verstand]]></category>
		<category><![CDATA[Verstehen]]></category>
		<category><![CDATA[Wartbarkeit]]></category>
		<category><![CDATA[Websiteentwicklung]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1357</guid>

					<description><![CDATA[<p>Refactoring ist eine kontinuierliche Praxis im Softwareentwicklungsprozess, die es ermöglicht, die Struktur und Lesbarkeit des Codes zu verbessern, ohne dessen Funktionalität zu verändern. Dieser Prozess ermöglicht es, den Code sauber, wartbar und skalierbar zu halten. &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/04/10/erklaerung-refactoring/">Refactoring &#8211; Optimierung und Evolution für nachhaltigen Code</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Refactoring ist eine kontinuierliche Praxis im Softwareentwicklungsprozess, die es ermöglicht, die Struktur und Lesbarkeit des Codes zu verbessern, ohne dessen Funktionalität zu verändern. Dieser Prozess ermöglicht es, den Code sauber, wartbar und skalierbar zu halten.</p>



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



<p>Der Begriff wurde zum ersten Mal in einer Arbeit von Ralph Johnson und William Opdyke 1990 gebraucht (Refactoring: An aid in designing application frameworks and evolving object-oriented systems. In: Proceedings of Symposion on Object-Oriented Programming Emphasizing Practical Applications (SOOPPA), September 1990). Opdyke promovierte 1992 zu dem Thema. Sie entwickelten die Idee einer Software-Refactory, die das Umgestalten (eben das Refactoring) von Computerprogrammen erleichtern sollte. Die unzutreffende Übersetzung Refaktorisierung stammt aus einer Verwechslung mit einer häufig zitierten Analogie, die ursprünglich nicht Begriffsinhalt war: Refactoring ist eine Art, ein Programm so zu modifizieren, dass man verborgene Strukturen offenlegt, ohne die Funktionalität zu ändern. Dies, so der (fälschliche) Analogieschluss, entspreche dem Vorgehen der Faktorisierung von Polynomen in der Mathematik. Bin aber kein Mathematiker 😉</p>



<h3 class="wp-block-heading">Warum ist Refactoring wichtig?</h3>



<ul class="wp-block-list">
<li><strong>Verbesserung der Code-Lesbarkeit</strong>: Lesbarkeit ist entscheidend, um den Code effizient zu warten und zu erweitern. Durch das Refactoring können Entwickler den Code vereinfachen, Duplikate entfernen und konsistente Benennungen und Formatierungen verwenden, um die Lesbarkeit zu verbessern.</li>



<li><strong>Reduzierung der technischen Schulden</strong>: Technische Schulden entstehen, wenn man die Software in Eile entwickelt, ohne auf Qualitätsstandards zu achten. Sie führen oft zu schwer zu wartendem und unzuverlässigem Code. Es hilft, technische Schulden zu reduzieren und verhindert, dass sie sich im Laufe der Zeit anhäufen.</li>



<li><strong>Optimierung der Code-Wartbarkeit</strong>: Refactoring hilft dabei, den Code modular und gut strukturiert zu halten, was die Wartung und Fehlerbehebung erleichtern kann.</li>



<li><strong>Verbesserung der Code-Performance</strong>: Durch das Entfernen von unnötigem Code und die Optimierung von Algorithmen kann Refactoring dazu beitragen, die Performance der Software zu steigern.</li>



<li><strong>Erleichterung der Teamarbeit</strong>: Ein sauberer und gut strukturierter Code ist leichter zu verstehen und ermöglicht eine effektivere Zusammenarbeit zwischen Entwicklern.</li>
</ul>



<h3 class="wp-block-heading">Strategien für effektives Refactoring</h3>



<ul class="wp-block-list">
<li><strong>Code Smells identifizieren</strong>: &#8222;Code Smells&#8220; sind Anzeichen dafür, dass man den Code möglicherweise verbessern muss. Beispiele sind lange Methoden, große Klassen, doppelter Code und unklare Benennungen. Entwickler sollten diese Anzeichen erkennen und entsprechende Maßnahmen ergreifen, um den Code zu verbessern.</li>



<li><strong>Schrittweise Verbesserungen vornehmen</strong>: Refactoring sollte schrittweise erfolgen, um den Code schrittweise zu verbessern und gleichzeitig die Funktionalität intakt zu halten.</li>



<li><strong>Automatisierte Tests verwenden</strong>: Um sicherzustellen, dass die Funktionalität nach dem Refactoring unverändert bleibt, ist es entscheidend, automatisierte Tests zu verwenden. Dies stellt sicher, dass Änderungen am Code keine unerwünschten Nebenwirkungen verursachen.</li>



<li><strong>Konsistente Coding-Standards einhalten</strong>: Ein konsistenter Codierungsstil erleichtert das Lesen und Verstehen des Codes. Es ist wichtig, dass das gesamte Team die gleichen Standards einhält, um Inkonsistenzen zu vermeiden.</li>



<li><strong>Regelmäßiges Refactoring betreiben</strong>: Man Refactoring als fortlaufenden Prozess betrachten, der in die tägliche Arbeit eines Entwicklers integriert ist. Regelmäßiges Refactoring hilft dabei, den Code kontinuierlich sauber und auf dem neuesten Stand zu halten, wodurch man die langfristige Wartbarkeit der Software verbessern kann. Außerdem hilft es dabei, den Code zu besser verstehen und tiefere Erkenntnisse über das Programmieren selbst zu erhalten.</li>
</ul>



<h3 class="wp-block-heading">Beliebte Refactoring-Techniken</h3>



<ol class="wp-block-list" type="1">
<li><strong>Extract Method</strong>: Wenn eine Methode zu lang oder zu komplex ist, kann sie in kleinere, gut definierte Methoden aufgeteilt werden, um die Lesbarkeit und Wartbarkeit des Codes zu verbessern.</li>



<li><strong>Rename Variable/Method/Class</strong>: Durch das Umbenennen von Variablen, Methoden und Klassen in klarere und aussagekräftigere Namen kann man den Code verständlicher und leichter pflegbar machen.</li>



<li><strong>Remove Duplication</strong>: Duplikate im Code können Wartungsprobleme verursachen und man sollte sie entfernen. Bei der Erkennung von Duplikaten können Entwickler allgemeine Funktionen extrahieren und wiederverwenden, um den Code zu straffen.</li>



<li><strong>Replace Conditional with Polymorphism</strong>: Anstatt mehrere bedingte Anweisungen zu verwenden, kann man Polymorphismus eingesetzen, um den Code besser zu strukturieren und die Lesbarkeit zu erhöhen.</li>



<li><strong>Encapsulate Field</strong>: Durch das Kapseln von Feldern in Klassen und die Bereitstellung von Zugriffs- und Mutationsmethoden kann man den Code modularer und besser wartbar machen.</li>
</ol>



<h3 class="wp-block-heading">Tools und Programme</h3>



<p>Es gibt eine Vielzahl von Tools und Programmen, die Entwicklern beim Refactoring helfen. Nachfolgend sind einige der gängigsten Tools für verschiedene Programmiersprachen (Einige davon habe ich bereits in diversen Beiträgen thematisiert. Hierzu einfach auf die jeweiligen Verlinkungen klicken oder die Suchfunktion verwenden 😉 ):</p>



<p>Integrated Development Environments (IDEs): Viele moderne IDEs bieten integrierte Refactoring-Unterstützung für verschiedene Programmiersprachen an. Einige der bekanntesten sind:</p>



<p>a. <a href="https://ceosbay.com/2023/03/10/erklaerung-intellij-idea/" target="_blank" rel="noreferrer noopener">JetBrains IntelliJ IDEA</a> (<a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a>, Kotlin, Scala, u.a.)</p>



<p>b. JetBrains PhpStorm (PHP)</p>



<p>c. JetBrains PyCharm (<a href="https://ceosbay.com/2022/12/20/erklaerung-python/" target="_blank" rel="noreferrer noopener">Python</a>)</p>



<p>d. JetBrains ReSharper (C# in Visual Studio)</p>



<p>e. Microsoft Visual Studio (C#, C++, VB.NET)</p>



<p>f. <a href="https://ceosbay.com/2023/03/19/erklaerung-eclipse/" target="_blank" rel="noreferrer noopener">Eclipse</a> (<a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a>)</p>



<p>g. Xcode (Swift, Objective-C)</p>



<p>Standalone-Tools: Es gibt auch eigenständige Refactoring-Tools, die man unabhängig von der IDE verwenden kann. Einige Beispiele sind:</p>



<p>a. JDeodorant (<a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a>)</p>



<p>b. SonarLint und SonarQube (<a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a>, <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>, TypeScript, u.a.)</p>



<p>c. JSLint und ESLint (<a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>)</p>



<p>d. RuboCop (<a href="https://ceosbay.com/2022/12/19/erklaerung-ruby/" target="_blank" rel="noreferrer noopener">Ruby</a>)</p>



<p>e. Clang-Tidy (C++, Objective-C)</p>



<p>Code-Editor-Erweiterungen: Viele Code-Editoren, wie Visual Studio Code und Sublime Text, verfügen über Erweiterungen, die Refactoring-Unterstützung für verschiedene Programmiersprachen bieten. Einige dieser Erweiterungen sind:</p>



<p>a. Visual Studio Code Refactoring Extensions (z.B. <a href="https://ceosbay.com/2022/12/20/erklaerung-python/" target="_blank" rel="noreferrer noopener">Python</a>, <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>, TypeScript, PHP, <a href="https://ceosbay.com/2022/12/19/erklaerung-ruby/" target="_blank" rel="noreferrer noopener">Ruby</a>, C#)</p>



<p>b. Sublime Text Refactoring Plugins (z.B. Anaconda für <a href="https://ceosbay.com/2022/12/20/erklaerung-python/" target="_blank" rel="noreferrer noopener">Python</a>, JsPrettier für <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>)</p>



<p>Es ist wichtig zu beachten, dass jedes Tool seine eigenen Stärken und Schwächen hat. Ein Entwickler sollte die verfügbaren Optionen für seine Programmiersprache und seinen Arbeitsablauf sorgfältig prüfen, um das am besten geeignete Refactoring-Tool zu finden.</p>



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



<p>Refactoring ist ein wesentlicher Bestandteil des Softwareentwicklungsprozesses, der es ermöglicht, den Code sauber, lesbar und wartbar zu halten. Durch das Identifizieren von &#8222;Code Smells&#8220;, die Anwendung bewährter Techniken und das kontinuierliche Integrieren von Refactoring in den Arbeitsablauf können Entwickler qualitativ hochwertigen Code schreiben, der leicht zu verstehen und zu erweitern ist.</p>



<p>Die Investition in regelmäßiges Refactoring zahlt sich langfristig aus, indem sie dazu beiträgt, die technischen Schulden zu reduzieren und die Zusammenarbeit im Team zu verbessern. Der Schlüssel zum erfolgreichen Refactoring liegt in der Kombination aus automatisierten Tests, konsistenten Codierungsstandards und einem proaktiven Ansatz zur Code-Optimierung. Durch die Priorisierung von Refactoring in der Softwareentwicklung können Entwickler sicherstellen, dass ihre Projekte skalierbar und zukunftssicher sind.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/04/10/erklaerung-refactoring/">Refactoring &#8211; Optimierung und Evolution für nachhaltigen Code</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/04/10/erklaerung-refactoring/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1357</post-id>	</item>
		<item>
		<title>BDD &#8211; Behavior Driven Development &#8211; Software, die den Anforderungen der Kunden entspricht</title>
		<link>https://ceosbay.com/2023/03/12/erklaerung-behavior-driven-development/</link>
					<comments>https://ceosbay.com/2023/03/12/erklaerung-behavior-driven-development/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Sun, 12 Mar 2023 19:18:20 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Big-Data]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Automatisierung]]></category>
		<category><![CDATA[BDD]]></category>
		<category><![CDATA[Behavior]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Domain]]></category>
		<category><![CDATA[Driven]]></category>
		<category><![CDATA[Einsatz]]></category>
		<category><![CDATA[Entwickeln]]></category>
		<category><![CDATA[Language]]></category>
		<category><![CDATA[Mock]]></category>
		<category><![CDATA[Ops]]></category>
		<category><![CDATA[Praxis]]></category>
		<category><![CDATA[Problemraum]]></category>
		<category><![CDATA[Skript]]></category>
		<category><![CDATA[Sprache]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Überprüfung]]></category>
		<category><![CDATA[Werkzeuge]]></category>
		<category><![CDATA[Zusammenarbeit]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1096</guid>

					<description><![CDATA[<p>In der Softwaretechnik ist die verhaltensorientierte Entwicklung (BDD = Behavior Driven Development) ein agiler Softwareentwicklungsprozess. Sie optimiert die Zusammenarbeit zwischen Stakeholder, Entwickler, Qualitätssicherungsexperten und Kundenvertretern in einem Softwareprojekt. Darüber hinaus ermutigt es Teams, Gespräche und &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/12/erklaerung-behavior-driven-development/">BDD &#8211; Behavior Driven Development &#8211; Software, die den Anforderungen der Kunden entspricht</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In der Softwaretechnik ist die verhaltensorientierte Entwicklung (BDD = Behavior Driven Development) ein agiler Softwareentwicklungsprozess. Sie optimiert die Zusammenarbeit zwischen Stakeholder, Entwickler, Qualitätssicherungsexperten und Kundenvertretern in einem Softwareprojekt. Darüber hinaus ermutigt es Teams, Gespräche und konkrete Beispiele zu nutzen, um ein gemeinsames Verständnis dafür zu entwickeln, wie sich eine Anwendung verhalten soll. Es ist aus der testgetriebenen Entwicklung (TDD = Test Driven Development) hervorgegangen.</p>



<p>Die verhaltensgetriebene Entwicklung kombiniert die allgemeinen Techniken und Prinzipien von TDD. Unter Anderem auch mit Ideen aus dem bereichsgetriebenen Design, der objektorientierten Analyse und dem objektorientierten Design, um Softwareentwicklungs- und Managementteams gemeinsame Tools und einen gemeinsamen Prozess für die Zusammenarbeit bei der Softwareentwicklung zur Verfügung zu stellen.</p>



<p>So wie man die Softwareentwicklung sowohl von geschäftlichen Interessen als auch von technischem Verständnis voranbringt, setzt die BDD-Praxis den Einsatz spezieller Softwaretools zur Unterstützung des Entwicklungsprozesses voraus. Obwohl man diese Tools oft speziell für den Einsatz in BDD-Projekten entwickelt, kann man sie als spezialisierte Formen der Tools zur Unterstützung der testgetriebenen Entwicklung betrachten. Diese Tools dienen dazu, die allgegenwärtige Sprache, die ein zentrales Thema von BDD ist, zu automatisieren.</p>



<p>BDD wird weitestgehend durch die Verwendung einer einfachen domänenspezifischen Sprache (DSL = Domain-Specific-Language) mit natürlichen sprachlichen Konstrukten (z.B. deutsch- oder englischsprachige Sätze) erleichtert, mit denen man das Verhalten und die erwarteten Ergebnisse ausdrückt. Testskripte sind seit langem eine beliebte DSLs mit unterschiedlichem Grad an Raffinessen. BDD gilt als effektive technische Praxis, insbesondere wenn der &#8222;Problemraum&#8220; des zu lösenden Geschäftsproblems komplex ist.</p>



<h3 class="wp-block-heading">Wie funktioniert BDD?</h3>



<p>Im Grunde genommen besteht Behavior Driven Development aus den folgenden Elementen:</p>



<ul class="wp-block-list">
<li>Starke Einbeziehung der Stakeholder in den Prozess durch sogenannte Outside-In-Softwareentwicklung. Diese ist fokussiert auf die Erfüllung der Anforderungen der Auftraggeber, der Enduser, des Betriebs und von Insidern.</li>



<li>Textuelle Beschreibung des Verhaltens der Software und von Softwareteilen durch Fallbeispiele. Verwendung genormter Schlüsselwörter zur Markierung von Vorbedingungen, des externen Verhaltens und des gewünschten Verhaltens der Software.</li>



<li>Automatisierung der Fallbeispiele unter Verwendung von Mock-Objekten zur Simulation von noch nicht implementierten Softwareteilen.</li>



<li>Sukzessive Implementierung der Softwareteile und dem Ersetzen der Mock-Objekte.</li>
</ul>



<p>Dadurch entsteht eine automatisiert prüfbare Beschreibung der zu entwickelnden Software, die jederzeit die Richtigkeit der bereits umgesetzten Teile der Software überprüfen lässt.</p>



<p>Wichtig ist hierbei, dass die Beschreibung nicht die Implementierung der Anwendung vorgibt, sondern den Zweck der Anwendung in Form von Anwendungsbeispielen.</p>



<p>Beim Behavior Driven Development werden die Anforderungen an die Software mittels Beispiele, sogenannten Szenarien beschrieben. Üblicherweise wird für die Beschreibung dieser Szenarien ein bestimmtes Format vorgegeben, damit später die automatisierte Überprüfung der Szenarien einfach umzusetzen ist. Eines dieser Formate ist die Beschreibungssprache „Gherkin“. Man kann es auch in verschiedenen Behavior-Driven-Development-Implementierungen verwenden. Diese Sprache gibt es sowohl mit englischen Schlüsselwörtern (Given, When, Then, And, …), deutschen (Gegeben, Wenn, Dann, Und, …) und in weiteren Sprachen. Mehr dazu in meinem Beitrag über <a href="https://ceosbay.com/2023/03/11/erklaerung-cucumber/" target="_blank" rel="noreferrer noopener">Cucumber bzw. Gherkin</a>.</p>



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



<p>Behavior Driven Development (BDD) ist eine agile Softwareentwicklungs-Methode, die sich auf die Zusammenarbeit zwischen Entwicklern, Business Analysten und Kunden konzentriert, um sicherzustellen, dass die erstellte Software den Bedürfnissen der Anwender entspricht. BDD ist eine Erweiterung des Test Driven Developments (TDD) und legt den Schwerpunkt auf die Definition von klaren, verständlichen Anforderungen und Tests, die das Verhalten der Anwendung aus der Perspektive des Nutzers beschreiben. Durch die Verwendung von gemeinsamer Sprache und konkreten Beispielen kann man die Kommunikation zwischen den Stakeholdern verbessern und Missverständnisse vermeiden. Das Ergebnis ist eine höhere Qualität der Software, eine schnellere Markteinführung und eine höhere Kundenzufriedenheit.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/12/erklaerung-behavior-driven-development/">BDD &#8211; Behavior Driven Development &#8211; Software, die den Anforderungen der Kunden entspricht</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/03/12/erklaerung-behavior-driven-development/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1096</post-id>	</item>
		<item>
		<title>CSS &#8211; Die Sprache für ansprechendes Webdesign und kreative Freiheit</title>
		<link>https://ceosbay.com/2023/02/27/erklaerung-css/</link>
					<comments>https://ceosbay.com/2023/02/27/erklaerung-css/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Mon, 27 Feb 2023 18:17:00 +0000</pubDate>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Bildschirm]]></category>
		<category><![CDATA[Bildschirmgrößen]]></category>
		<category><![CDATA[Border]]></category>
		<category><![CDATA[Cascading]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS1]]></category>
		<category><![CDATA[CSS2]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Deklaration]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[Devices]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Entwickeln]]></category>
		<category><![CDATA[Font]]></category>
		<category><![CDATA[Gerät]]></category>
		<category><![CDATA[Geräteeigenschaften]]></category>
		<category><![CDATA[Gestaltung]]></category>
		<category><![CDATA[Handy]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[Inhalt]]></category>
		<category><![CDATA[Konzept]]></category>
		<category><![CDATA[Konzepte]]></category>
		<category><![CDATA[Margin]]></category>
		<category><![CDATA[Padding]]></category>
		<category><![CDATA[Präsentation]]></category>
		<category><![CDATA[Praxis]]></category>
		<category><![CDATA[Responsive]]></category>
		<category><![CDATA[Selektor]]></category>
		<category><![CDATA[Sheets]]></category>
		<category><![CDATA[Size]]></category>
		<category><![CDATA[Smartphones]]></category>
		<category><![CDATA[Style]]></category>
		<category><![CDATA[Syntax]]></category>
		<category><![CDATA[Technologie]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Web-Entwicklung]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[Webseite]]></category>
		<category><![CDATA[Webseiten]]></category>
		<category><![CDATA[Websites]]></category>
		<category><![CDATA[www]]></category>
		<category><![CDATA[www.]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1388</guid>

					<description><![CDATA[<p>Cascading Style Sheets, besser bekannt als CSS, ist eine entscheidende Technologie zur Gestaltung und Präsentation von Inhalten im Web. Seit der Einführung im Jahr 1996 hat CSS die Art und Weise revolutioniert, wie Entwickler das &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/02/27/erklaerung-css/">CSS &#8211; Die Sprache für ansprechendes Webdesign und kreative Freiheit</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Cascading Style Sheets, besser bekannt als CSS, ist eine entscheidende Technologie zur Gestaltung und Präsentation von Inhalten im Web. Seit der Einführung im Jahr 1996 hat CSS die Art und Weise revolutioniert, wie Entwickler das Erscheinungsbild von Websites und Webanwendungen gestalten.</p>



<h3 class="wp-block-heading">Kurze Zeitreise</h3>



<p>CSS (Cascading Style Sheets) entstand in den 90er Jahren als Reaktion auf die wachsende Komplexität des Webdesigns und das Bedürfnis, eine klarere Trennung zwischen Inhalt (<a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">HTML</a>) und Gestaltung (CSS) zu erreichen. Bis dahin verwendeten Webdesigner und Entwickler hauptsächlich <a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">HTML</a>-Tags und -Attribute, um das Design einer Webseite zu kontrollieren. Diese Praxis führte jedoch zu unübersichtlichem und schwer wartbarem Code und schränkte die kreativen Möglichkeiten ein.</p>



<p>Der norwegische Informatiker und Web-Pionier Håkon Wium Lie ist der Hauptentwickler von Cascading Style Sheets. Zusammen mit dem belgischen Informatiker Bert Bos schlug er 1994 die Idee von CSS vor. Lie arbeitete zu dieser Zeit am CERN (der Europäischen Organisation für Kernforschung) und war am Projekt beteiligt, das zum ersten Webbrowser führte, dem WorldWideWeb (später umbenannt in Nexus). Lie und Bos erkannten, dass man eine Lösung für das Design-Problem finden musste, und entwickelten das Konzept der Cascading Style Sheets.</p>



<p>Später übernahm World Wide Web Consortium (W3C) Cascading Style Sheets. Eine internationale Organisation, die Webstandards entwickelt und pflegt. Das W3C veröffentlichte CSS Level 1 (CSS1) im Jahr 1996. Relativ schnell nahm man es als Webstandard auf. Seitdem hat sich Cascading Style Sheets stetig weiterentwickelt und umfasst mittlerweile mehrere Versionen und Module, die unterschiedliche Aspekte des Webdesigns abdecken.</p>



<h3 class="wp-block-heading">Die Syntax von CSS</h3>



<p>Ein CSS besteht aus Regelsätzen, die jeweils aus einem Selektor und einer Deklaration bestehen. Der Selektor bestimmt, auf welche Elemente man die Stilregeln anwendet, während die Deklaration eine oder mehrere Eigenschaften und deren Werte definiert, die man auf die ausgewählten Elemente angewenden möchte.</p>



<h4 class="wp-block-heading">Beispiel:</h4>



<pre class="wp-block-code"><code>h1 {
  color: red;
  font-size: 24px;
}</code></pre>



<h3 class="wp-block-heading">Selektoren</h3>



<p>Selektoren sind die grundlegenden Bausteine eines CSS-Stylesheets. Sie bestimmen, welche HTML-Elemente von den definierten Stilregeln betroffen sind. Es gibt verschiedene Arten von Selektoren, wie z.B. Element-Selektoren, Klassen-Selektoren, ID-Selektoren und Pseudoklassen.</p>



<h3 class="wp-block-heading">Das Box-Modell von CSS</h3>



<p>Eines der grundlegenden Konzepte in CSS ist das Box-Modell. Die Darstellung aller Elemente auf einer Webseite erfolgt als rechteckige Box.</p>



<h4 class="wp-block-heading">Diese bestehen aus den folgenden vier Bereichen:</h4>



<ol class="wp-block-list" type="1">
<li>Inhalt</li>



<li>Padding</li>



<li>Border</li>



<li>Margin.</li>
</ol>



<p>Durch die Manipulation dieser Bereiche kann man das Layout und die Anordnung von Elementen auf der Webseite steuern.</p>



<h3 class="wp-block-heading">Responsive Webdesign</h3>



<p>Das Aufkommen von mobilen Geräten hat die Wichtigkeit von Responsive Webdesign signifikant erhöht. CSS bietet verschiedene Techniken, um Websites auf unterschiedlichen Bildschirmgrößen und Geräten optimal darzustellen. Die bekannteste Technik ist die Verwendung von Media Queries, die es ermöglichen, verschiedene Cascading Style Sheet Regeln abhängig von der Bildschirmgröße oder anderen Geräteeigenschaften anzuwenden.</p>



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



<p>CSS ist immer noch ein unverzichtbares Werkzeug für Webdesigner und Entwickler. Durch das Verständnis der Grundlagen und der zugrundeliegenden Konzepte kann man das Aussehen und die Benutzererfahrung von Webseiten und Webanwendungen drastisch verbessern. Die Flexibilität und Leistungsfähigkeit von CSS eröffnen eine Welt der kreativen Möglichkeiten und helfen dabei, das Web nach den eigenen Vorstellungen zu gestalten.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/02/27/erklaerung-css/">CSS &#8211; Die Sprache für ansprechendes Webdesign und kreative Freiheit</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/02/27/erklaerung-css/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1388</post-id>	</item>
	</channel>
</rss>
