Skip to content

Commit

Permalink
Lecture: finalise challenges for Rectoring lesson (#875)
Browse files Browse the repository at this point in the history
closes #835
  • Loading branch information
cagix authored Jun 18, 2024
1 parent ec4c7f2 commit abba722
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 15 deletions.
50 changes: 50 additions & 0 deletions lecture/building/ci.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,56 @@ youtube:
fhmedia:
- link: "https://www.hsbi.de/medienportal/m/74a8f8c2e1a07d9fb70c8984e522d884141b2260c27dadfd7a23884bee8c0573136475ce66f28562097ca34a63fcf9c6d1c45ff695485d79465a4131878180ca"
name: "VL Continuous Integration"
challenges: |
Betrachten Sie erneut das Projekt [Theatrical Players Refactoring Kata](/~https://github.com/emilybache/Theatrical-Players-Refactoring-Kata).
Erstellen Sie für dieses Projekt einen GitHub-Workflow, der das Projekt kompiliert und die Testsuite ausführt
(nur für den Java-Teil, den restlichen Code können Sie ignorieren).
Dabei soll das Ausführen der JUnit-Tests nur dann erfolgen, wenn das Kompilieren erfolgreich durchgeführt wurde.
Der Workflow soll automatisch für Commits in den Hauptbranch sowie für Pull-Requests loslaufen. Es soll zusätzlich
auch manuell aktivierbar sein.
<!--
```yaml
name: WUPPIE
on:
push:
branches: [master] # push on master branch
pull_request: # triggered by pull requests
workflow_dispatch: # manually triggered
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
- name: Build with Gradle
run: cd java/ && ./gradlew assemble
junit:
name: JUnit
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
- name: JUnit
run: cd java/ && ./gradlew test
```
-->
---


Expand Down
20 changes: 5 additions & 15 deletions lecture/coding/refactoring.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,25 +46,15 @@ fhmedia:
- link: "https://www.hsbi.de/medienportal/m/36389f8fe4befc6370c28cda4475690224942c00c854e6dfc953b60c26acdf62093345ae1ee0698f71dc0a7f02739253d4ba29b7c05b69036cbb09fb1e361549"
name: "VL Refactoring"
challenges: |
In der [Vorgabe](/~https://github.com/Programmiermethoden-CampusMinden/Prog2-Lecture/tree/master/lecture/coding/src/challenges/refactor)
finden Sie einige Klassen mit unübersichtlichem und schlecht strukturierten Code.
Betrachten Sie das [Theatrical Players Refactoring Kata](/~https://github.com/emilybache/Theatrical-Players-Refactoring-Kata).
Dort finden Sie im Unterordner [java/](/~https://github.com/emilybache/Theatrical-Players-Refactoring-Kata/tree/main/java)
einige Klassen mit unübersichtlichem und schlecht strukturierten Code.
Welche _Bad Smells_ können Sie hier identifizieren?
Beheben Sie die Smells durch die _schrittweise Anwendung_ von den aus der Vorlesung
bekannten Refactoring-Methoden. Wenden Sie dabei _mindestens_ die unten genannten
Methoden an. Wenn Sie keinen passenden Smell identifizieren können, suchen Sie sich
eine geeignete Stelle, um die jeweilige Methode anzuwenden. Denken Sie auch daran,
dass Refactoring immer durch eine entsprechende Testsuite abgesichert sein muss.
Ergänzend zu der Übersicht aus der Vorlesung finden sie unter
[Refactoring Guru](https://refactoring.guru/refactoring/techniques) eine erweiterte
Auflistung der gängigen Refactoring-Techniken.
1. Extract Method/Class
2. Move Method/Field
3. Encapsulate Method/Field
4. Pull Up oder Push Down
bekannten Refactoring-Methoden. Denken Sie auch daran, dass Refactoring immer durch
eine entsprechende Testsuite abgesichert sein muss - ergänzen Sie ggf. die Testfälle.
---


Expand Down

0 comments on commit abba722

Please sign in to comment.