KMS TypeScript

Aus THM-Wiki
Wechseln zu: Navigation, Suche
iCampus-Projekt
Arbeitstitel KMS
Betreuer Dennis Priefer
Projektbeginn 10/2018
Mitarbeiter Jens Niederreiter, Vytautas Hermann
Programmiersprache typescript, javascript


Übungen innerhalb des Modules Konzepte moderner Softwareentwicklung.

Projekt

TypeScript

TypeSchript - Übersicht

Jeder darf bei dem TypeScript Projekt mitarbeiten. Dies wird in einer sehr verständlichen Readme.md auf Github erklärt. Außerdem ist TypeScript ein sehr aktives Projekt was
bedeutet, dass man eine schnelle Antwort auf seine Fragen erhält (meist am gleichen Tag). Nachdem ein Pull Request gestellt wurde, laufen zuerst automatisierte Tests durch. Sobald diese erfolgreich waren,
prüft ein Maintainer, ob der Pull Request angenommen wird.

Issues

Wir haben uns vorgenommen die beiden folgenden Issues zu bearbeiten:
1. "If this was intentional, convert the expression to 'unknown' first" diagnostic should come with a codefix
2. Poor error message for computed string enums

Geplantes Vorgehen

- in die Konventionen zur Mitarbeit einlesen
- Projekt Forken
- issue austesten
- issue bearbeiten
- Tests durchlaufen
- Pullrequest stellen

Community

Mit der Community von Typscript haben wir uns nicht auseinander gesetzt, allerdings waren manche ihrer Kommentare zu den Issues, für die Bearbeitung derer, hilfreich.

Kompläxitätsübersicht

Das erste Issue wurde nicht bearbeitet, da bereits einige Stunden vor unserer Arbeit ein Pull Request gestellt wurde. Aus diesem Grund haben wir uns nur für das zweite Issue
entschieden. Die Bearbeitung des zweiten Issues dauerte ungefähr drei Stunden.

Probleme

Während der Bearbeitung des Issues sind einige Probleme aufgetreten. Zuerst viel es uns sehr schwer sich ein ein großes Projekt wie TypeScript einzuarbeiten. Die nahm bereits
sehr viel Zeit in Anspruch. Nachdem dann die Fehlerstelle ausfindig gemacht wurde, ging die Bearbeitung relativ schnell voran

Tests

Die Tests haben wir nicht korrekt zum laufen gebracht, da selbst ohne unsere Änderungen die Tests schief gelaufen sind.
Daher haben wir auf die Tests im Pull-Request geachtet. Die Node-Tests sind an den npm Tests gescheitert also genau wie bei uns im lokalen Verzeichnis

Scrum Übung

Am 01.11.2018 führten wir in vierer Gruppen eine Übung zu Scrum durch. Dabei programmierten wir einen Task Manager.

Probleme

Da wir vor Anfang der Übung nicht wussten um welches Projekt es sich handeln wird, hatten wir keine Vorbereitungszeit.
Dies führte dazu, dass wir eine Programmiersprache verwendeten in der wir nicht fit waren.
Außerdem führte die geringe Zeit die wir zum tatsächlich zum programmieren zur Verfügung hatten dazu, dass wenig Rücksprache mit den Product Ownern gehlalten werden konnte.

Positives

- hohe Produktivität
- praktische Übung
- Teamarbeit
- angenehmes Arbeitsklima

Negatives

- Zeitdruck
- willkürliche Product Owner :)

Feedback

Für ein ähnliches Projekt in der Zukunft würden wir uns wünschen, dass es möglicherweise einen kompletten Projekttag gibt, sodass der Zeitdruck negiert wird.
Außerdem würde es helfen wenn man sich ein wenig auf das Projekt vorbereiten kann(in Programmiersprache einarbeiten etc...).

Test Driven Development

Am 08.11.2018 führten wir eine Übung zum Test Driven Development durch. Hierbei verwendeten wir Unit Test. Danach sollten wir Test in unser bestehendes Projekt von
der vorherigen Woche einfügen. Hier standen einige Testframeworks zur Auswahl:
- JEST
- qUnit
Wir entschieden uns für qUnit und formulierten einen Test für das Projekt. Außerdem verwendeten wir jsHint um unseren Code nach der Style-Convention zu testen.

Continuous Integration

Wir forkten das Projekt, welches wir in der Scrum Übung erstellt haben um daran die Konzepte der "Continuous Integration" einzubinden.
In diesem Sinne legten wir eine TravisCI Pipeline an. Bei der Integration unseres qUnit Tests kam es leider immer zu Fehlern, obwohl diese Lokal keine Fehler aufwiesen.
Außerdem fügten wir Hound zu unserem Projekt hinzu, damit unser Code automatisch analysiert wird.
Unter folgendem Link sehen Sie den erfolgreichen Durchlauf der Pipeline: Merge Request
Des weiteren sollte das Projekt automatisch auf GithubPages deployed werden. Dafür nahmen wir erneut TravisCI zur Hilfe. Unter folgendem Link sehen Sie das "deployte" Projekt: Deployment