Um die Handelskalkulation inkl. Skonto und Rabatt geht es in der einhundertachtundvierzigsten Episode des Anwendungsentwickler-Podcasts. Inhalt Käufer zahlen immer so spät wie möglich ihre Rechnungen, da sie in der Zwischenzeit mit ihrem Geld andere Dinge machen können (z.B. verzinslich anlegen). Verkäufer wollen das Geld aber so früh wie möglich haben, da sie bereits in Vorleistung gegangen sind. Ein übliches Zahlungsziel bei Rechnungen ist 30 Tage. Das würde ein Käufer immer ausnutzen. Damit d...
Dec 23, 2019•46 min
Um Code Smells und ihre Behebung mittels Refactorings geht es in der einhundertsiebenundvierzigsten Episode des Anwendungsentwickler-Podcasts. Inhalt Was ist ein Code Smell? Smells sind Indikatoren für Code, der überarbeitungswürdig ist. Man erkennt sie anhand verschiedener Muster (z.B. lange Methoden). Die Smells können mit Refactorings überarbeitet und (hoffentlich) eliminiert werden. Nicht alle Smells sind immer schlecht. Sie dienen nur als Anhaltspunkt, noch einmal über den Code nachzudenken...
Dec 09, 2019•56 min
Zum Abschluss meiner kleinen Reihe zum Oberthema Kryptographie widmen wir uns der Funktionsweise von HTTPS in der einhundersechsundvierzigsten Episode des Anwendungsentwickler-Podcasts. Inhalt Wiederholung Für die elektronische Signatur und die Verschlüsselung von Daten werden Paare aus öffentlichen und privaten Schlüsseln benötigt. Um die Authentizität öffentlicher Schlüssel zu gewährleisten, werden Zertifikate verwendet, die von vertrauenswürdigen Zertifizierungsstellen ausgegeben werden. Prob...
Nov 18, 2019•39 min
Die Fortsetzung zum Oberthema Kryptographie mit Zertifikaten und Zertifizierungsstellen gibt es in der einhunderfünfundvierzigsten Episode des Anwendungsentwickler-Podcasts. Inhalt Wiederholung: Für die elektronische Signatur und die Verschlüsselung von Daten werden Paare aus öffentlichen und privaten Schlüsseln benötigt. Probleme Wer garantiert dem Absender, dass ein öffentlicher Schlüssel auch wirklich dem angegebenen Empfänger gehört? Wie kann sichergestellt werden, dass ein öffentlicher Schl...
Nov 04, 2019•36 min
Wir gehen ein komplettes Beispiel zur Normalisierung einer relationalen Datenbank durch in der einhundertvierundvierzigsten Episode des Anwendungsentwickler-Podcasts. Inhalt Theoretische Grundlagen Wir normalisieren Datenbanken um Redundanzen zu vermeiden, die zu Anomalien führen können. Mehr dazu in Podcast-Episode 18 . Grundlagen wie Schlüssel, Kardinalitäten usw. erkläre ich in Podcast-Episode 17 . Merksatz: „The key, the whole key, and nothing but the key.“ Beispieldaten Wir verwenden ein „k...
Sep 23, 2019•1 hr 2 min
Um Möglichkeiten, Abhängigkeiten in Tests loszuwerden, geht es in der einhundertdreiundvierzigsten Episode des Anwendungsentwickler-Podcasts. Inhalt Vorweg: Automatisierte Tests gibt es nicht nur für objektorientierte Software, sondern natürlich auch für funktionale, prozedurale usw. Die folgenden Inhalte beziehen sich aber ausschließlich auf die Objektorientierung. In anderen Paradigmen haben die genannten Begriffe evtl. andere Bedeutungen oder die vorgestellten Lösungen funktionieren etwas and...
Aug 26, 2019•1 hr
Eine Einführung in die wichtigsten Begriffe rund um Programmierung und Objektorientierung gibt es in der einhundertzweiundvierzigsten Episode des Anwendungsentwickler-Podcasts. Inhalt Compiler und IDE Was ist ein Compiler ? Ein Compiler übersetzt Sourcecode (z.B. for (int i: numbers)), den ein Mensch schreibt, in Maschinencode (z.B: 00011010 00011010), den ein Computer ausführen kann. Dafür muss der Sourcecode absolut fehlerfrei sein, sonst gibt es Compiler-Fehler . Die einzuhaltenden Regeln wer...
Aug 12, 2019•1 hr 31 min
Um Ports und Netzwerkprotokolle geht es in der einhunderteinundvierzigsten Episode des Anwendungsentwickler-Podcasts. Inhalt Mit dem Kommandozeilentool ping kann getestet werden, ob die Kommunikation zum Ziel über das Netzwerk grundsätzlich möglich ist. Wenn ja, kann man die Adresse dann z.B. auch im Browser aufrufen. Ports Die grundsätzliche Kommunikation steht nun also, aber woher weiß ein Server, welchen Dienst er einem Client anbieten soll (z.B. Mail oder WWW oder eben auf den „Ping“ antwort...
Jul 29, 2019•44 min
Um private IP-Adressbereiche und das Routing von Netzwerkpaketen geht es in der einhundertvierzigsten Episode des Anwendungsentwickler-Podcasts. Inhalt Private IP-Adressbereiche Da es im aktuellen Standard IPv4 nicht genug IP-Adressen für alle Teilnehmer auf der Welt gibt, muss eine Möglichkeit geschaffen werden, IP-Adressen abgeschlossen vom Internet zu vergeben, um interne Netzwerke betreiben zu können. Es gibt einige fest definierte IP-Adressbereiche, die im Internet nicht verfügbar sind: die...
Jul 15, 2019•45 min
Meine Erkenntnisse (positiv wie negativ) aus der IHK-Sommerprüfung 2019 teile ich mit euch in der einhundertneununddreißigsten Episode des Anwendungsentwickler-Podcasts. Inhalt Projektdokumentation Verwendung unnatürlicher Sprache („bei dem“ statt „beim“, „Leerung der Datenbank“ statt „Datenbank leeren“) Kapitel meiner Vorlage werden ausgefüllt, auch wenn die Inhalte überhaupt nicht sinnvoll sind „Eine Nutzwertanalyse war nicht sinnvoll, deswegen habe ich darauf verzichtet.“ Identische Inhalte w...
Jul 01, 2019•1 hr 9 min
Um zwei zentrale Technologien der Netzwerkgrundlagen – DNS und DHCP – geht es in der einhundertachtunddreißigsten Episode des Anwendungsentwickler-Podcasts. Inhalt DNS Theoretisch können wir auch im Internet surfen, indem wir die IP-Adressen der Websites eingeben, aber das kann sich kein Mensch merken. Daher sind Websites über einen sprechenden Namen, die Domain, erreichbar. Dafür brauchen wir dann aber eine Übersetzung von Domainname in IP-Adresse, damit der Computer kommunizieren kann. Einfach...
Jun 17, 2019•41 min
Um den Aufbau und die Darstellung von IP-Adressen geht es in der einhundertsiebenunddreißigsten Episode des Anwendungsentwickler-Podcasts. Inhalt IP-Adresse URLs sind für Menschen einigermaßen gut zu verstehen und zu merken, aber Computer kommunizieren leider nicht über URLs, sondern über IP-Adressen. Eine IP-Adresse ist eine 32 Stellen lange Folge von Nullen und Einsen. Das Bit ist die kleinste Informationseinheit der Informatik und kann genau diese beiden Werte annehmen. Also ist eine IP-Adres...
Jun 03, 2019•43 min
Um den Aufbau von URLs geht es in der einhundertsechsunddreißigsten Episode des Anwendungsentwickler-Podcasts. Inhalt Use Case Was passiert technisch, wenn der Browser eine Website anzeigt? Übrigens: Unterschied Website/Homepage: Eine Website ist die Gesamtheit an Inhalten des Anbieters, während die Homepage lediglich die Startseite des Angebots bezeichnet. Der Client ruft eine Adresse im Browser auf und der Server liefert HTML zurück, das der Browser rendert (in eine grafische Darstellung umwan...
May 20, 2019•47 min
Über den Inhalt und die Erstellung eines betrieblichen Ausbildungsplans für Fachinformatiker spreche ich in der einhundertfünfunddreißigsten Episode des Anwendungsentwickler-Podcasts. Inhalt Begriffsdefinitionen Ausbildungsrahmenplan : Gibt die allgemeinen Inhalte der Ausbildung vor. Er ist bewusst so formuliert, dass er eine lange Gültigkeit hat und nicht ständig aktualisiert werden muss. Er enthält also z.B. keine Programmiersprachen oder Netzwerk-Protokolle. Die aktuelle Version, die 2018 led...
Apr 29, 2019•48 min
Über die Neuordnung der IT-Berufe in den Jahren 2018 und 2020 spreche ich in der einhundertvierunddreißigsten Episode des Anwendungsentwickler-Podcasts. Inhalt Die fünf IT-Berufe (Fachinformatiker der Fachrichtungen Anwendungsentwicklung und Systemintegration, Informatikkaufleute, IT-Systemkaufleute und IT-Systemelektroniker) werden in der Verordnung über die Berufsausbildung im Bereich der Informations- und Telekommunikationstechnik beschrieben. Diese wurde im Jahr 1997 erstellt und ist seitdem...
Apr 15, 2019•34 min
Im siebten Wissenshäppchen geht es um das Dependency Inversion Principle . Inhalt Das DIP ist das letzte der fünf SOLID-Prinzipien. High level modules should not depend upon low level modules. Both should depend upon abstractions. Oder: Abstractions should not depend upon details. Details should depend upon abstractions. Welche Abhängigkeiten werden hier „umgedreht“? Komponenten, die andere Komponenten benötigen, erzeugen sich diese nicht selbst, sondern bekommen sie von außen hineingegeben. Bra...
Apr 01, 2019•18 min
Das sechste Wissenshäppchen hat das Interface Segregation Principle als Thema. Inhalt Das ISP ist das vierte SOLID-Prinzip. The dependency of one class to another one should depend on the smallest possible interface. Im Prinzip kann man das ISP so zusammenfassen: Verwende immer nur die kleinstmögliche Schnittstelle zu deinen Abhängigkeiten. Je mehr Funktionen eine Komponente an ihren Abhängigkeiten aufrufen kann, desto abhängiger wird sie von ihr. Wenn sich diese Funktionen nämlich ändern (z.B. ...
Mar 18, 2019•16 min
Im fünften Wissenshäppchen geht es um das Liskov Substitution Principle . Inhalt Das LSP ist das dritte der fünf SOLID-Prinzipien. Es wurde 1987 von Barbara Liskov definiert, die ihm auch seinen Namen gab: Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it. Man könnte sagen, dass dies quasi die Grundanforderung ist, um Polymorphie zu ermöglichen. Denn überall dort, wo eine Basisklasse oder ein Interface erwartet wird, müsse...
Mar 04, 2019•27 min
Mein viertes Wissenshäppchen hat das Open Closed Principle zum Thema. Inhalt Das OCP ist das zweite der SOLID-Prinzipien. Es wurde vor Robert „Uncle Bob“ Martin bereits 1988 von Bertrand Meyer definiert: Software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification. Ursprünglich ging es darum, durch Vererbung die Anpassung („modification“) bereits bestehender Klassen zu verhindern, indem Subklassen abgeleitet werden, die die vorhandene Funktional...
Feb 18, 2019•22 min
Ein Interview mit Julian Hirche zum Thema Ausbildung der Ausbilder (AdA) nach Ausbilder-Eignungsverordnung (AEVO) gibt es in der einhundertdreiunddreißigsten Episode des Anwendungsentwickler-Podcasts. Inhalt Allgemeines zur Person Wie ist dein Name und wo arbeitest du (falls gewünscht)? Julian Hirche , 34 Jahre alt Ich arbeite in Hamburg in einem Unternehmen, das Software für Banken entwickelt. Ich bin dort Teamleiter von 3 Entwicklern und 2 Testern. An welchen Projekten arbeitest du zur Zeit in...
Feb 04, 2019•44 min
Die Fortsetzung zum Oberthema Kryptographie mit Hashverfahren und elektronischer Signatur gibt es in der einhunderzweiunddreißigsten Episode des Anwendungsentwickler-Podcasts. Inhalt Hashes Hashverfahren erzeugen aus einer Eingangszeichenfolge beliebiger Länge eine Ausgangszeichenfolge fixer Länge, „Hash“ oder „Prüfsumme“ genannt. Sie sind mathematische Einwegverfahren, die keinen Rückschluss auf die Eingangsdaten zulassen, wenn die Ausgangszeichenfolge bekannt ist. Die erzeugten Hashes sollten ...
Jan 21, 2019•37 min
Einen kurzen Einstieg in einige grundlegende Begriffe der Kryptographie – die drei Schutzziele und die symmetrische und asymmetrische Verschlüsselung – gebe ich in der einhunderteinunddreißigsten Episode des Anwendungsentwickler-Podcasts. Inhalt Meist wird bei der Erklärung von kryptografischen Verfahren der Nachrichtenaustausch zwischen zwei Personen als Anwendungsfall verwendet. Person A (meist „Alice“ genannt) möchte mit Person B (meist „Bob“ genannt) kommunizieren und dabei gewisse Ziele err...
Jan 07, 2019•39 min
Ich habe ein neues Lieblingsbuch für die Ausbildung! „Java by Comparison“ wird im Buchclub in der einhundertdreißigsten Episode des Anwendungsentwickler-Podcasts besprochen. Inhalt Ich habe das Buch an einem Wochenende komplett verschlungen und es direkt im Anschluss auf die ToRead-Liste meiner Azubis gesetzt. Ab sofort werde ich es mit jedem Azubi lesen. Direkt im 1. Ausbildungsjahr, kurz nach der Bearbeitung der ersten Java-Aufgaben, legen wir los. Idee des Buchs Die Idee des Buchs ist schnell...
Dec 03, 2018•27 min
Ein interessantes Interview mit Jan Bauer, einem Experten für Umschulungen im IT-Bereich, führe ich in der einhundertneunundzwanzigsten Episode des Anwendungsentwickler-Podcasts. Inhalt Allgemeines zur Person Wie ist dein Name und wo arbeitest du? Jan Bauer, 48 Jahre alt, Fachkraft für Aus- und Weiterbildung beim Volkswagen-Bildungsinstitut. Wir bilden Berufe aus, die VW braucht, insb. auch Fachinformatiker. Vorher war ich 9 Jahre als Dozent und Lernbegleiter tätig in der Umschulung für mehrere ...
Nov 19, 2018•1 hr 12 min
Wie steigt man in das automatisierte Testen einer Java-EE-Anwendung ein, wenn man bereits eine bestehende Anwendung hat und bislang nicht getestet hat? Diese und weitere Fragen kläre ich im Interview mit Matthias Bünger in der einhundertachtundzwanzigsten Episode des Anwendungsentwickler-Podcasts. Inhalt Allgemeines zur Person Wie ist dein Name und wo arbeitest du? Matthias Bünger, aus Bonn, beschäftigt beim ITZBund (Informationstechnikzentrum Bund, IT-Dienstleister). An welchen Projekten arbeit...
Oct 15, 2018•1 hr 9 min
Weißt du schon, was du nach deiner Ausbildung zum Fachinformatiker machst? Eine tolle Alternative zum Studium bespreche ich mit Simon Stork in der einhundertsiebenundzwanzigsten Episode des Anwendungsentwickler-Podcasts: die IHK-Weiterbildung zum Operative Professional. Inhalt Allgemeines zur Person Wie ist dein Name und wo arbeitest du (falls gewünscht)? Simon Stork, im Consulting tätig, eher Projektleitung und IT, kein Programmierer. 35 Jahre alt, verheiratet, komme aus Paderborn. An welchen P...
Oct 01, 2018•57 min
Über verschiedene Möglichkeiten zur Verbesserung unserer Programmierfähigkeiten spreche ich mit Dennis Dierkes in der einhundertsechsundzwanzigsten Episode des Anwendungsentwickler-Podcasts. Inhalt Allgemeines zur Person Wie ist dein Name und wo arbeitest du? Dennis Dierkes, 21 Jahre alt, Prüfung zum Fachinformatiker Anwendungsentwicklung vor 2 Wochen bestanden. An welchen Projekten arbeitest du zur Zeit in deinem Tagesjob? Java-lastige Sachen wie Spring, Kotlin und funktionale Programmierung mi...
Sep 03, 2018•42 min
Die noch fehlenden Teile der IHK-Sommerprüfung 2018 – Projektdokumentationen und Fachgespräche – bespreche ich in der einhundertfünfundzwanzigsten Episode des Anwendungsentwickler-Podcasts. Inhalt Projektdokumentationen Fehlende Methodik bleibt das Hauptproblem vieler Projektarbeiten. Code auf schwarzem Hintergrund in der Dokumentation geht gar nicht . „Agil“ ist das neue „wir wissen nicht, was wir tun“. Bei der Amortisationsrechnung werden häufig fälschlicherweise interne Kosten mit externen Ze...
Jul 02, 2018•41 min
Wie bereits im letzten Jahr gibt es auch für die IHK-Sommerprüfung 2018 einen Rundumschlag über all meine Erfahrungen in der einhundertvierundzwanzigsten Episode des Anwendungsentwickler-Podcasts. Inhalt Meine Highlights Frage nach referentieller Integrität, Gegenfrage: „Gehört das zu Datenbanken?“ Projektarbeit, die mit wenigen Zeilen Code erledigt gewesen wäre. Fremdschämen bei hakeliger Live-Demo mit Tippfehlern, verschobenen Fenstern usw. 25 Seiten Quelltext als einziger Anhang. Präsentation...
Jun 18, 2018•40 min
Mein drittes Wissenshäppchen hat das Single Responsibility Principle zum Thema. Inhalt Das SRP ist das erste der sogenannten SOLID-Prinzipien. Robert „Uncle Bob“ Martin definiert es so: There should never be more than one reason for a class to change. Jede Klasse sollte genau einen einzigen Grund haben, um geändert zu werden. Man kann das Prinzip aber auch auf anderen Ebenen (z.B. Variablen, Methoden oder ganze Komponenten) berücksichtigen. Erklärung Nur Dinge, die zusammengehören, werden auch z...
Jun 04, 2018•27 min