Technologie używane w projekcie
Kilka uwag co do technologii używanych w projekcie:
- Powinniście Państwo użyć przynajmniej dwóch różnych języków programowania w swoim projekcie.
- Jeśli w opisie projektu explicite nie zostało napisane inaczej powinniście Państwo użyć przynajmniej jednego języka niskiego poziomu - C/C++/Rust (jeśli chcielibyście użyć Państwo innego języka niskopoziomowego proszę najpierw o kontakt w celu uzyskania akceptacji takiego języka).
- W ogólności, z poprawką na poprzedni punkt i jeśli nie napisano inaczej w opisie projektu, macie Państwo dowolność w wyborze języka implementacji. Ze swojej strony proponuję następujące języki:
- Cały kod powinien "żyć" w repozytorium gitowym przez cały czas trwania projektu (tj. pracujecie Państwo na repozytorium - niedopuszczalna jest sytuacja, w której cały projekt składa się z jednego commita).
- Zależności w projekcie powinny być zarządzane przez odp. narzędzie. Przykładowe narzędzia:
- Do zarządzania projektem (budowanie paczki, testowanie, generacja dokumentacji itd.) należy użyć jednego narzędzia, przykładowo:
- Polecane narzędzia do generacji wiązań:
- Polecane biblioteki/narzędzia do pisania testów jednostkowych:
- Rust - wbudowane wsparcie dla testów jednostkowych (
cargo test)
- Python - pytest
- C++ - Catch2
- Projekty korzystające z języka Python powinny używać środowiska wirtualnego.
- Całość aplikacji powinna być łatwo instalowalna - można założyć, że użytkownik posiada wyspecyfikowane narzędzia do budowania aplikacji i kompilatory/interpretery, ale nie można zakładać, że ma w systemie zainstalowane biblioteki z których Państwo korzystacie (oprócz biblioteki standardowej).
- Aplikacje powinny działać na systemach Linux i Windows.