Narzędzia programistyczne
W semestrze zimowym 2023/24 laboratorium odbywa się zdalnie za pośrednictwem platformy Moodle https://moodle.umk.pl/WFAIIS/course/view.php?id=23
Zaliczenie zajęć
Warunki zaliczenia laboratorium:
- Kolokwium zaliczeniowe (test) …
- … lub prezentacja wybranych narzędzi programistycznych (ok. 30-45 min. na osobę).
Zagadnienia obowiązujące na teście
Propozycje tematów
Narzędzia wzpierające pracę zespołow programistycznych: DevOps, 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 (może być na przykładzie projektu realizowanego aktualnie w ramach Pracowni Programowania Zespołowego).
Najważniejsze zagadnienia:
- wsparcie dla pracy zespołowej, zarządzanie zespołem i zadaniami, issue tracker, wybrana metodologia wytwórcza (agile, 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 wytwórczych: budowanie, testy, deployment
Propozycje narzędzi CI/CD:
- Azure DevOPs (Repos, Boards, Pipelines, itd. ), ewentualnie integracja z innymi usługami (np. GitHub)
- Jira Software + BitBucket + Bamboo (CI, free for 30 days)
- git + Buildbot
- GitHub + Jenkins automation server
- GoCD free & open source ci/cd server
- Northflank a comprehensive suite of features to support you from inception to production. Put your DevOps lifecycle on autopilot.
- GitHub/BitBucket +
- build
- CircleCI (up to 6,000 build minutes and 5 active users per month)
- web deployment
- GitHub + TeamCity powerful continuous integration for DevOps-centric teams
- inne kombinacje wspomnianych (lub nie wspomnianych) platform, np. 30 Best DevOps Tools to Learn and Master In 2023
Inne propozycje (dla pojedynczych osób):
- Resharper - narzędzia wspomagające produktywność (nawigacja, generowanie kodu, refaktoring, …) + analiza kodu
- Narzędzia wspierają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
- narzędzia do wirtualizacji Docker
- wykorzystanie sztucznej inteligencji w programowaniu
- Machinet - AI assistant for developers
- inne narzędzia spotykane w firmach informatycznych a nieobecne w programie nauczania IS.
- … jakich narzędzi używacie?