Zurück zum Katalog
Season 45 5 Episoden 19 min 2026

PyCharm Dedicated Python IDE

v2026.1 — 2026 Edition. Ein 5-teiliger Audiokurs, der die Leistungsfähigkeit von PyCharm 2026.1 erkundet. Lerne, wie du isolierte Projekte einrichtest, versteckte Produktivitäts-Schätze entdeckst, den visuellen Debugger meisterst, die Ausführung von asynchronem Code analysierst und mit Code With Me remote zusammenarbeitest.

IDE
PyCharm Dedicated Python IDE
Aktuelle Wiedergabe
Click play to start
0:00
0:00
1
Die Macht einer dedizierten IDE: Projekt-Setup
Entdecke, warum eine dedizierte IDE wie PyCharm deinen Python-Entwicklungs-Workflow beflügeln kann. Wir gehen die Einrichtung eines reinen Python-Projekts durch, konfigurieren ein isoliertes Virtual Environment und verwalten das .idea-Verzeichnis. Du lernst die Kernphilosophie hinter dem projektzentrierten Design von PyCharm kennen.
3m 23s
2
Versteckte Schätze: Run Configurations & Code Insight
Entdecke versteckte Produktivitäts-Schätze, die in der Benutzeroberfläche von PyCharm verborgen sind. Wir untersuchen, wie tiefgreifendes, PEP-spezifisches Code Insight und Intention Actions deinen Code sofort verbessern können. Du lernst, wie du das Run Popup und das Run Widget nutzt, um Coverage-Tests und Profiler mit einem einzigen Klick zu starten.
4m 07s
3
Den Debugger meistern: Zustand und Breakpoints
Lass Print-Statements hinter dir und meistere den integrierten Debugger von PyCharm. Wir behandeln die Grundlagen zum Setzen von Breakpoints, dem schrittweisen Durchlaufen der Ausführung und der Inspektion des Heaps. Du lernst, wie du deine Anwendung pausierst, um präzise Variablenzustände und Thread-Ausführungspfade in Echtzeit zu betrachten.
4m 08s
4
Async-Code visualisieren: Das Concurrency Diagram
Entmystifiziere asynchronen Code mit dem Concurrency Diagram von PyCharm. Wir tauchen in das Feature Thread Concurrency Visualization und den Asyncio-Graphen-Tab ein. Du lernst, wie du Deadlocks visuell erkennst, Thread-Wartezeiten verfolgst und komplexe Event Loops ohne Kopfschmerzen debuggst.
3m 57s
5
Swarm Programming: Code With Me
Bringe kollaboratives Programmieren mit Code With Me auf das nächste Level. Wir untersuchen, wie man Remote-Swarm-Programming-Sessions direkt in der IDE hostet und ihnen beitritt. Du lernst, wie du Gastberechtigungen verwaltest, Ports weiterleitest und Pair Programming betreibst, ohne dass jemand zusätzliche Software installieren muss.
3m 37s

Episoden

1

Die Macht einer dedizierten IDE: Projekt-Setup

3m 23s

Entdecke, warum eine dedizierte IDE wie PyCharm deinen Python-Entwicklungs-Workflow beflügeln kann. Wir gehen die Einrichtung eines reinen Python-Projekts durch, konfigurieren ein isoliertes Virtual Environment und verwalten das .idea-Verzeichnis. Du lernst die Kernphilosophie hinter dem projektzentrierten Design von PyCharm kennen.

Herunterladen
Hallo, hier ist Alex von DEV STORIES DOT EU. PyCharm – die dedizierte Python-IDE, Folge 1 von 5. Eine komplexe Python-Umgebung manuell von Grund auf neu aufzusetzen, führt oft zu einem unübersichtlichen Durcheinander an kaputten Dependencies. Bis du deinen Language Server, Linter und die Path Variables konfiguriert hast, hast du schon Stunden damit verbracht, dich nur aufs Coden vorzubereiten. Die Stärke einer dedizierten IDE: Das Project Setup löst dieses Problem, indem es dir vom ersten Klick an einen einheitlichen Workspace bietet. Bevor wir weitermachen, muss ich ausdrücklich sagen, dass diese Serie nicht gesponsert ist. Jeder Entwickler sollte einen Editor nutzen, in dem er sich produktiv fühlt. Aber es gibt einen bestimmten Grund, warum ich mich für PyCharm für intensive Python-Entwicklung entschieden habe. Bei General-Purpose-Editoren musst du dir dein eigenes Environment aus verschiedenen Plugins zusammenbauen. Eine sprachspezifische IDE bietet eine tiefe Out-of-the-box-Integration, die Python-Syntax, Package Management und Projektstruktur sofort versteht. Wenn du ein frisches Python-Projekt aufsetzt, ist Isolation deine oberste Priorität. Wenn du Dependencies direkt in deiner System-Python-Installation installierst, müllst du auf Dauer deine globalen Packages zu und verursachst Versionskonflikte zwischen verschiedenen Applikationen. Um das zu verhindern, brauchst du ein Virtual Environment. In PyCharm startest du, indem du ein neues reines Python-Projekt erstellst. Du vergibst einen Projektnamen und einen Verzeichnispfad. Jetzt kommt der wichtige Teil. Anstatt ins Terminal zu wechseln, um manuell ein Environment zu erstellen und zu aktivieren, fordert PyCharm dich direkt im neuen Projektfenster auf, einen Python-Interpreter zu konfigurieren. Du wählst die Option, ein neues Virtual Environment zu erstellen, verweist auf die Python-Basisinstallation auf deinem Rechner, und die IDE erledigt den Rest. Sie baut das isolierte Environment und bindet es automatisch an deinen neuen Workspace. Wann immer du dieses Projekt öffnest, sind die richtigen Dependencies bereits aktiv. Sobald du das Projekt erstellt hast, wird dir ein versteckter Ordner namens dot idea im Root deines Workspaces auffallen. Leute verwechseln oft, was in dieses Directory gehört, mit den globalen Settings des Editors selbst. Globale IDE-Settings regeln Dinge wie dein visuelles Theme oder Custom Keyboard Shortcuts für deine gesamte Arbeit. Das dot idea Directory ist völlig anders. Es isoliert strikt Settings auf Projekt-Ebene. Es merkt sich, welches Virtual Environment dieses spezifische Projekt nutzt, mappt deine Projekt-Roots und speichert Code Style Overrides, die spezifisch für diese Codebase sind. Weil diese Settings definieren, wie das Projekt funktioniert, sollte das dot idea Directory generell in die Version Control committet werden. Das stellt sicher, dass, wenn ein Kollege dein Repository clont, sein Editor die Projektstruktur sofort ohne manuelle Konfiguration erkennt. Wenn dir diese Episoden gefallen und du die Show unterstützen möchtest, kannst du auf Patreon nach DevStoriesEU suchen. Der ultimative Mehrwert einer dedizierten IDE beim Setup ist, dass sie die mühsame kognitive Belastung des Environment Managements übernimmt, sodass du deine Zeit damit verbringen kannst, tatsächliche Business Logic zu schreiben. Danke fürs Zuhören, Happy Coding zusammen!
2

Versteckte Schätze: Run Configurations & Code Insight

4m 07s

Entdecke versteckte Produktivitäts-Schätze, die in der Benutzeroberfläche von PyCharm verborgen sind. Wir untersuchen, wie tiefgreifendes, PEP-spezifisches Code Insight und Intention Actions deinen Code sofort verbessern können. Du lernst, wie du das Run Popup und das Run Widget nutzt, um Coverage-Tests und Profiler mit einem einzigen Klick zu starten.

Herunterladen
Hallo, hier ist Alex von DEV STORIES DOT EU. PyCharm, die dedizierte Python-IDE, Folge 2 von 5. Die meisten Entwickler wechseln immer noch ins Terminal, um ihre Tests auszuführen und Coverage Reports zu generieren. Dabei ist ihnen gar nicht bewusst, dass ihre IDE eine integrierte Single-Click Action bietet, um genau die Codezeilen visuell hervorzuheben, die sie gerade verpasst haben. Heute schauen wir uns Hidden Gems an: Run Configurations und Code Insight. PyCharm liest deinen Code nicht einfach nur als Plain Text. Es parst deine strukturelle Logik anhand der neuesten Python Enhancement Proposals, bekannt als PEPs. Wenn du das in PEP 634 eingeführte Structural Pattern Matching verwendest, validiert der Editor aktiv deine match- und case-Statements. Er stellt sicher, dass deine Patterns vollständig sind, und warnt dich, falls ein case nicht erreichbar ist. Genau das Gleiche macht er für die neue Type Parameter Syntax aus PEP 695. Die IDE markiert Generic Type Mismatches nativ und sofort, lange bevor du überhaupt versuchst, den Code auszuführen. Wenn die IDE eine Ineffizienz oder ein potenzielles Improvement erkennt, bietet sie Intention Actions an. Wenn du Alt und Enter drückst, oder Option und Return auf einem Mac, triggerst du eine Liste mit kontextbezogenen Vorschlägen. Das sind keine simplen Find-and-Replace Textoperationen. Weil PyCharm den zugrunde liegenden Syntax Tree deiner Python-Datei versteht, kann es einen komplexen Nested Loop sicher in eine saubere Dictionary Comprehension umschreiben, ohne deine Logik kaputt zu machen. Es zielt genau auf den spezifischen Node in deiner Code-Struktur ab. Sobald dein Code geschrieben und verfeinert ist, musst du ihn ausführen. Die meisten Leute klicken auf den standardmäßigen grünen Play Button in der Main Toolbar und hören da auf, weiter zu erkunden. Aber das Run Widget oben im Fenster hat noch viel mehr Power. Neben dem Play Button gibt es ein More Actions Menü, dargestellt durch drei Punkte. Wenn du dieses Menü öffnest, entdeckst du völlig andere Wege, deine Applikation zu launchen. Hier findest du die Optionen, deinen Code mit dem Profiler auszuführen oder deine Test Suite mit aktivierter Coverage zu starten. Viele Entwickler glauben fälschlicherweise, sie müssten ein Coverage Tool manuell installieren, es über die Command Line ausführen und einen Terminal Output Block lesen, um ihre Testergebnisse zu sehen. Das musst du nicht tun. PyCharm hat Code Coverage direkt in den Execution Step eingebaut. Wenn du Run with Coverage aus dem More Actions Menü auswählst, führt die IDE die Test Suite im Hintergrund aus. Danach blendet sie die Ergebnisse direkt in deinem Editor als Overlay ein. Du bekommst grüne und rote Marker im Gutter, direkt neben deinen Zeilennummern. Grün bedeutet, dass die Zeile getestet wurde, rot bedeutet, dass sie bei der Execution komplett übersprungen wurde. Um diesen Workflow nahtlos zu machen, nutze das Run Popup. Wenn du Alt Shift F10 unter Windows und Linux oder Control Option R unter macOS drückst, öffnet sich ein Floating Menu mit all deinen Project Configurations. Hier ist die entscheidende Erkenntnis: Du musst deine Maus nicht anfassen, um zu ändern, wie deine App läuft. Angenommen, du refactorst eine riesige, komplexe Funktion. Du machst deine strukturellen Änderungen mit einer Intention Action. Anstatt in einen Terminal Tab zu wechseln, rufst du das Run Popup auf, wählst deine Test Suite aus und launchst sie sofort mit Coverage. Innerhalb von Sekunden verifizierst du, dass dein Refactoring funktioniert und dass deine neue Logik immer noch vollständig getestet ist. Der wahre Wert einer dedizierten IDE ist nicht nur, Code schneller zu schreiben, sondern den Feedback Loop zwischen der Änderung einer Codezeile und dem genauen Wissen, wie sie sich bei der Execution verhält, zu verkürzen. Danke, dass du ein paar Minuten mit mir verbracht hast. Bis zum nächsten Mal, mach's gut.
3

Den Debugger meistern: Zustand und Breakpoints

4m 08s

Lass Print-Statements hinter dir und meistere den integrierten Debugger von PyCharm. Wir behandeln die Grundlagen zum Setzen von Breakpoints, dem schrittweisen Durchlaufen der Ausführung und der Inspektion des Heaps. Du lernst, wie du deine Anwendung pausierst, um präzise Variablenzustände und Thread-Ausführungspfade in Echtzeit zu betrachten.

Herunterladen
Hallo, hier ist Alex von DEV STORIES DOT EU. PyCharm Dedicated Python IDE, Folge 3 von 5. Wenn dein Code mit Print Statements übersät ist, nur um zu sehen, welchen Wert eine Variable hat, verschwendest du Stunden an Entwicklungszeit. Es ist an der Zeit, mit dem Raten aufzuhören und stattdessen zu beobachten. Heute geht es um das Thema Mastering the Debugger: State und Breakpoints. Stell dir vor, du suchst einen Bug in einem Data Transformation Script, wo ein Dictionary-Wert auf mysteriöse Weise zu None wird. Wenn du Print Statements benutzt, musst du das Print schreiben, das Script ausführen, die Console lesen, feststellen, dass du das Falsche ausgegeben hast, und wieder von vorne anfangen. Der Debugger ersetzt diesen Loop komplett. Er erlaubt es dir, die Ausführung deines Programms zu pausieren, den Memory Heap zu inspizieren, Variablenwerte zu checken und Thread States zu untersuchen, ohne jemals deinen Source Code zu verändern. Zu Beginn setzt du einen Line Breakpoint. Das machst du, indem du in den linken Gutter deines Editors klickst, direkt neben der Zeilennummer, wo du den Ursprung des Problems vermutest. Ein roter Punkt erscheint. Als Nächstes startest du dein Script im Debug Mode, indem du auf das Bug-Icon klickst, statt auf den normalen Run Button. Dein Programm wird ganz normal ausgeführt, bis es deinen Breakpoint erreicht. Die Ausführung pausiert unmittelbar bevor diese markierte Zeile Code ausgeführt wird. Wenn das Programm pausiert, öffnet sich automatisch das Debug Tool Window. Hier ist der entscheidende Punkt. Die Variables Pane in diesem Fenster gibt dir eine interaktive Live-Übersicht deines Application States. Du siehst jede Variable, die aktuell im Scope ist. Du kannst dein Dictionary aufklappen, um all seine Keys und Values in genau dieser Mikrosekunde zu sehen. Du hast auch Zugriff auf das Evaluate Expression Tool. Das erlaubt es dir, beliebigen Python-Code mitten in der Ausführung laufen zu lassen. Wenn du eine schnelle List Comprehension auf deine Daten anwenden oder eine komplexe Condition checken willst, tippst du es einfach in den Evaluator ein. Er verarbeitet das Ganze mit dem aktuellen Application State und gibt dir das Resultat zurück. Du kannst dieses Tool sogar nutzen, um einen Variablenwert on the fly zu überschreiben. So kannst du einen potenziellen Fix direkt dort testen, ohne die Debug Session neu zu starten. Du kannst dir auch die Frames Pane ansehen, die deinen Call Stack repräsentiert. Sie zeigt die genaue Abfolge der Function Calls, die zu deinem aktuellen Breakpoint geführt haben. Wenn du einen anderen Frame auswählst, kannst du die lokalen Variablen der Funktionen inspizieren, die deinen aktuellen Code aufgerufen haben. Sobald du pausiert hast, musst du die Ausführung Zeile für Zeile vorantreiben, um zu isolieren, wann der Dictionary-Wert zu None wird. Das nennt man Stepping. Entwickler verwechseln oft Step Over mit Step Into. Step Over bedeutet, die aktuelle Zeile auszuführen und bei der nächsten Zeile in der aktuellen Datei zu pausieren. Wenn die aktuelle Zeile einen Function Call enthält, führt Step Over diese gesamte Funktion im Hintergrund aus und bringt dich zur nächsten Zeile in deinem aktiven File. Das benutzt du, wenn du darauf vertraust, dass die Funktion korrekt arbeitet. Step Into bedeutet, direkt in den Function Call einzutauchen. Der Debugger verschiebt die Ausführung auf die erste Zeile dieser neu aufgerufenen Funktion, sodass du ihre interne Logik Zeile für Zeile nachverfolgen kannst. Durch die Nutzung von Breakpoints und Stepping kontrollierst du den Flow. Du pausierst kurz vor dem vermuteten Fehler, machst einen Step Into in die Transformationsfunktion und beobachtest, wie sich die Variables Pane aktualisiert. Die genaue Zeile, die ausgeführt wird, direkt bevor der Dictionary-Wert zu None wird, ist die Quelle deines Bugs. Der Debugger ist nicht nur ein Tool, um Crashes zu finden. Er ist eine interaktive Linse, die dir die absolute Kontrolle über deinen Program Flow und Memory State gibt. Das war's für diese Folge. Danke fürs Zuhören und keep building!
4

Async-Code visualisieren: Das Concurrency Diagram

3m 57s

Entmystifiziere asynchronen Code mit dem Concurrency Diagram von PyCharm. Wir tauchen in das Feature Thread Concurrency Visualization und den Asyncio-Graphen-Tab ein. Du lernst, wie du Deadlocks visuell erkennst, Thread-Wartezeiten verfolgst und komplexe Event Loops ohne Kopfschmerzen debuggst.

Herunterladen
Hallo, hier ist Alex von DEV STORIES DOT EU. PyCharm, die dedizierte Python-IDE, Folge 4 von 5. Asynchroner Code macht deine Anwendungen unglaublich schnell – bis ein stiller Deadlock alles zum Stillstand bringt und absolut keinen Error Trace hinterlässt. Herauszufinden, welche Coroutine genau hängt, ist bekanntermaßen schwierig. Die Lösung in PyCharm ist die Visualisierung von asynchronem Code: das Concurrency Diagram. Asynchroner Code ist schwer zu debuggen, da ein einzelner Event Loop ständig zwischen Tasks wechselt. Wenn du einen asynchronen Web-Scraper baust und der plötzlich zehn Minuten statt zehn Sekunden läuft, ist Standard-Logging meistens nutzlos. Print Statements geben nur eine chaotische Wand aus verschachteltem Text aus. Du weißt, dass ein Task wartet, aber du weißt nicht, welcher oder warum. Du denkst vielleicht, du brauchst hier einen Standard-CPU-Profiler. Brauchst du nicht. Ein Standard-CPU-Profiler zeigt dir, welche Funktion die meiste Rechenleistung verbraucht hat. Das Concurrency Visualization Feature ist anders. Es ist ein spezialisiertes Tool, das explizit dafür entwickelt wurde, Thread-States und Asyncio Event Loops im Zeitverlauf zu tracken. Es zeigt dir, wann dein Code absolut nichts tut. Du greifst über das Run Widget oben in deiner IDE auf dieses Feature zu. Öffne das More Actions Menü für deine Run Configuration und wähle die Option zum Profilen mit Concurrency Visualization. PyCharm führt deinen Code aus und generiert anschließend ein detailliertes Diagramm in einem eigenen Tool Window. Wähle in diesem Window den Asyncio Graph Tab aus. Hier findet die eigentliche Visualisierung statt. Das Interface zeigt eine Timeline an. Jeder horizontale Track repräsentiert einen Event Loop oder einen Thread. Entlang dieser Tracks zeichnet PyCharm Blöcke, die deine Coroutinen darstellen. Die Länge eines Blocks zeigt, wie lange die Coroutine existiert hat. Jetzt wird es interessant. Jeder Block auf der Timeline ist farblich codiert, basierend auf seinem genauen State in dieser spezifischen Millisekunde. Eine Farbe zeigt an, dass die Coroutine aktiv läuft und die CPU nutzt. Eine andere Farbe zeigt, wenn sie wartet, vielleicht auf eine Network Response oder einen File Read. Eine weitere Farbe hebt hervor, wenn ein Thread komplett blockiert ist. Wende das mal auf das Szenario mit dem hängenden Web-Scraper an. Anstatt zu raten, warum der Scraper hängt, startest du die Concurrency Visualization. Du schaust dir den Asyncio Graph an und siehst zehn Coroutinen, die gestartet wurden, um Webseiten abzurufen. Neun davon werden als durchgehender Block in einer wartenden Farbe angezeigt. Du kannst auf diese Blöcke klicken, um genau zu sehen, welche Funktion sie repräsentieren. Du erkennst sofort, dass sie alle hängen und auf einen einzigen Network Lock warten, den eine vorherige Coroutine nicht freigegeben hat. Diese Real-Time States nativ in der IDE zu sehen, ist ein massiver Vorteil gegenüber manuellem Debugging. Es verlagert deine Perspektive vom Lesen sequenzieller Codezeilen hin zur Betrachtung echter zeitbasierter Zusammenhänge. Du findest Deadlocks nicht, indem du Logikfehler im Kopf nachverfolgst, sondern indem du die blockierten Farben und leeren Lücken auf einem visuellen Graphen physisch erkennst. Das wichtigste Takeaway ist, dass asynchrone Bugs meistens Probleme von Timing und State sind, und das Concurrency Diagram übersetzt diese unsichtbaren Timing-Probleme in eine klare visuelle Map. Danke, dass du ein paar Minuten mit mir verbracht hast. Bis zum nächsten Mal, mach's gut.
5

Swarm Programming: Code With Me

3m 37s

Bringe kollaboratives Programmieren mit Code With Me auf das nächste Level. Wir untersuchen, wie man Remote-Swarm-Programming-Sessions direkt in der IDE hostet und ihnen beitritt. Du lernst, wie du Gastberechtigungen verwaltest, Ports weiterleitest und Pair Programming betreibst, ohne dass jemand zusätzliche Software installieren muss.

Herunterladen
Hallo, hier ist Alex von DEV STORIES DOT EU. PyCharm Dedicated Python IDE, Folge 5 von 5. Screen Sharing ist okay für Präsentationen, aber wenn eine komplexe Database Migration lokal fehlschlägt, hilft ein Videostream nicht weiter. Ihr müsst beide die Hände an der Tastatur haben und direkt mit dem kaputten Environment interagieren. Genau das löst Swarm Programming mit JetBrains Code With Me. Code With Me ist ein built-in Feature für kollaborative Remote-Entwicklung. Es verwandelt deine lokale IDE in einen Shared Workspace für Swarm Programming, Mentoring und Collaborative Debugging. Stell dir ein Szenario vor, in dem ein Junior Teammate mit einer Database Migration kämpft, die nur auf seinem spezifischen lokalen Machine Setup fehlschlägt. Anstatt ihn kaputten Code pushen zu lassen oder zu versuchen, ihn in einem Call durch Terminal Commands zu lotsen, kann er direkt aus seiner IDE eine Remote Session starten. Das Setup hat eine klare Host- und Guest-Beziehung. Der Host ist die Person, die ihr Projekt teilt. Sie muss PyCharm installiert haben und es muss laufen. Es gibt den weit verbreiteten Irrglauben, dass jeder, der der Session beitritt, auch eine eigene kostenpflichtige PyCharm-Lizenz braucht. Brauchen sie nicht. Guests bekommen einfach einen Invitation Link, der vom Host generiert wurde. Wenn du als Guest auf diesen Link klickst, lädt dein Browser automatisch den JetBrains Client herunter und öffnet ihn. Das ist eine lightweight Application, die fast genauso aussieht und sich verhält wie eine vollständige PyCharm IDE, aber sie verarbeitet nichts lokal. Das ganze Heavy Lifting, Indexing und Syntax Checking passiert auf der Host Machine. Du bekommst die volle native Coding Experience, ohne dass der Source Code auf deine Festplatte geclont werden muss. Wenn du deine Machine für einen anderen Developer öffnest, sind Security und Boundaries wichtig. Der Host hat granulare Kontrolle darüber, was Guests tun dürfen. Du konfigurierst das, bevor du den Link generierst. Read-only Access bedeutet, der Guest kann sich Files ansehen und deinem Cursor folgen, aber nichts ändern. Edit Files erlaubt es ihnen, in Echtzeit neben dir zu tippen. Full Access übergibt quasi die Schlüssel und erlaubt dem Guest, Code auszuführen, Tests laufen zu lassen und direkt mit deinem lokalen Terminal zu interagieren. Du kannst diese Permissions on the fly während der Session ändern. Hier ist der entscheidende Punkt: Du teilst nicht nur Text Files; du teilst das Runtime Environment. Wenn der Junior Developer einen lokalen Webserver auf Port 8000 laufen lässt, um seine Migration zu testen, kann der Remote Senior Developer normalerweise nicht darauf zugreifen. Code With Me enthält ein Port Forwarding Feature, um das zu fixen. Der Host gibt einen lokalen Port an, den er sharen möchte. Der JetBrains Client bindet dann denselben Port auf der Guest Machine. Der Senior Developer kann seinen eigenen lokalen Webbrowser öffnen, zu localhost Port 8000 navigieren und mit der Application interagieren, die auf der Host Machine läuft. Collaborative Debugging funktioniert am besten, wenn du die Friction eliminierst, einen broken State zu reproduzieren. Mit Code With Me umgehst du das Environment Setup komplett und fixt das eigentliche Problem gemeinsam, genau dort, wo es existiert. Damit ist unsere Serie abgeschlossen. Ich ermutige dich, dir die offizielle JetBrains Documentation durchzulesen, diese Tools hands-on auszuprobieren oder DEV STORIES DOT EU zu besuchen, um Topics für zukünftige Serien vorzuschlagen. Danke, dass du ein paar Minuten mit mir verbracht hast. Bis zum nächsten Mal, mach's gut.