<?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>Browser Archive - CEOsBay</title>
	<atom:link href="https://ceosbay.com/tag/browser/feed/" rel="self" type="application/rss+xml" />
	<link>https://ceosbay.com/tag/browser/</link>
	<description>It&#039;s all about Tech</description>
	<lastBuildDate>Wed, 02 Apr 2025 06:17:04 +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>Browser Archive - CEOsBay</title>
	<link>https://ceosbay.com/tag/browser/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">211828771</site>	<item>
		<title>TLS &#8211; So funktioniert sichere Datenübertragung</title>
		<link>https://ceosbay.com/2025/03/29/tls-so-funktioniert-sichere-datenuebertragung/</link>
					<comments>https://ceosbay.com/2025/03/29/tls-so-funktioniert-sichere-datenuebertragung/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Sat, 29 Mar 2025 14:11:35 +0000</pubDate>
				<category><![CDATA[Cybersecurity]]></category>
		<category><![CDATA[Netzwerk]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Authentifizierung]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[Datenübertragung]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[HTTPS-Zertifikat]]></category>
		<category><![CDATA[Integrität]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[IT-Sicherheit]]></category>
		<category><![CDATA[Netzwerksicherheit]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[SSL-Nachfolger]]></category>
		<category><![CDATA[TLS]]></category>
		<category><![CDATA[Transport Layer Security]]></category>
		<category><![CDATA[Verschlüsselung]]></category>
		<category><![CDATA[Vertraulichkeit]]></category>
		<category><![CDATA[Webverschlüsselung]]></category>
		<category><![CDATA[Zertifikat]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=5592</guid>

					<description><![CDATA[<p>In einer digitalen Welt, in der wir täglich sensible Daten online übertragen – sei es beim Online-Banking, beim Einkaufen oder einfach nur beim Login in ein soziales Netzwerk – spielt Datensicherheit eine entscheidende Rolle. Genau hier kommt TLS ins &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2025/03/29/tls-so-funktioniert-sichere-datenuebertragung/">TLS &#8211; So funktioniert sichere Datenübertragung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In einer digitalen Welt, in der wir täglich sensible Daten online übertragen – sei es beim Online-Banking, beim Einkaufen oder einfach nur beim Login in ein soziales Netzwerk – spielt <strong>Datensicherheit</strong> eine entscheidende Rolle. Genau hier kommt <strong>TLS</strong> ins Spiel.</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="871" height="581" src="https://i0.wp.com/ceosbay.com/wp-content/uploads/2025/04/TLS.jpg?resize=871%2C581&#038;ssl=1" alt="TLS" class="wp-image-5603" srcset="https://i0.wp.com/ceosbay.com/wp-content/uploads/2025/04/TLS.jpg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/ceosbay.com/wp-content/uploads/2025/04/TLS.jpg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/ceosbay.com/wp-content/uploads/2025/04/TLS.jpg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/ceosbay.com/wp-content/uploads/2025/04/TLS.jpg?resize=1070%2C713&amp;ssl=1 1070w, https://i0.wp.com/ceosbay.com/wp-content/uploads/2025/04/TLS.jpg?w=1536&amp;ssl=1 1536w" sizes="(max-width: 871px) 100vw, 871px" /></figure>



<h2 class="wp-block-heading">TLS – Die Grundlage sicherer Kommunikation im Internet</h2>



<p><strong>TLS</strong> steht für <strong>Transport Layer Security</strong> und ist ein <a href="https://ceosbay.com/2023/11/13/kryptographie-verschluesseln-schuetzen-und-verstehen/">kryptografisches</a> Protokoll, das für sichere Datenübertragungen im Internet sorgt. Es schützt Informationen, indem es sie <strong>verschlüsselt</strong>, bevor sie über das Netz gesendet werden. Das bedeutet: Selbst wenn jemand den Datenverkehr abfängt, kann er die Inhalte nicht einfach lesen.</p>



<p>TLS ist der Nachfolger von <a href="https://ceosbay.com/2023/08/30/ssl-geschichte-typen-und-einrichtung/">SSL</a> (<a href="https://ceosbay.com/2023/08/30/ssl-geschichte-typen-und-einrichtung/">Secure Sockets Layer</a>), das heute als veraltet und unsicher gilt. Im Alltag ist oft noch von „<a href="https://ceosbay.com/2023/08/30/ssl-geschichte-typen-und-einrichtung/">SSL</a>-Zertifikaten“ die Rede, gemeint sind aber meist TLS-Zertifikate.</p>



<h2 class="wp-block-heading">So funktioniert TLS in der Praxis</h2>



<p>Stell Dir vor, Du rufst eine Website auf, deren Adresse mit <strong><a href="https://ceosbay.com/2023/07/04/https-und-https-eine-reise-zur-web-sicherheit/">https://</a></strong> beginnt. Dieses „s“ steht für „secure“ – und zeigt Dir, dass TLS im Hintergrund aktiv ist. Beim Verbindungsaufbau zwischen Deinem Browser und dem Webserver passiert Folgendes:</p>



<ol class="wp-block-list">
<li><strong>Handshake</strong>: Dein Browser und der <a href="https://ceosbay.com/2023/08/29/server-evolution-typen-und-best-practices-fuer-den-aufbau/">Server</a> tauschen sich aus, um eine gemeinsame „Geheimsprache“ festzulegen – also einen Verschlüsselungsalgorithmus und einen Schlüssel.</li>



<li><strong>Authentifizierung</strong>: Der Server weist sich mit einem digitalen Zertifikat aus (meist von einer vertrauenswürdigen Zertifizierungsstelle wie Let’s Encrypt, DigiCert usw.).</li>



<li><strong>Sitzungsschlüssel</strong>: Es wird ein temporärer Sitzungsschlüssel erstellt, der für die Dauer der Verbindung verwendet wird.</li>



<li><strong>Verschlüsselte Kommunikation</strong>: Alle weiteren Daten werden verschlüsselt übertragen und sind für Dritte nicht einsehbar.</li>
</ol>



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



<ul class="wp-block-list">
<li>🛡️ <strong>Vertraulichkeit</strong>: Nur Du und der <a href="https://ceosbay.com/2023/08/29/server-evolution-typen-und-best-practices-fuer-den-aufbau/">Server</a> können die Daten lesen.</li>



<li>🔐 <strong>Integrität</strong>: Es wird sichergestellt, dass unterwegs nichts verändert wurde.</li>



<li>✅ <strong>Authentizität</strong>: Du weißt, dass Du mit dem echten <a href="https://ceosbay.com/2023/08/29/server-evolution-typen-und-best-practices-fuer-den-aufbau/">Server</a> kommunizierst – nicht mit einem Fake.</li>
</ul>



<h2 class="wp-block-heading">TLS-Zertifikate: Mehr als nur ein Schloss im Browser</h2>



<p>Es funktioniert nur mit einem gültigen <strong>Zertifikat</strong>, das auf dem Server installiert ist. Dein Browser prüft dieses Zertifikat und zeigt Dir im besten Fall ein kleines Schloss-Symbol neben der <a href="https://ceosbay.com/2023/08/28/url-von-ihrer-entstehung-bis-zur-modernen-optimierung/">URL</a> – ein Zeichen für Vertrauen und Sicherheit.</p>



<p>Viele Hosting-Anbieter stellen inzwischen kostenlose TLS-Zertifikate bereit, zum Beispiel über&nbsp;<strong>Let’s Encrypt</strong>. Auch Google belohnt verschlüsselte Seiten mit besseren Platzierungen in den Suchergebnissen – ein weiterer Pluspunkt.</p>



<h2 class="wp-block-heading">Welche TLS-Version ist die richtige?</h2>



<p>Der aktuell sicherste Standard ist<strong> 1.3</strong>. Ältere Versionen wie 1.0 oder 1.1 gelten als unsicher und werden von modernen Browsern nicht mehr unterstützt. Auch 1.2 ist noch weit verbreitet und gilt als sicher – aber wenn möglich, solltest Du auf TLS 1.3 setzen.</p>



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



<p>TLS ist der stille Held hinter fast jeder sicheren Website. Ob Du Deine eigene Seite betreibst oder einfach nur sicher surfen willst – <strong>E</strong>s<strong> schützt Deine Daten</strong> und sorgt dafür, dass niemand mitliest oder manipuliert.</p>



<p>Wenn Du das nächste Mal das kleine Schloss in Deinem Browser siehst, weißt Du: Hier läuft TLS – und Du bist auf der sicheren Seite.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2025/03/29/tls-so-funktioniert-sichere-datenuebertragung/">TLS &#8211; So funktioniert sichere Datenübertragung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2025/03/29/tls-so-funktioniert-sichere-datenuebertragung/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5592</post-id>	</item>
		<item>
		<title>Jasmine &#8211; JavaScript Testautomatisierung</title>
		<link>https://ceosbay.com/2023/04/16/erklaerung-jasmine/</link>
					<comments>https://ceosbay.com/2023/04/16/erklaerung-jasmine/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Sun, 16 Apr 2023 06:23:35 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Automatisierung]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Anwendungen]]></category>
		<category><![CDATA[Behavior]]></category>
		<category><![CDATA[Best]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CI]]></category>
		<category><![CDATA[CI/CD]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Ent-to-End]]></category>
		<category><![CDATA[Flexibilität]]></category>
		<category><![CDATA[Funktionsweise]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Integrationstests]]></category>
		<category><![CDATA[Jasmine]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Karma]]></category>
		<category><![CDATA[Konstrukt]]></category>
		<category><![CDATA[Mocking]]></category>
		<category><![CDATA[Mocks]]></category>
		<category><![CDATA[Objekt]]></category>
		<category><![CDATA[Objekte]]></category>
		<category><![CDATA[Open-Source]]></category>
		<category><![CDATA[Ops]]></category>
		<category><![CDATA[Practice]]></category>
		<category><![CDATA[Prozess]]></category>
		<category><![CDATA[Prozesse]]></category>
		<category><![CDATA[Qualität]]></category>
		<category><![CDATA[Qualitätsmanagement]]></category>
		<category><![CDATA[Source]]></category>
		<category><![CDATA[Spec]]></category>
		<category><![CDATA[Specs]]></category>
		<category><![CDATA[Spy]]></category>
		<category><![CDATA[spyOn]]></category>
		<category><![CDATA[Struktur]]></category>
		<category><![CDATA[Strukturieren]]></category>
		<category><![CDATA[Suite]]></category>
		<category><![CDATA[Syntax]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Testabdeckung]]></category>
		<category><![CDATA[Testbeschreibung]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Unit]]></category>
		<category><![CDATA[Vorteile]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1483</guid>

					<description><![CDATA[<p>Die moderne Softwareentwicklung hat eine Vielzahl von Werkzeugen und Technologien, um Entwicklern bei der Gestaltung und Implementierung robuster Anwendungen zu helfen. Eines dieser Werkzeuge, dass ich in den letzten Tagen auf GitHub entdeckt habe, ist &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/04/16/erklaerung-jasmine/">Jasmine &#8211; JavaScript Testautomatisierung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Die moderne Softwareentwicklung hat eine Vielzahl von Werkzeugen und Technologien, um Entwicklern bei der Gestaltung und Implementierung robuster Anwendungen zu helfen. Eines dieser Werkzeuge, dass ich in den letzten Tagen auf <a href="https://ceosbay.com/2022/11/19/erklaerung-github/" target="_blank" rel="noreferrer noopener">GitHub</a> entdeckt habe, ist <a href="https://jasmine.github.io" target="_blank" rel="noreferrer noopener">Jasmine</a>. Es ist ein bekanntes <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> zur Testautomatisierung für <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>. In diesem Blogbeitrag schaue ich mir an, was Jasmine ist, wie es funktioniert und welche Vorteile es bietet, wenn es um das Testen von <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>-Anwendungen geht.</p>



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



<p>Jasmine ist ein beliebtes Open-Source-<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> für <a href="https://ceosbay.com/2023/03/12/erklaerung-behavior-driven-development/" target="_blank" rel="noreferrer noopener">Behavior-Driven Devel</a><a href="https://ceosbay.com/2023/03/12/erklaerung-behavior-driven-development/">opment</a> (<a href="https://ceosbay.com/2023/03/12/erklaerung-behavior-driven-development/" target="_blank" rel="noreferrer noopener">BDD</a>) Tests in <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>. Man verwendet es hauptsächlich, um das Verhalten von <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>-Code durch das Schreiben von Test-Spezifikationen zu überprüfen. Jasmine bietet eine saubere, leicht verständliche Syntax und ermöglicht Entwicklern, ihre Tests unabhängig von ihrer Implementierung auszuführen. Dadurch können sie schnell und effizient sicherstellen, dass ihr Code wie erwartet funktioniert.</p>



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



<ul class="wp-block-list">
<li><strong>Einfachheit</strong>: Man hat Jasmine entwickelt, um leicht verständlich und zugänglich für Entwickler zu sein. Die Test-Syntax ist klar und einfach, sodass selbst Entwickler, die neu in der Testautomatisierung sind, schnell damit arbeiten können.</li>



<li><strong>Unabhängigkeit</strong>: Jasmine ist unabhängig von anderen <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>&#8211;<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Frameworks</a>, Browsern und DOM-Manipulationsbibliotheken, was bedeutet, dass man es praktisch jedem <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>-Projekt verwenden kann, unabhängig von der verwendeten Technologie.</li>



<li><strong>Flexibilität</strong>: Entwickler können Jasmine für Unit-Tests, Integrationstests und sogar für End-to-End-Tests verwenden. Dies gibt ihnen die Möglichkeit, das gesamte Verhalten ihrer Anwendung mit einem einzigen Tool abzudecken.</li>
</ul>



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



<p>Jasmine basiert auf einer Hierarchie von Suites und Specs. Suites sind Gruppen von verwandten Tests, während Specs einzelne Testfälle sind. Diese Hierarchie ermöglicht es Entwicklern, ihre Tests klar zu strukturieren und den Code leicht zu organisieren.</p>



<p>Es verwendet das &#8222;describe&#8220;-Konstrukt, um Test-Suites zu definieren. Jede Suite kann mehrere Test-Spezifikationen (Specs) enthalten, die mit dem &#8222;it&#8220;-Konstrukt definiert werden. Diese Specs enthalten Erwartungen (Expectations) in Bezug auf das zu testende Verhalten des Codes.</p>



<h4 class="wp-block-heading">Ein einfaches Beispiel für eine Jasmine Test-Suite sieht wie folgt aus:</h4>



<pre class="wp-block-code"><code>describe("A suite is just a function", function() {
  let a;

  it("and so is a spec", function() {
    a = true;

    expect(a).toBe(true);
  });
});</code></pre>



<p>oder</p>



<pre class="wp-block-code"><code>describe('Array', () =&gt; {
  describe('#indexOf()', () =&gt; {
    it('sollte -1 zurückgeben, wenn der Wert nicht im Array vorhanden ist', () =&gt; {
      expect(&#91;1, 2, 3].indexOf(4)).toBe(-1);
    });
  });
});</code></pre>



<h3 class="wp-block-heading">Integration in die Softwareentwicklung</h3>



<p>Man kann Jasmine problemlos in moderne <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>-Projekte und Build-Tools integrieren. Mit Integrationen für Tools wie Grunt, Gulp und Webpack lässt es sich nahtlos in bestehende Entwicklungsprozesse einfügen. Darüber hinaus gibt es auch Jasmine-Plugins für gängige Entwicklungsumgebungen wie Visual Studio Code oder <a href="https://ceosbay.com/2023/03/10/erklaerung-intellij-idea/" target="_blank" rel="noreferrer noopener">IntelliJ</a>, die das Schreiben und Ausführen von Tests noch einfacher und bequemer gestalten.</p>



<p>Man kann es auch mit anderen Testing-Tools und Libraries kombinieren, um noch umfassendere Testlösungen zu schaffen. Beispielsweise kann man es mit Karma (einem <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>-Test-Runner) verwenden, um Tests in verschiedenen Browsern auszuführen, oder mit Protractor für End-to-End-Tests in Angular-Anwendungen.</p>



<h3 class="wp-block-heading">Best Practices für Jasmine-Tests</h3>



<p>Um das Beste aus Jasmine herauszuholen und effektive Tests zu erstellen, sind hier einige bewährte Vorgehensweisen:</p>



<ul class="wp-block-list">
<li><strong>Klare Testbeschreibungen</strong>: Man sollte aussagekräftige und präzise Beschreibungen für Suites und Specs verwenden. Dies erleichtert das Verständnis des Testzwecks und die Identifizierung von Fehlern.</li>



<li><strong>Kleine, fokussierte Tests</strong>: Es ist ratsam, Tests zu schreiben, die nur eine Funktion oder ein Verhalten testen. Dies erleichtert das Auffinden und Beheben von Fehlern, da man dadurch genau im Blick behält, welcher Teil des Codes betroffen ist.</li>



<li><strong>Testabdeckung</strong>: Man sollte sicherstellen, dass man eine ausreichende Testabdeckung für den Code hat. Dies bedeutet, dass man alle wichtigen Funktionen und Szenarien in den Tests berücksichtigt.</li>



<li><strong>Mocking und Spies</strong>: Es ist zu empfehlen, Mock-Objekte und Spies zu verwenden, um externe Abhängigkeiten zu isolieren und den Testfokus auf den zu testenden Code zu richten. Jasmine bietet dafür eingebaute Funktionen wie createSpy und spyOn.</li>



<li><strong>Regelmäßige Testausführung</strong>: Man sollte die Tests regelmäßig ausführen, um sicherzustellen, dass Änderungen im Code nicht zu unerwarteten Fehlern führen. Daher ist es ratsam, Jasmine in den <a href="https://ceosbay.com/2023/04/14/erklaerung-ci-cd/" target="_blank" rel="noreferrer noopener">Continuous Integration (CI) bzw. Continuous Deployment</a> (<a href="https://ceosbay.com/2023/04/14/erklaerung-ci-cd/" target="_blank" rel="noreferrer noopener">CI/CD</a>) Prozess integrieren, um automatisch Tests auszuführen, sobald man Codeänderungen vornimmt.</li>
</ul>



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



<p>Jasmine ist ein leistungsstarkes und vielseitiges <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> für das Testen von <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>-Anwendungen. Mit seiner klaren Syntax, Flexibilität und Integration in moderne Entwicklungsprozesse ist es ein unverzichtbares Werkzeug für jeden <a href="https://ceosbay.com/2022/11/12/javascript/">JavaScript</a>-Entwickler. Durch die Befolgung der Best Practices und die regelmäßige Ausführung von Tests können Entwickler sicherstellen, dass ihr Code zuverlässig und fehlerfrei funktioniert. Insgesamt trägt Jasmine dazu bei, die Qualität von <a href="https://ceosbay.com/2022/11/12/javascript/" target="_blank" rel="noreferrer noopener">JavaScript</a>-Anwendungen zu verbessern und die Entwicklungszeit zu reduzieren.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/04/16/erklaerung-jasmine/">Jasmine &#8211; JavaScript Testautomatisierung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/04/16/erklaerung-jasmine/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1483</post-id>	</item>
		<item>
		<title>RSS &#8211; Immer auf dem Laufenden bleiben</title>
		<link>https://ceosbay.com/2022/12/28/erklaerung-rss/</link>
					<comments>https://ceosbay.com/2022/12/28/erklaerung-rss/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Wed, 28 Dec 2022 19:00:00 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Soziale Medien]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[2000]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[Dev Ops]]></category>
		<category><![CDATA[E-Mail]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Feeds]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Nachrichten]]></category>
		<category><![CDATA[Netscape]]></category>
		<category><![CDATA[Objekt]]></category>
		<category><![CDATA[Parsing]]></category>
		<category><![CDATA[rdf]]></category>
		<category><![CDATA[Reader]]></category>
		<category><![CDATA[Rich Site Summary]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[RSS Rich]]></category>
		<category><![CDATA[Rss-Feeds]]></category>
		<category><![CDATA[Standard]]></category>
		<category><![CDATA[Summary]]></category>
		<category><![CDATA[Syndikat]]></category>
		<category><![CDATA[Vlog]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Websites]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[www]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1077</guid>

					<description><![CDATA[<p>RSS Rich Site Summary sind Dateiformate für Web-Feeds. Sie zeigen Änderungen auf Websites, z. B. auf News-Seiten, Blogs, Podcasts, Vlogs u.v.m. Das Akronym steht aktuell für Really Simple Syndication (Sehr einfache Verbreitung), vormals waren bereits &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/12/28/erklaerung-rss/">RSS &#8211; Immer auf dem Laufenden bleiben</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>RSS Rich Site Summary sind Dateiformate für Web-Feeds. Sie zeigen Änderungen auf Websites, z. B. auf News-Seiten, Blogs, Podcasts, Vlogs u.v.m. Das Akronym steht aktuell für Really Simple Syndication (Sehr einfache Verbreitung), vormals waren bereits andere Bedeutungen gegeben.</p>



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



<p>Es wurde 1999 von Netscape Communications entwickelt. Damals stand die Abkürzung für RDF Site Summary, eine Technologie, die im Rahmen des individualisierbaren Nachrichtenangebots My Netscape Network zum Einsatz kam. Bereits ein Jahr später wurde das Ressource Description Framework (RDF) durch ein einfacheres <a href="https://ceosbay.com/2022/12/27/erklaerung-xml/" target="_blank" rel="noreferrer noopener">XML-Format</a> ersetzt, was eine Umdeutung der Abkürzung RSS in Rich Site Summary zur Folge hatte. Siehe meinen Beitrag über <a href="https://ceosbay.com/2022/12/27/erklaerung-xml/" target="_blank" rel="noreferrer noopener">XML</a>. Mit der Version 2.0 wurde dann die Bezeichnung Really Simple Syndication eingeführt. Als Nachfolger gilt das daran angelehnte Format Atom. Dies thematisiere ich dann in einem zukünftigen Beitrag.</p>



<p>Solche Dienste waren in den späteren 2000er-Jahren populär und meist auf speziellen Service-Websites vorzufinden, sogenannten RSS-Channels. Ein solcher gewöhnlicher Channel versorgt den Adressaten, ähnlich einem Nachrichtenticker, mit kurzen Informationsblöcken, die aus einer Schlagzeile mit Textanriss und einem Link zur Originalseite bestehen. Zunehmend werden aber auch komplette Inhalte klassischer Webangebote ergänzend als Volltext-RSS bereitgestellt.</p>



<p>Durchsetzen konnte es sich um das Jahr 2005. Besonders durch den Blog Hype, da die meisten Autoren sehr früh RSS-Feeds für ihre Artikel anboten und viele Blogs diese automatisch generierten und es heute noch machen. Ursprünglich ging es dabei vor allem um Text. In der zweiten Hälfte der 2000er wurden auch Podcasts darüber verbreitet, die dann z. B. auf mobile Endgeräte geladen wurden und bis heute noch geladen werden.</p>



<p>Die Bereitstellung von Daten im RSS-Format bezeichnet man auch als RSS-Feed, von engl. to feed – im Sinne von füttern, einspeisen, zuführen. Wenn ein Benutzer einen Channel abonniert hat, so sucht der Client in regelmäßigen Abständen beim Server nach Aktualisierungen im RSS-Feed.</p>



<h3 class="wp-block-heading">Wie funktioniert ein RSS-Feed?</h3>



<p>Wenn man einen RSS-Feed abonniert, kann man die Nachrichten mit einem Feedreader einlesen. Als Abonnent kann man sich dann den (in vielen Feeds enthaltenen) Inhalt direkt anzeigen lassen oder den angebotenen Links folgen und die vollständige Meldung der verlinkten Seite lesen. Die Adresse eines RSS-Feeds entspricht dem Aufbau einer URL, wie sie auch für Webseiten verwendet wird.</p>



<p>Zum Lesen eines RSS-Feeds dienen spezielle Programme, die auf die Ähnlichkeit zum Nachrichtenticker angepasst sind. Diese nennt man (synonym) RSS-Aggregatoren, RSS-Reader oder Feedreader. Einige E-Mail-Programme bieten oder boten RSS-Lesefunktionen, teils via Plugins, an. Früher unterstützten einige populäre Webbrowser dies ebenfalls. Neben diesen nutzte man auch Anwendungen, die wie als Bildschirmschoner agierten. Statt umherfliegende Seifenblasen oder prozedural generierte Rohrsysteme, bekam man dann eben bei Inaktivität die abonnierten Feeds angezeigt.</p>



<p>Im Unterschied zur Benachrichtigung per E-Mail geht die Initiative bei RSS vom Empfänger aus, der den Feed abonniert hat. Dies bedeutet, dass der Anbieter die Leser nicht auswählen kann, sich im Gegenzug aber auch nicht um eine Verwaltung des Leserstammes (zum Beispiel mit einer Mailinglisten-Software) kümmern muss. Der Leser muss nicht offenlegen, dass er die Quelle beobachtet, und kann Quellen wesentlich leichter abonnieren bzw. das Abonnement widerrufen, indem er einfach die Einstellung in seinem Aggregator vornimmt.</p>



<p>Es vereinfacht die Beobachtung einer großen Menge von Quellen wie z. B. Blogs, in denen es eher selten zu Änderungen kommt, deren Aktualisierung der Leser aber ggf. nicht verpassen möchte.</p>



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



<p>Da Inhalte via RSS in einem standardisierten Format vorliegen, eignen sie sich auch für die maschinelle Weiterverarbeitung. So lassen sich damit beispielsweise Texte einer Webseite automatisch mit Hilfe eines Parsers in eine andere Webseite integrieren oder sehr einfach auf verschiedenen Endgeräten speziell aufbereitet darstellen.</p>



<p>Das Aufbereiten von Informationen in ein standardisiertes Austauschformat/-objekt nennt man auch Aggregation, das Veröffentlichen auf anderen Seiten Content-Syndication. Websites können damit automatisch mit den neuesten Nachrichten aktualisiert werden, ohne dass der Seitenbetreiber jeweils eine Aktualisierung vornehmen muss. Eine Reihe von Content-Management-Systemen wie WordPress unterstützen diese Funktionalität. Auch dieser Blog wurde mit WordPress erstellt.</p>



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



<p>Wenn man lediglich ein paar Webseiten gerne regelmäßig mehrmals in der Woche liest, dann kann die Nutzung eines RSS-Feeds etwas übertrieben sein. Für Vielleser führt jedoch weiterhin kein sinnvoller Weg an Rich Site Summary und einem RSS-Reader vorbei.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/12/28/erklaerung-rss/">RSS &#8211; Immer auf dem Laufenden bleiben</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2022/12/28/erklaerung-rss/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1077</post-id>	</item>
		<item>
		<title>Selenium &#8211; Zur Automatisierung von Web-Tests für zuverlässige Webanwendungen</title>
		<link>https://ceosbay.com/2022/11/25/selenium/</link>
					<comments>https://ceosbay.com/2022/11/25/selenium/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Fri, 25 Nov 2022 12:36:09 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Automatisierung]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CD]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Core]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[Entwickler]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java Script]]></category>
		<category><![CDATA[Open]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[Selenium Core]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Web-Dev]]></category>
		<category><![CDATA[Werkzeug]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=685</guid>

					<description><![CDATA[<p>Selenium ist ein Open Source Framework für automatisierte Softwaretests von Webanwendungen. Entwickelt und von der Firma ThoughtWorks unter der Apache-2.0-Lizenz veröffentlicht. Mit Selenium kann man Interaktionen, in der Regel Testsequenzen, mit einer Webanwendung aufnehmen und &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/25/selenium/">Selenium &#8211; Zur Automatisierung von Web-Tests für zuverlässige Webanwendungen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Selenium ist ein <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a> Framework für automatisierte Softwaretests von Webanwendungen. Entwickelt und von der Firma ThoughtWorks unter der <a href="https://www.apache.org/licenses/LICENSE-2.0" target="_blank" rel="noreferrer noopener">Apache-2.0-Lizenz</a> veröffentlicht.</p>



<p>Mit Selenium kann man Interaktionen, in der Regel Testsequenzen, mit einer Webanwendung aufnehmen und diese Tests automatisiert beliebig oft wiederholen. Es nimmt vor allem Entwicklern sehr viel Arbeit ab, da beispielsweise beim Ausfüllen von Webformularen das Testen wesentlich schneller, flexibler und verlässlicher abläuft.</p>



<p>Selenium basiert rein auf HTML und JavaScript. Für einen schnellen Einstieg kann man direkt die Selenium-IDE z. B. als Browser-Add-on installieren und mit dem Testing beginnen. Der Benutzer interagiert ausschließlich mit Firefox, während Selenium die Aufnahme und das Abspielen der Tests übernimmt.</p>



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



<p>Im Jahr 2003 fing Jason Huggins, der bereits einige Testing Tools entwickelt hatte, mit der Entwicklung von Selenium an.</p>



<p>Damals war ThoughtWorks weltweit vertreten, aber jeder, der sich außerhalb des Hauptsitzes befand, hatte mit enormen Latenzzeiten zu kämpfen. Allein die Erfassung von Stundenzetteln dauerte eine Ewigkeit. Um diese Einschränkungen zu überwinden, beschloss Jasons Team, JavaScript im Browser zu verwenden, um die Arbeit zu erledigen, anstatt den Server zu verwenden.</p>



<p>Zu dem Zeitpunkt war JavaScript noch nicht zum Standard geworden. Der von Jason geschriebene Code lief zwar in dem Browser Internet Explorer aber nicht auf Mozilla. Die Anpassung des Codes für Mozilla, hätten den Code für Internet Explorer beschädigen können und umgekehrt. Ganz abgesehen von all den zukünftigen Updates für beide Browser gleichzeitig. Dies hätte mehr Schaden als Nutzen verursacht.</p>



<p>Jasons Team brauchte eine zuverlässige Methode, um die Anwendung in den Browsern zu testen. Also recherchierten Jason und zwei weitere Kollegen bei ThoughtWorks ob es irgendwelche Tools gab, die sie verwenden konnten. Wie es meistens so ist, war nichts zu finden, was den eigenen Anforderungen entsprach. So ging es an die Entwicklung von Selenium. Das Tool, welches sie programmiert hatten, konnte Daten eingeben und Schaltflächen auf einer Reihe von Webseiten anklicken, um verschiedene Testszenarien zu durchlaufen dies in mehreren Browsern gleichzeitig.</p>



<p>Im Laufe der Zeit schlossen sich immer mehr Mitarbeiter von ThoughtWorks seiner Arbeit an, bis Paul Hammant dem Team beitrat und die Entwicklung des Programms in die Richtung des heutigen &#8222;Selenium Remote Control&#8220; (RC) leitete. Dabei handelt es sich mittlerweile um ein veraltetes Modul.</p>



<p>2007 wechselte Huggins zum Softwarekonzern Google, wo er die Weiterentwicklung und die Fehlerausbesserung des Programms zusammen mit anderen Programmierern vorantrieb. Zur gleichen Zeit entwickelte Simon Stewart bei ThoughtWorks die Browsersteuerung Webdriver (Darüber schreibe ich voraussichtlich auch noch einen Beitrag). Da es für die Entwickler beider Projekte nicht sinnvoll erschien, zwei separate Projekte voranzutreiben, beschlossen sie die beiden Projekte zu &#8222;Selenium Webdriver&#8220; bzw. &#8222;Selenium 2.0&#8220; zu vereinen.</p>



<p>2008 entwickelte Philippe Hanrigou &#8222;Grid&#8220;, welches die Ausführung multipler Instanzen ermöglichte. So konnte man das Tool auf einer unbegrenzten Anzahl von Rechnern laufen lassen. Dies führte dazu, dass die Ausführungszeit für große Teststrukturen drastisch verkürzt wurde.</p>



<h3 class="wp-block-heading">Randnotiz 😀</h3>



<p>Der Name Selenium entstand aus einer scherzhaften Bemerkung von Huggins, der in einer E-Mail seine Mitbewerber Mercury damit verspottete, dass eine Quecksilbervergiftung (Mercury poisoning) durch die Einnahme von Selenium geheilt werden kann.</p>



<h3 class="wp-block-heading">Bestandteile von Selenium</h3>



<h4 class="wp-block-heading">Selenium Core</h4>



<p>Das Core-Modul enthält die komplette Basisfunktionalität von Selenium. Die Testbefehl-API und den TestRunner. Unter Verwendung des Core-Modules kann die TestRunner.html-Webseite mit verschiedenen Browsern geöffnet werden. Dadurch werden Kompatibilitätstests mit verschiedenen Browsertypen ermöglicht.</p>



<h4 class="wp-block-heading">Selenium IDE</h4>



<p>Das Selenium IDE ist ein Add-on für Google Chrome und Mozilla Firefox, mit dem man direkt im Browser durch die Interaktion mit einer Webanwendung Testfälle aufnehmen und wieder abspielen kann. Neben der reinen Capture-Replay-Funktionalität lassen sich weitere Überprüfungen mittels „verify“ und „assert“ einbinden. Zudem wird das schrittweise Abspielen von Testfällen, das Setzen von Breakpoints zur Überprüfung der Testfälle und die Wiederverwendung von geteilten Testabläufen unterstützt. Einzelne Testfälle lassen sich zu Testsuites kombinieren und wiederverwenden.</p>



<h4 class="wp-block-heading">Selenium WebDriver</h4>



<p>Selenium WebDriver ist der Nachfolger von Remote Control. Auf Remote Control werde ich nicht weiter eingehen, da dieses Modul veraltet ist. Es akzeptiert Befehle in Selenese oder über die Client-API und leitet diese an den jeweiligen Browser weiter. Eine Besonderheit bildet HtmlUnit. Ab Version 3.0 ist HtmlUnit nicht mehr Bestandteil des WebDrivers. Es handelt sich dabei um einen Webbrowser ohne grafische Anzeige (Headless). Der Selenium WebDriver ist über den Browser Driver implementiert, wodurch die gängigsten Browser unterstützt werden.</p>



<h4 class="wp-block-heading">Selenium Grid</h4>



<p>Selenium Grid ist eine Erweiterung von RC und ermöglicht die parallele Ausführung von Tests auf mehreren Servern, um die Dauer der Testdurchführung zu verkürzen. Der Client-Treiber verbindet sich dabei mit dem Hub anstatt mit dem Server. Der Hub wiederum leitet die Tests auf freie Selenium-Server weiter.</p>



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



<p>Selenium ermöglich, wie mehrfach angesprochen, das direkte Aufzeichnen diverser Test-Szenarien. Bei der Aufzeichnung solcher Testszenarien ist auf jeden Fall Vorsicht geboten, da sich bei einer unkonzentrierten Arbeitsweise Fehler einschleichen können, die einem nachfolgend eventuell nicht auffallen. Die Nutzung von Testsuites kann Sinn machen, da man dadurch eine Gliederung in separate Module erreicht. Die Auswirkungen von Änderungen innerhalb der Applikation können so einfacher auf bestehende Tests übertragen werden, was zu einer besseren Wartung und Wiederverwendbarkeit führt. Sicherlich kann man auch die Arbeit damit wesentlich optimierter und angenehmer realisieren, indem man einiges automatisiert. Aber dazu vielleicht in der Zukunft mehr.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/25/selenium/">Selenium &#8211; Zur Automatisierung von Web-Tests für zuverlässige Webanwendungen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2022/11/25/selenium/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">685</post-id>	</item>
		<item>
		<title>JavaScript &#8211; Die Sprache für interaktive und dynamische Webanwendungen</title>
		<link>https://ceosbay.com/2022/11/12/javascript/</link>
					<comments>https://ceosbay.com/2022/11/12/javascript/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Sat, 12 Nov 2022 06:00:00 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Acrobat]]></category>
		<category><![CDATA[Anwendungsentwicklung]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Bibliotheken]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Codestruktur]]></category>
		<category><![CDATA[Deklarativ]]></category>
		<category><![CDATA[Dojo]]></category>
		<category><![CDATA[Dynamisch]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Geschichte]]></category>
		<category><![CDATA[Heute]]></category>
		<category><![CDATA[Imperativ]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Multiparadigmisch]]></category>
		<category><![CDATA[Multipragmatisch]]></category>
		<category><![CDATA[Objektorientiert]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Paradigmen]]></category>
		<category><![CDATA[Programmierer]]></category>
		<category><![CDATA[Quellcode]]></category>
		<category><![CDATA[Reac]]></category>
		<category><![CDATA[React]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Semantik]]></category>
		<category><![CDATA[Single]]></category>
		<category><![CDATA[Thread]]></category>
		<category><![CDATA[Three]]></category>
		<category><![CDATA[ThreeJs]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=510</guid>

					<description><![CDATA[<p>JavaScript ist eine der bekanntesten Skriptsprachen für Websites. Es ist eine leichtgewichtige, interpretierte und just-in-time kompilierte Software-Sprache, die erstklassige Funktionen nutzt. Viele Nicht-Browser-Umgebungen wie Adobe Acrobat, Apache CouchDB und Node.JS® nutzen JavaScript. Diese weit verbreitete &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/12/javascript/">JavaScript &#8211; Die Sprache für interaktive und dynamische Webanwendungen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>JavaScript ist eine der bekanntesten Skriptsprachen für Websites. Es ist eine leichtgewichtige, interpretierte und just-in-time kompilierte Software-Sprache, die erstklassige Funktionen nutzt. Viele Nicht-Browser-Umgebungen wie Adobe Acrobat, Apache CouchDB und <a href="https://ceosbay.com/2022/11/11/node-js-mit-npm-auf-macos/">Node.JS®</a> nutzen JavaScript. Diese weit verbreitete Software-Sprache ist prototypenbasiert, deklarativ, imperativ, stark objektorientiert, single-thread, dynamisch und multiparadigmatisch. Die genannten Begriffe werden nachfolgend erklärt aber zu einem späteren Zeitpunkt in einen anderen Beitrag, bei dem ich verschiedene Paradigmen vorstelle, verschoben.</p>



<h3 class="wp-block-heading">Prototypenbasierte Programmierung</h3>



<p>Prototypenbasierte Programmierung, auch als klassenlose Objektorientierung bekannt, ist eine Form der objektorientierten Programmierung, die auf das Sprachelement der Klasse verzichtet. Objekte werden nicht durch Instanziierung (Der&nbsp;Prozess des Lesens oder des Angebens von Informationen) einer Klasse, sondern durch Klonen bereits existierender Objekte erzeugt. Bei diesem Klonen werden alle Eigenschaften (Attribute und Methoden) des Prototyp-Objektes kopiert. Sie können aber überschrieben werden, und das neue Objekt kann mit neuen Eigenschaften versehen werden. Hierzu aber in einem anderen Beitrag mehr.</p>



<h3 class="wp-block-heading">Deklarative Programmierung</h3>



<p>In der Informatik ist die deklarative Programmierung ein Programmierparadigma &#8211; ein Stil zum Aufbau der Struktur und der Elemente von Computerprogrammen -, dass die Logik einer Berechnung ausdrückt, ohne ihren Kontrollfluss zu beschreiben. Folglich wird im Quellcode festgelegt, was in welcher Reihenfolge und wie zu tun ist: „First do this and next do that / Erst dies und dann das tun“.  Ich werde dieses Thema aber noch in einem anderen Beitrag ausführlich behandeln.</p>



<h3 class="wp-block-heading">Imperative Programmierung</h3>



<p>Die Imperative Programmierung ist ein Programmierparadigma, nach dem „ein Programm aus einer Folge von Anweisungen besteht, die vorgeben, in welcher Reihenfolge was vom Computer getan werden soll. Auch dieses Thema wird später noch in einem anderen Beitrag genauer thematisiert.</p>



<h3 class="wp-block-heading">Objektorientierte Programmierung</h3>



<p>Die objektorientierte Programmierung (kurz OOP) ist ein auf dem Konzept der Objektorientierung basierendes Programmierparadigma. Die Grundidee besteht darin, die Architektur einer Software an den Grundstrukturen desjenigen Bereichs der Wirklichkeit auszurichten, der die gegebene Anwendung betrifft. Eines der wichtigsten Programmierparadigmen unserer Zeit. Ich werde noch einige Beiträge zur objektorientierten Programmierung erstellen.</p>



<h3 class="wp-block-heading">Single-thread</h3>



<p>In der Informatik bezeichnet Thread einen Ausführungsstrang oder eine Ausführungsreihenfolge in der Abarbeitung eines Programms. Ein Thread ist Teil eines Prozesses. In meiner Jugend kannte man diesen Begriff noch in Zusammenhang mit Multithreading bei Prozessoren. War damals für uns wie ein Traum. Aber auch zu diesen Begrifflichkeit in einem anderen Beitrag mehr.</p>



<h3 class="wp-block-heading">Dynamische Programmierung</h3>



<p>Die dynamische Programmierung dient zur Lösung eines Optimierungsproblems durch algorithmische Verfahren. Das Problem wird in Teilprobleme zergliedert und es werden systematisch Zwischenergebnisse gespeichert. Auch hierzu in einem späteren Beitrag mehr.</p>



<h3 class="wp-block-heading">Multiparadigmatische Programmiersprachen</h3>



<p>Eine Multiparadigmen Programmiersprache ist eine Programmiersprache, die zur Problemlösung mit verschiedenen Programmierparadigmen die geeigneten Sprachmittel besitzt.</p>



<h3 class="wp-block-heading">Java = / ≠ JavaScript</h3>



<p>Sowohl Java als auch JavaScript sind in den USA und anderen Ländern eingetragene Marken von Oracle. Sie sind aber keineswegs identisch. Obwohl sie ähnlich klingen, sind sie in Bezug auf Syntax, Semantik und Anwendung der Sprache im wirklichen Leben sehr unterschiedlich.</p>



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



<p>Brendan Eich (Ein Programmierer der Netscape Communication Corporation) hat JavaScript 1995 entwickelt. Offenbar brauchte er etwa 10 Tage, um Mocha zu entwickeln. Später wurde der Name der Sprache in Mona und dann in LiveScript geändert. Derzeit ist sie allgemein als JavaScript bekannt. 1996 wurde es von der ECMA übernommen, die JavaScript mit der ECMAScript Language Specification und den ECMAScript Internationalized API Spezifikationen versah. Im Jahr 2005 traten Eich und Mozilla der ECMA bei, und die JavaScript-Gemeinschaft blühte auf. Im Jahr 2016 nutzten 92 % der Websites JavaScript, von großen Tech-Giganten wie Facebook und Google bis hin zu kleinen Start-Ups, wie <a href="https://www.coezbay.com" target="_blank" rel="noreferrer noopener">meines</a>.</p>



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



<p>Derzeit wird die Sprache immer noch überall eingesetzt und ist eine der am häufigsten verwendeten clientseitigen Skriptsprachen. Von 1995 bis heute hat JavaScript einen langen Weg zurückgelegt. Heutzutage wird es innerhalb von HTML-Elementen geschrieben, um Dynamik in Webprojekten und konventionellen Desktop-Anwendungen zu ermöglichen. So ziemlich alle Echtzeit Onlinespiele beinhalten die Sprache. Viele andere Technologien wurden auf der Grundlage von JavaScript entwickelt, zum Beispiel <a href="https://ceosbay.com/2022/11/11/node-js-mit-npm-auf-macos/">NodeJS®</a> &#8211; welches ich in einem anderen Beitrag kurz angeschnitten habe, React &#8211; was ich in einem anderen Beitrag thematisieren werde. JavaScript ist zwar alt und hat eine komplexe Vergangenheit, doch genau diese Tatsache haben wir es zu verdanken, dass sie auch enorm großes Spektrum an Bibliotheken und Frameworks bietet. Hierzu nachfolgend mehr.</p>



<h3 class="wp-block-heading">JavaScript-Bibliotheken</h3>



<p><a href="https://dev.to/t/discuss"></a>Um die Programmierung zu erleichtern, gibt es, wie bereits erwähnt, Unmengen an sogenannter JavaScript-Bibliotheken und -Frameworks. Diese Bibliotheken werden verwendet, um Code für komplexere Funktionalitäten schneller schreiben zu können. Sie ermöglichen es Entwicklern, vorgefertigte Code-Snippets zu nutzen und eigene Code-Snippets für die zukünftige Verwendung zu erstellen und zu speichern. Wenn man solch eine Bibliothek für seine eigenen Routinen erstellt hat und Herr dieser Daten ist, sind auch Zeit- als auch Arbeitsersparnisse die daraus resultieren immens. Beispiele für JavaScript-Bibliotheken sind: jQuery, ReactJS, Google Polymer, Dojo-Toolkit und Three.js. Wobei Three.js eine browserübergreifende JavaScript-Bibliothek und gleichzeitig eine Anwendungsprogrammierschnittstelle zur Erstellung und Anzeige animierter 3D-Computergrafiken in einem Webbrowser mit WebGL darstellt. Letzteres ist eines meiner Lieblingsdinge, mit denen ich mich beruflich als auch privat gerne beschäftige.</p>



<h3 class="wp-block-heading">JavaScript-Frameworks</h3>



<p>JavaScript-Frameworks sind Vorlagen, die eine Codestruktur vorgeben, der man folgen kann. Dadurch wird die Entwicklung teilweise erleichtert. Doch gleichzeitig schränkt es einen auch in gewisser Weise ein, da man als Entwickler gewisse Regeln beachten muss. Beispiele für JavaScript-Frameworks sind. beispielsweise Vue.js, AngularJS und Apache Royale.</p>



<p>Übrigens: Wenn JavaScript ohne die Verwendung von Bibliotheken oder Frameworks geschrieben, wird es als „Vanilla-JavaScript“ bezeichnet.</p>



<h3 class="wp-block-heading">Clientseitiges JavaScript und serverseitiges JavaScript</h3>



<p>JavaScript kann sowohl clientseitig als auch serverseitig genutzt werden. Clientseitiges JavaScript ermöglicht die Manipulation von Browsern und Webseiten. Es führt das Skript im Browser des Nutzers aus und ist eine der häufigsten Verwendungsformen von JavaScript. Ich habe hierzu in einem anderen <a href="https://ceosbay.com/2022/10/30/aus-alt-mach-neu/">Beitrag</a> ein paar Zeilen geschrieben bzw. es findet in der Three.js Web-Anwendung statt, die im Header Bereich <a href="https://cagatayoezbay.com">meiner persönlichen Website</a> zum Einsatz kommt.</p>



<p>Serverseitiges JavaScript läuft nicht im Browser, sondern auf dem Server. Generell ist es weniger verbreitet als clientseitiges JavaScript. Ein Beispiel für ein beliebtes serverseitiges Scripting-Framework für JavaScript ist <a href="https://ceosbay.com/2022/11/11/node-js-mit-npm-auf-macos/">NodeJS®</a>.</p>



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



<p>JavaScript ist eine der wichtigsten Programmiersprachen. Sie ist sehr dynamisch und wird sowohl in der Anwendungs-, Frontend- als auch in der Backend-Webentwicklung verwendet.</p>



<p>Angesichts der möglichen Auswirkungen auf die Geschwindigkeit und Performance der Anwendung oder Webseite ist es wichtig zu verstehen, wie JavaScript funktioniert. Anhand von Best Practices kann man lernen, effektiver zu programmieren und die Leistung seiner Anwendungen und Webseiten zu verbessern. Auch in Bezug auf SEO (Search Engine Optimization = Suchmaschinenoptimierung &#8211; Die Maßnahmen, die dazu dienen, um die Sichtbarkeit einer Webseite und ihrer Inhalte für Benutzer einer Suchmaschine bzw. die Auffindbarkeit zu erhöhen) spielt dies eine sehr große Rolle. Aber das Thema SEO werde ich in einem späteren Beitrag thematisieren.<br></p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/12/javascript/">JavaScript &#8211; Die Sprache für interaktive und dynamische Webanwendungen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2022/11/12/javascript/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">510</post-id>	</item>
	</channel>
</rss>
