Die heutigen Programmierumgebungen verändern sich sehr schnell. Insbesondere durch den Fortschritt der KI-Technologie hat sich die Art und Weise, wie wir Code schreiben, grundlegend gewandelt. Da KI-Modelle wie ChatGPT oder Copilot in kürzester Zeit sauberen Code "auf Knopfdruck" erstellen, leben wir in einer völlig anderen Welt als in der Zeit, als Menschen den gesamten Code von Anfang bis Ende selbst schrieben.
Diese Veränderungen stellen den Entwicklern wichtige Fragen:
„In einer Zeit, in der KI den Code für uns schreibt, müssen Entwickler die internen Funktionsweisen des Codes wirklich tiefgehend verstehen?“
Auf diese Frage möchte ich ohne Zögern mit „Ja“ antworten.
Warum müssen wir es tiefgehend verstehen? – Verantwortung von Ingenieuren und Zusammenarbeit mit KI
1. Risikomanagement und Verantwortung
Es mag möglich sein, ein Projekt schnell abzuschließen, indem man den von der KI generierten Code einfach kopiert und einfügt, aber dies birgt langfristig erhebliche Risiken.
-
Unbekannte Fehler: Der von KI vorgeschlagene Code mag auf den ersten Blick in Ordnung erscheinen, könnte jedoch unter bestimmten Bedingungen unerwartete Bugs auslösen.
-
Skalierbarkeitsprobleme: Mit wachsender Projektgröße könnte der Code, den man ohne Kenntnis der internen Logik übernommen hat, problematisch werden.
Letztendlich ist es der Entwickler selbst, der all diese Probleme lösen muss. Als Entwickler sollte man verstehen, wie die verwendeten Tools und Codes funktionieren, und in der Lage sein, Fehler schnell zu diagnostizieren und zu beheben.
2. Wachstum als wahrer „Ingenieur“
In einer Zeit mit KI ist es notwendig, den Code tiefgehend zu verstehen, insbesondere weil wir mit KI zusammenarbeiten.
-
Effiziente Kommunikation: Wenn man der KI Fragen stellt, kann man nur bessere Antworten erhalten, wenn man genau erklärt, wo das Problem liegt.
-
Proaktive Gestaltung: Die Fähigkeit zu entscheiden, wie man Frameworks oder Bibliotheken kombinieren und welche Strukturen man entwickeln möchte, liegt immer noch beim Menschen.
-
Verbesserung des technischen Einblicks: Wenn man die internen Abläufe versteht, bekommt man strukturierte und kreative Ideen wie: „Dieses Framework funktioniert auf diese Weise, also kann ich diese Funktion so erweitern.“
Insbesondere bei Web-Frameworks wie Django ist dieses Verständnis von besonders großer Bedeutung. Viele Funktionen, die Django bietet, insbesondere die klassenbasierten Ansichten (CBV), bieten erhebliche Annehmlichkeiten und Erweiterungsmöglichkeiten. Wenn man jedoch die innere Struktur nur grob kennt, könnte man bei wachsendem Projekt Schwierigkeiten bekommen.
Warum von FBV zu CBV wechseln
Die Einfachheit von FBV (funktionsbasierte Ansichten)
Die meisten, die in Django einsteigen, beginnen mit FBV (Function-Based View).
-
Intuitiv: Die Struktur, die ein
request
entgegennimmt und einresponse
zurückgibt, ist leicht verständlich. -
Schnelles Prototyping: Mit kurzen Codes kann man die Benutzeroberfläche schnell zusammenstellen, was die anfängliche Entwicklungszeit verkürzt.
Doch wenn das Projekt wächst und die zu verwaltenden URLs und Ansichten zunehmen, wird die Codeverwaltung mit FBV kompliziert, und sich wiederholende Logik taucht an verschiedenen Stellen auf. Das stellt eine erhebliche Herausforderung in Bezug auf Wartung und Skalierbarkeit dar.
Wiederverwendbarkeit und Skalierbarkeit von CBV (klassenbasierte Ansichten)
CBV ist ein Konzept, das die Philosophie der objektorientierten Programmierung (OOP) auf die Django-Ansichtslogik anwendet.
-
Wiederverwendbarkeit: Die Trennung der Ansichtslogik in Methoden erleichtert die Erstellung von Vererbungshierarchien und Erweiterungen.
-
Klare Struktur: Abhängig von der Anfrage (GET, POST usw.) werden automatisch verschiedene Methoden aufgerufen, wodurch der Code logisch unterteilt wird.
-
Wartungsfreundlichkeit: Gemeinsame Funktionen werden in der übergeordneten Klasse untergebracht, und bei Bedarf können die einzelnen Ansichten (oder Bildschirme) nur die benötigten Teile überschreiben.
Angenommen, Sie müssen mehrere gleichartige Listenansichten erstellen. Bei FBV schreiben Sie immer wieder denselben (oder ähnlichen) Code, während Sie bei CBV eine grundlegende Klasse wie ListView erben und lediglich das Modell oder den Vorlagenname ändern müssen, um es viel einfacher anzuwenden. Das ist die wahre Stärke von CBV.
Gründe, warum es gut ist, CBV zu beherrschen
-
Lesbarkeit und Wartbarkeit des Codes verbessern sich erheblich.
-
Selbst wenn die Projektgröße wächst, können gemeinsame Funktionen leicht modularisiert und erweitert werden.
-
Durch die Nutzung der vielfältigen CBV-Klassen (ListView, DetailView, CreateView, UpdateView, DeleteView usw.), die Django standardmäßig anbietet, können Sie CRUD schnell umsetzen.
-
Entwickler können aktivere Zusammenarbeit leisten. Da KI generierte Codes auch darauf basieren, welche CBV verwendet werden sollten und wie die Details kontrolliert werden können.
Ziel der CBV-Untersuchungsreihe
In dieser Blogreihe werden wir die verschiedenen CBVs von Django einzeln betrachten. Wir werden spezifisch behandeln, in welchen Situationen jede CBV am effektivsten ist und wie man sie anpasst und verwendet.
Durch diesen Prozess erwarten wir folgende Ergebnisse:
-
Verständnis der Funktionsweise des Codes: Sie können Ihre Fähigkeiten so weiterentwickeln, dass Sie nicht nur den KI-generierten Code kopieren und einfügen, sondern auch selbst erklären können, „warum es so geschrieben werden sollte“.
-
Kenntnis der Rollen und Verwendungen von CBVs: Wenn Sie die Eigenschaften der verschiedenen CBVs von Django verstehen, sind Sie in der Lage zu sagen: „Für diesen Fall ist
FormView
ideal“. Sie können die entsprechende Ansicht situationsabhängig auswählen. -
Effiziente und proaktive Zusammenarbeit mit KI: Wenn Sie Einblicke gewinnen, in welche Teile des von KI vorgeschlagenen Codes Sie Änderungen vornehmen könnten, können Sie Ihre KI noch effizienter leiten und somit die Produktivität maximieren.
Ausblick auf zukünftige Themen
-
Verständnis der Grundansichtsklasse von Django
- Wir werden die Struktur der
View
-Klasse untersuchen und erfahren, wie Django während des Anfrage-Antwort-Prozesses darauf zugreift.
- Wir werden die Struktur der
-
FormView zur einfachen Handhabung von Formularen
-
Wir betrachten die Verwendung von
FormView
zur Bearbeitung von Benutzereingaben (Formularen). -
Sie werden Muster für die Formularvalidierung, die Bearbeitung von Fehlermeldungen und die Weiterleitung nach dem Erfolg erlernen.
-
-
Verwendung von ListView und DetailView
-
Wir besprechen
ListView
undDetailView
, um Listenansichten und Detailseiten effizient zu gestalten. -
Konkret werden wir Beispiele aus der Praxis und Tipps zum Umgang mit den Vorlagenkontextdaten teilen.
-
-
CRUD einfach mit CreateView, UpdateView und DeleteView handhaben
-
Wir werden Ansichts-Classes untersuchen, die die CRUD (Create, Read, Update, Delete)-Operationen nahezu automatisieren.
-
Dies wird hilfreich sein für diejenigen, die sich fragen: „Muss ich selbst ein Modell-Formular erstellen oder reicht es, die Funktionalität von CBV zu verwenden?“
-
-
Effizientes Rendering von Templates mit TemplateView
-
Ich werde Ihnen zeigen, wie Sie die
TemplateView
für das einfache Rendern von Seiten nutzen können. -
Ich gebe Tipps, wie Sie die Struktur für Situationen entwerfen können, in denen Sie nur schnell HTML-Vorlagen rendern müssen.
-
Fazit: Der bevorstehende Weg
In dieser Serie werden Sie die reichhaltige Welt der CBVs entdecken, die Django bietet. Wenn Sie bisher nur FBV verwendet haben, werden Sie neue Perspektiven gewinnen, wie „Oh, so funktioniert CBV also!“. Selbst wenn Sie bereits Erfahrungen mit CBVs gemacht haben, können Sie über tiefere Nutzungsmöglichkeiten und Erweiterungsstrategien nachdenken.
In der KI-Ära soll sich der Entwickler nicht nur auf das Schreiben von Code konzentrieren, sondern die **Funktionsweise des Codes** verstehen und die Fähigkeit zur **Entwicklung besserer Strukturen** aufbauen. Die CBVs von Django sind ein äußerst geeignetes Thema, um dies zu lernen und zu praktizieren.
Im nächsten Beitrag werden wir mit der grundlegenden View
-Klasse von Django beginnen und das Grundgerüst betrachten. Lassen Sie uns gemeinsam Schritt für Schritt lernen und den „richtigen Ingenieur“ werden, der robusten und skalierbaren Code schreibt.
Empfohlene Ressourcen
Vorschau auf die zukünftige ‚CBV-Untersuchungsreihe‘
-
Teil 2: „Funktionsweise der Grundansichtklasse von Django und deren Lebenszyklus“
-
Teil 3: „FormView: Formularverarbeitung sauber gestalten“
-
Teil 4: „ListView & DetailView: Implementierung von Datenlisten und Detailansichten“
-
... (folgt)
Vielen Dank, dass Sie diesen Beitrag bis zum Ende gelesen haben. Ich hoffe, Sie freuen sich auch auf die kommenden Teile der Serie und zögern Sie nicht, Fragen oder Gedanken, die Sie teilen möchten, in den Kommentaren zu hinterlassen!
„In der Zeit der von KI generierten Codes werden unsere ingenieurtechnischen Fähigkeiten und intellektuellen Einsichten heller strahlen als je zuvor.“
Es sind keine Kommentare vorhanden.