Crocker | Softwareentwicklung mit ChatGPT und Copilot | E-Book | www.sack.de
E-Book

E-Book, Deutsch, 288 Seiten

Crocker Softwareentwicklung mit ChatGPT und Copilot

Mit innovativen KI-Tools Produktivität, Effizienz und Codequalität steigern
1. Auflage 2025
ISBN: 978-3-98890-230-6
Verlag: dpunkt.verlag
Format: EPUB
Kopierschutz: 6 - ePub Watermark

Mit innovativen KI-Tools Produktivität, Effizienz und Codequalität steigern

E-Book, Deutsch, 288 Seiten

ISBN: 978-3-98890-230-6
Verlag: dpunkt.verlag
Format: EPUB
Kopierschutz: 6 - ePub Watermark



Der Praxisleitfaden für die Zukunft der Softwareentwicklung mit KI-Assistenz - Erfahren Sie, wie Sie KI-Tools Schritt für Schritt in Ihre täglichen Arbeitsabläufe integrieren - Anhand konkreter Beispiele zeigt Ihnen Nathan B. Crocker, wie Sie Code und Designideen generieren und dabei in jeder Phase des Entwicklungsprozesses KI-Assistenten einsetzen - Themen sind Softwaredesign und -entwicklung, Datenmanagement, Testing, Deployment, Dokumentation und Sicherheit   KI-Assistenten verändern die Art und Weise, wie wir Code schreiben und Software entwickeln, grundlegend. Dieses Buch stellt effektive Techniken und Best Practices vor, um mit Tools wie Copilot und ChatGPT das Beste aus der KI-gestützten Programmierung herauszuholen. Jenseits des Hypes erfahren Sie anhand von Praxisbeispielen, wie KI-Tools die Softwareentwicklung effizienter machen, die Qualität des Codes verbessern, Ihnen Ihre Arbeit erleichtern und Sie kreativer werden lassen. Das Themenspektrum des Buchs umfasst den kompletten Entwicklungszyklus von Software: von der Designidee und der Codegenerierung über das Debugging und die Dokumentation bis zum Deployment. Aus dem Inhalt - Nutzen Sie KI, um Ihre Software zu entwerfen und zu planen - Führen Sie KI in jeden Schritt des Workflows ein - Entwickeln Sie eine selbstdokumentierende Anwendung - Lernen Sie, gute Prompts zu formulieren, um komplexe Probleme mit KI zu lösen - Erfahren Sie, wie KI beim Testen Ihres Codes, der Infrastruktur und bei Sicherheitsfragen helfen kann

Nathan B. Crocker ist Mitgründer und CTO bei Checker, einer API-First-Lösung, die traditionelle Kapitalmarktinfrastrukturen mit dem Blockchain-Ökosystem verbindet. Mit über 20 Jahren Erfahrung in den Bereichen Technologie und Finanzen ist er sehr daran interessiert, die komplexen Herausforderungen der Kapital- und Kryptomärkte zu lösen.
Crocker Softwareentwicklung mit ChatGPT und Copilot jetzt bestellen!

Weitere Infos & Material


1 Large Language Models verstehen


Kapitelübersicht


  • ? Einführung in generative KI (insbesondere Large Language Models)
  • ? Die Vorteile generativer KI erkunden
  • ? Herausfinden, wann der Einsatz generativer KI sinnvoll ist und wann nicht

Ob es Ihnen nun aufgefallen ist oder nicht und ob Sie wollen oder nicht – Sie wurden im Stillen für eine Beförderung ausgewählt. Alle anderen professionellen Software-Engineers übrigens auch. Fast über Nacht haben wir uns von Staff Engineers in Engineering Manager verwandelt. Sie haben jetzt nämlich den talentiertesten Junior-Entwickler im Team. Generative KI ist Ihr neuer Programmierpartner. Aus diesem Grund sollten Anleitung, Mentoring und die Code-Reviews ab sofort Teil Ihres Alltags werden. Dieses Kapitel gibt Ihnen einen Überblick über eine Untermenge generativer KI, die als Large Language Models (große Sprachmodelle, LLMs) bezeichnet werden. Insbesondere werden wir uns mit ChatGPT und GitHub Copilot beschäftigen.

Hinweis

Dies ist kein traditionelles Programmierbuch. Es ist keine Abfolge von Handlungsanweisungen. Stattdessen treten Sie in einen Dialog mit verschiedenen LLMs. Und wie bei jeder Konversation werden sich die Worte und Richtung je nach Modell und dem vorigen Kontext verändern. Die abgedruckten Antworten und Ausgaben werden sich sehr wahrscheinlich von denen unterscheiden, die Sie erhalten. Das sollte Sie aber nicht davon abhalten, diese neue Welt zu erkunden. Dabei ist der Weg mindestens so bereichernd wie das Ziel. Gelegentlich werden Sie frustriert sein, weil Sie nicht gleich alle Dinge durchschauen. Haben Sie Geduld. Wenn Sie diszipliniert sind (und ein wenig abenteuerlustig), können Sie GPT durch die Themen und Ziele dieses Buchs zur Zusammenarbeit bewegen – zu lernen, wie Sie generative KI nutzen können, um ein besserer Programmierer zu werden.

1.1 Ihre Entwicklung beschleunigen


Willkommen in einem neuen Zeitalter der Softwareentwicklung, in dem Ihr Entwicklerteam durch einen sehr talentierten Engineer erweitert wird. Generative KI ist nicht nur ein Werkzeug, sondern Ihr nächstes Teammitglied, das nur darauf wartet, Ihre Programmierung auf ein neues Niveau zu heben. Stellen Sie sich den Entwurf komplexer Systeme vor; überlegen Sie, wie es ist, mit nie dagewesener Geschwindigkeit zu coden und mit einer Robustheit zu testen, die Sie nie für möglich gehalten haben – all das mithilfe einer künstlichen Intelligenz, die sich aus dem Wissen der Besten speist. In diesem Buch erforschen wir, wie generative KI Ihnen nicht nur bei alltäglichen Programmieraufgaben helfen kann, sondern Sie auch unterstützen kann, bisher unerreichbare Leistungen zu erbringen und dabei für eine schnellere Entwicklung, höhere Qualität und eine nie dagewesene Innovationsfähigkeit zu sorgen.

LLMs und generative KI können Ihren Software-Entwicklungsprozess drastisch beschleunigen. Indem Sie die mühsame Erstellung von Code-Grundstrukturen automatisieren, sind Sie frei, sich auf kreative Problemlösungen und wertschöpfende Aufgaben zu konzentrieren. Nehmen wir z. B. das folgende Szenario: Ein LLM soll für Sie eine Flask-Applikation erstellen. Hierfür könnten Sie folgenden Prompt (Eingabe an das LLM) verwenden:

Generate a stubbed-out Flask application.

Deutsch: Erstelle die Grundstruktur einer Flask-Applikation.

Listing 1.1 Beispiel für die Grundstruktur einer Flask-Applikation, die von einem LLM erzeugt wurde

from flask import Flask

app = Flask(__name__)

@app.route('/')

def home():

return "Hello, world!"

if __name__ == '__main__':

app.run(debug=True)

Hinweis

Wenn Sie beim Lesen dieses Buchs den deutschsprachigen Prompt eingeben, liefert Ihnen die aktuelle Version von ChatGPT (4o) nicht nur den Inhalt der Hauptdatei, sondern eine umfassende Anleitung inklusive aller benötigten Dateien, Bibliotheken und Verzeichnisse. Ein Versuch lohnt sich!

LLMs sind Deep-Learning-Modelle, die gut darin sind, auf Prompts in natürlicher Sprache entsprechende Antworten in natürlicher Sprache zu erzeugen. Stellen Sie sich vor, Sie beschreiben einfach in normalem Englisch (oder Deutsch), was Sie brauchen, und erhalten Code zurück, den Sie direkt integrieren können:

Create a class for managing user sessions in Python.

Deutsch: Erstelle eine Klasse für die Verwaltung von Benutzer-Sessions in Python.

Listing 1.2 Eine Möglichkeit für erzeugten Code einer Klasse für die Verwaltung von Benutzer-Sessions

import uuid

from datetime import datetime, timedelta

class SessionManager:

def __init__(self):

self.sessions = {}

def create_session(self, user_id):

"""Create a new session for a user with a unique session ID and

expiration time."""

session_id = str(uuid.uuid4())

# Sitzungen laufen nach einer Stunde ab

expiration = datetime.now() + timedelta(hours=1)

self.sessions[session_id] = {'user_id':

user_id, 'expiration': expiration}

return session_id

def get_user_id(self, session_id):

"""Retrieve a user ID from a session ID

if the session is still valid."""

session_info = self.sessions.get(session_id)

if session_info and session_info['expiration'] > datetime.now():

return session_info['user_id']

return None # Sitzung ist abgelaufen oder existiert nicht

def delete_session(self, session_id):

"""Delete a session by its ID."""

if session_id in self.sessions:

del self.sessions[session_id]

def is_session_valid(self, session_id):

"""Check if a session is still valid."""

return session_id in self. sessions and self.sessions[session_id]

['expiration'] > datetime.now()

Diese Werkzeuge steigern außerdem Ihre Effizienz beim Debuggen, indem sie Muster finden und Reparaturen vorschlagen. Angenommen, Sie möchten, dass eine KI einen Codeblock analysiert und auf mögliche Speicherlecks hinweist. Dann könnte das Modell beispielsweise folgenden Code erzeugen.

Listing 1.3 Ein LLM verwenden, um ein mögliches Speicherleck in Python zu finden

def process_data():

large_data = [x for x in range(1000000)]

# Eine große Liste mit Zahlen

result = sum(large_data)

print("Result of processing:", result)

# large_data wurde nicht geleert oder neu

# zugewiesen, wodurch die Daten

# möglicherweise im Arbeitsspeicher verbleiben

process_data()

Laut ChatGPT zeigt dieser Python-Code ein mögliches Speicherleck, weil eine große Liste nach ihrer Benutzung nicht ausdrücklich geleert wurde. Dadurch kann ihr Inhalt möglicherweise länger als nötig im Speicher verbleiben, wenn die Referenzen nicht ordentlich verwaltet werden.

Im verbesserten Code schlägt das KI-Werkzeug vor, die Liste ausdrücklich zu leeren oder ihr nach der Verwendung zuzuweisen, damit der Speicher früher wieder freigegeben werden kann. Dies kann besonders in Bereichen helfen, wo die Garbage Collection eher vorsichtig ist.

Listing 1.4 »Verbesserter« LLM-Code für den Umgang mit einem möglichen Speicherleck

def process_data():

large_data = [x for x in range(1000000)]

# Eine große Liste mit Zahlen

result = sum(large_data)

print("Result of processing:", result)

large_data = None

# Referenz ausleeren, um Speicher freizugeben

process_data()

Kommt es später zu einer Refaktorierung, kann die KI Optimierungen vorschlagen, die Ihren Code sauberer und effizienter machen, wie in den folgenden zwei Listings gezeigt:

Listing 1.5 Wortreicher (»verbose«) Code vor der Refaktorierung

class DataProcessor:

def __init__(self, data):

self.data = data

def process_data(self):

if self. data is not None:

if len(self.data) > 0:

processed_data = []

for d in self.data:

if d is not None:

if d % 2 == 0:

processed_data.append(d)

return processed_data

else:

return []

else:

return []

processor = DataProcessor([1, 2, 3, 4, None, 6])

result = processor.process_data()

print("Processed Data:", result)

Nach der Refaktorierung ist der Code lesbarer, wartbarer und sprachspezifischer (»idiomatischer«).

Listing 1.6 Der vom LLM refaktorierte Code ist deutlich kürzer.

class DataProcessor:

def __init__(self,...


Nathan B. Crocker ist Mitgründer und CTO bei Checker, einer API-First-Lösung, die traditionelle Kapitalmarktinfrastrukturen mit dem Blockchain-Ökosystem verbindet. Mit über 20 Jahren Erfahrung in den Bereichen Technologie und Finanzen ist er sehr daran interessiert, die komplexen Herausforderungen der Kapital- und Kryptomärkte zu lösen.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.