Skip to content
Snippets Groups Projects
Hatice Yildirim's avatar
Hatice Yildirim authored
README.md

See merge request !3
c9a7e179
History
Name Last commit Last update
README.md

03_LLM_Assignments

Prompt

Du bist ein Experte für Softwareentwicklung und Git. Deine Aufgabe ist es, Git-Commit-Nachrichten nach ihrer Qualität zu bewerten. Orientiere dich an den Best Practices von Chris Beams:

  1. Verwendung des Imperativs: Der Titel (erste Zeile) beginnt mit einem Befehlswort (z. B. „Fix“, „Add“, „Update“). Kein „Fixed“ oder „Added“.
  2. Länge des Titels: Der Titel ist maximal 50 Zeichen lang.
  3. Trennung von Titel und Body: Titel und Body sind durch eine Leerzeile getrennt.
  4. Erklärung im Body: Der Body erklärt, warum die Änderung gemacht wurde (nicht nur was geändert wurde).
  5. Klarheit: Die Nachricht ist klar und einfach zu verstehen, ohne unnötige Worte.
  6. Keine vagen Aussagen: Die Nachricht enthält keine vagen oder nicht hilfreichen Begriffe wie „Fix“ oder „Update“ ohne weitere Erklärung.
  7. Details zur Änderung: Die Nachricht beschreibt, was genau geändert wurde und wie die Änderung das Projekt verbessert.

Für jede der oben genannten Regeln erhält die Commit-Nachricht maximal einen Punkt. Bewerte die Nachricht entsprechend, ob sie der jeweiligen Regel entspricht (1 Punkt) oder nicht (0 Punkte). Das maximale Bewertungsergebnis sind 7 Punkte.

Bewertung von 5 Git Commit Messages (Excel-Tabelle "Good")

Commit Message Score by ChatGPT Score by Copilot
Fix crash on login due to null user token 4 4
Rework the @PropertySource parsing logic recently changed in commit 7c608886 to deal with the same source appearing on a @Configuration class and an @Import class 4 4
Issue: SPR-12059 1 1
Update HierarchicalUriComponents.toUri() to only prepend a missing '/' when the scheme, user info, host or port are specified. This makes the toUri() method behave in the same way as .toUriString() and allows relative URIs to be created. 5 4
UriComponentsBuilder supports query without value 1 1

Bewertung von 5 Git Commit Messages (Excel-Tabelle "Bad")

Commit Message Score by ChatGPT Score by Copilot
refactoring .testsuite .aop.aspectj tests in preparation for migration to .context 3 3
re-adding mock.jndi.* artifacts to .orm test codebase eliminated after moving away from svn:externals 4 4
IN PROGRESS - issue SPR-5599: Hook @Configuration class processing into context:component-scan/ and context:annotation-config/ through AnnotationConfigUtils#registerAnnotationConfigProcessors 3 3
+ Adding POC tooling integration points, namely AbstractConfigurationPostProcessor and allowing for tooling-specified ClassLoader for use with ASM parsing + Eliminated ModelMethod in favor of BeanMethod throughout 6 4
polishing 2 2

Optional Assignment - Let an LLM create the Scoring Prompt

Meta-Prompt:

Du bist dazu bestimmt, Git-Commit-Nachrichten gemäß den 7 Regeln von Chris Beams zu bewerten. Deine Aufgabe ist es, einen Bewertungsprompt zu erstellen, der Commit-Nachrichten nach der Reihe der folgenden 7 Regeln prüft, ob sie diese Regeln einhalten:

https://cbea.ms/git-commit/#seven-rules

Dein Ziel ist es, einen Bewertungsprompt zu erstellen, der die Commit-Nachricht nach diesen 7 Regeln prüft. Die Punktzahl wird wie folgt vergeben:

  • 1 Punkt: Wenn die Commit-Nachricht der Regel entspricht.
  • 0 Punkte: Wenn die Commit-Nachricht nicht der Regel entspricht.

Am Ende der Bewertung addierst du die Punkte aus jeder Regel und gibst die Gesamtnote auf einer Skala von 0 bis 7 an.

Bewertungsprompt (vom Meta-Prompt erzeugt):

Bitte bewerte die folgende Commit-Nachricht anhand der 7 Regeln aus Chris Beams' Blogpost. Jede Regel sollte einzeln bewertet werden. Gib zu jeder Regel eine Punktzahl von 0 oder 1 und eine kurze Begründung, warum die Commit-Nachricht der jeweiligen Regel entspricht oder nicht. Am Ende addiere die Punktzahlen und gib eine Gesamtbewertung von 0 bis 7 an.

  1. Trenne Betreff und Textkörper mit einer Leerzeile:

    Hat die Commit-Nachricht Betreff und Textkörper durch eine Leerzeile getrennt?

     Punktzahl (0 oder 1): [Begründung]
  2. Begrenze den Betreff auf 50 Zeichen:

    Hat der Betreff maximal 50 Zeichen?

     Punktzahl (0 oder 1): [Begründung]
  3. Setze den Betreff groß:

    Ist der Betreff großgeschrieben?

     Punktzahl (0 oder 1): [Begründung]
  4. Verwende den Imperativ im Betreff:

    Wird der Imperativ verwendet (z. B. „Füge hinzu“, „Verbessere“, „Entferne“) im Betreff?

     Punktzahl (0 oder 1): [Begründung]
  5. Beende den Betreff nicht mit einem Punkt:

    Endet der Betreff nicht mit einem Punkt?

     Punktzahl (0 oder 1): [Begründung]
  6. Wickele den Textkörper bei 72 Zeichen:

    Wird der Textkörper bei 72 Zeichen umgebrochen?

     Punktzahl (0 oder 1): [Begründung]
  7. Erkläre im Textkörper was und warum, nicht wie:

    Wird im Textkörper erklärt, was getan wurde und warum, ohne detaillierte Anweisungen zum „Wie“?

     Punktzahl (0 oder 1): [Begründung]

Addiere die Punktzahlen aus den einzelnen Regeln. Die maximale Punktzahl ist 7, wenn alle Regeln vollständig eingehalten wurden.

    Gesamtbewertung (0–7)

Optional Assignment - Create a Commit Message using Prompt Engineering

Promt:

Commit-Promt Commit-Nachricht Bewertung
Erstelle eine Git-Commit-Nachricht für die folgende Aufgabe:"Schreibe Methode convert(n: int) -> str, die eine Zahl in einen String umwandelt." Die Commit-Nachricht soll den 7 Regeln für gute Git-Commit-Nachrichten von Chris Beams folgen: https://cbea.ms/git-commit/#seven-rules Schreibe Methode convert(n: int) -> str zur Umwandlung einer Zahl in String

Dieser Commit fügt die Methode convert(n: int) -> str hinzu, die eine ganzzahlige Eingabe in eine String-Repräsentation der Zahl umwandelt. Die Methode bietet eine einfache Möglichkeit, Zahlen in einen für Ausgaben geeigneten Format zu konvertieren.

Diese Implementierung deckt die grundlegende Umwandlung ab und ist auf erweiterbare Anforderungen ausgelegt.
6
Erstelle eine Git-Commit-Nachricht für die folgende Aufgabe:"Implementiere Calculator.add(a, b)-Methode und schreibe dazu einen Unit-Test." Die Commit-Nachricht soll den 7 Regeln für gute Git-Commit-Nachrichten von Chris Beams folgen: https://cbea.ms/git-commit/#seven-rules Implementiere Methode add(a, b) in Calculator mit Unit-Test

Dieser Commit fügt die Methode add(a, b) zur Calculator-Klasse hinzu und ergänzt einen zugehörigen Unit-Test. Die Methode gibt die Summe der beiden übergebenen Zahlen zurück.

Der Test stellt sicher, dass die Addition korrekte Ergebnisse für typische Eingabewerte liefert und die grundlegende Funktionalität abgedeckt ist.
7
Erstelle eine Git-Commit-Nachricht für die folgende Aufgabe:"Füge Test für andere Studenten-Implementierungen hinzu (other.student.Calculator)" Die Commit-Nachricht soll den 7 Regeln für gute Git-Commit-Nachrichten von Chris Beams folgen: https://cbea.ms/git-commit/#seven-rules Füge Test für andere Studenten-Implementierungen hinzu

Dieser Commit ergänzt einen Test, der gezielt die Implementierungen anderer Studierender testet, insbesondere die Klasse other.student.Calculator. Ziel ist es, die Kompatibilität und Korrektheit der eigenen Lösung im Vergleich zu alternativen Implementierungen sicherzustellen.

Der Testlauf kann bei der Validierung im Rahmen von Übungen oder Abgabenprozessen eingesetzt werden.
6
Erstelle eine Git-Commit-Nachricht für die folgende Aufgabe:"Füge Testlauf hinzu, bei dem andere Tests gegen deine Implementierung laufen" Die Commit-Nachricht soll den 7 Regeln für gute Git-Commit-Nachrichten von Chris Beams folgen: https://cbea.ms/git-commit/#seven-rules Füge Testlauf hinzu für Ausführung anderer Tests gegen eigene Lösung

Dieser Commit ergänzt einen Testlauf, bei dem vorhandene Tests gegen die eigene Implementierung ausgeführt werden. Dadurch kann sichergestellt werden, dass die Lösung mit den bestehenden Erwartungen übereinstimmt und korrekt funktioniert.

Der Testlauf kann sowohl manuell als auch im Rahmen automatisierter Testprozesse verwendet werden.
6