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

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

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.:
  • 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
    • web deployment
      • Render a unified cloud to build and run all your apps and websites
      • Cyclic build and run modern cloud-native serverless applications without piling on to the full stack.
      • Koyeb push code to production, everywhere, in minutes
  • 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
  • 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
  • inne narzędzia spotykane w firmach informatycznych a nieobecne w programie nauczania IS.
  • … jakich narzędzi używacie?