Narzędzia programistyczne

W semestrze zimowym 2020/2021 laboratorium odbywa się zdalnie za pośrednictwem Moodle https://moodle.umk.pl/WFAIIS we wtorki o godz. 17:30

Zaliczenie zajęć

Warunki zaliczenia laboratorium:

Kolokwium zaliczeniowe (test) ...

... lub prezentacja wybranych narzędzi programistycznych (ok. 30-45 min. na osobę). W prezentacji, obok części prowadzającej teoretycznie, należy zawrzeć przykłady demonstracyjne.

Zagadnienia na kolokwium

Przebieg zajęć/ prezentacje

Data	Temat	Prowadzący
6.10.2020	Sprawy organizacyjne
27.10.2020 g. 17:30	BitBucket pipelines + SourceTre	BP, MR
1.12.2020 g. 17:30	Azure DevOps	MC, MC, MM
8.12.2020 g. 17:30	GitLab	JE, KK, MM
?	Resharper	KL

Propozycje tematów

Narzędzia CI/CD (continuous integration, continuous delivery, continuous deployment).
Prezentacja dla zespołu 3-4 osobowego demonstrująca pełen pipeline wytwórczy na przykładowym projekcie deweloperskim.

wsparcie dla pracy zespołowej, zarządzanie zespołem i zadaniami, issue tracker, wybrana metodologia (np. scrum)

repozytorium kodu (system kontroli wersji) i workflow w zespole, np.:

Github workflow: branch -> commit -> Pull Request -> Review -> Deploy -> Merge

A Successful Git branching model]] Git Flow

automatyzacja procesów: budowania, testów, deployment

Propozycje:

Azure DevOPs (Repos, Boards, itd. ), ewentualnie integracja z innymi usługami (np. GitHub)

BitBucket pipelines

Jira Software + BitBucket + Bamboo (CI, free for 30 days)

GitLab

git + Buildbot

GitHub + Jenkins automation server

GoCD free & open source ci/cd server

github, bitbucket + Travis CI + Heroku

GitHub + TeamCity

inne kombinacje wspomnianych (lub nie wspomnianych) platform

Inne propozycje dla pojedynczych osób:

Resharper - narzędzia wspomagające produktywność (nawigacja, generowanie kodu, refaktoring, ...) + analiza kodu

Narzędzia wspoierające testowanie jednostkowe

techniki izolacji, atrapy (mocki), wzorce w testowaniu jednostkowym, biblioteki: Moq, FakeItEasy, RhinoMocks, NSubstitute, ..

generowanie testów i danych do testów, np. biblioteka AutoData, AutoFixture, ...

Profilowanie aplikacji, np.: narzędzia diagnostyczne w Visual Studio, instrumentacja, profilowanie statystyczne (sampling), debugowanie pamięci