Kod: SCRIPT-007
Czas trwania: 30 godzin
Czas trwania: 30 godzin
Opis szkolenia
Python to niezwykle potężny i dynamiczny język programowania, który może być używany w różnych obszarach zastosowań (w tym w telekomunikacji). Często jest porównywany z Tcl, Perl, Ruby, Scheme lub Java. To szkolenie pomoże Ci zdobyć zaawansowane umiejętności programowania w Pythonie, biorąc udział w tworzeniu prawdziwego back-endowego oprogramowania.Podczas kursu przejdziemy przez niektóre z kluczowych obszarów, takich jak: interakcje w systemie plików, programowanie obiektowe, kryptografia, programowanie asynchroniczne, tworzenie oprogramowania back-end, interakcje z bazami danych, wielowątkowość i instalacja pakietów.
Plan szkolenia
Wprowadzenie. Krótkie wprowadzenie do kursu- Kluczowe cechy Pythona
- Systemy kontroli wersji (Git)
- Model Gitflow
- Środowiska wirtualne
- Wdrażanie środowiska wirtualnego
Serwer plików. Opis Projektu
- Opis projektu i wymagania projektowe
- Architektura projektu
Pierwszy prototyp. Praca z systemem plików
- Praca z systemem plików, menedżer kontekstów
- Moduły i importy
- Zmienne środowiska
- Pierwsza architektura prototypowa
- Opracowanie pierwszego prototypu serwera plików
Testowanie i konserwacja
- Główne zasady utrzymania kodu w Pythonie
- Standardy formatowania i dokumentowania kodu
- Testowanie kodu. Pytest framework
- Logowanie
- Obsługa ciągów dokumentów
- Tworzenie testów we frameworku Pytest
- Dodawanie logowania
Ochrona zasobów. Kryptografia. Programowanie obiektowe
- Programowanie obiektowe
- Klasa statyczna, singleton, meta-klasy
- Hermetyzacja w Pythonie
- Kryptografia w Pythonie, podpisy cyfrowe
- Funkcje skrótu
- Szyfrowanie symetryczne i asymetryczne, szyfrowanie hybrydowe
- Wdrażanie OOP w projekcie
- Implementacja klas statycznych i singletonów
- Rozwijanie funkcjonalności plików podpisów cyfrowych
- Szyfrowanie plików
Transfer kodu z Python 2 do Python 3
- Różnice między Pythonem 2 i Pythonem 3
- Przyszły pakiet, algorytm transferu kodu z Pythona 2 do Pythona 3
- Transfer kodu z Python 2 do Python 3
Opracowanie asynchronicznego serwera WWW
- GIL
- Programowanie asynchroniczne w Pythonie, asyncio
- Korekty i obiekty oczekiwane, pętla zdarzeń
- Serwer Aiohttp
- Pisanie własnych koreutorów
- Opracowanie serwera WWW aiohttp
- Testowanie opracowanego serwera WWW
Upoważnienie. Poświadczenie. Korzystanie z bazy danych
- Struktura bazy danych
- DBMS PostgreSQL
- Interakcje z bazami danych w Pythonie
- Budowanie zapytań SQL w Pythonie
- Wspieranie kont użytkowników
- Uwierzytelnianie użytkownika i żądanie autoryzacji
- Interakcja aplikacji z bazą danych
Montaż pakietów Pythona
- Pakiety Pythona, struktura pakietów
- Montaż i instalacja pakietu
- Montaż i instalacja własnego pakietu
CZĘŚĆ DODATKOWA (na podstawie wiedzy o uczestnikach)
- Implementacja modelu dostępu opartego na rolach
- Model dostępu oparty na rolach
- ORM, Alchemia SQL
- Implementacja modelu ograniczeń dostępu opartego na rolach
- Wdrożenie ORM
- Wielowątkowy program ładujący pliki
- Wątki, demony, kolejki
- Opracowanie wielowątkowego programu ładującego pliki
Cele
- Jak używać Pythona do interakcji w systemie plików
- Nauczenie się poprawnie obsługiwać kod
- Pisanie testów automatycznych w oparciu o framework Pytest
- Przejrzenie paradygmatu programowania zorientowanego obiektowo
- Jak używać Pythona do rozwiązywania zadań kryptograficznych
- Przesyłanie kodu programu z Python 2 do Python 3
- Poznanie koncepcji programowania asynchronicznego w języku Python
- Nauczenie się tworzyć serwer WWW
- Poznanie możliwości języka Python do pracy z bazami danych
- Zarządzanie dostępem do zasobów aplikacji
- Jak napisać wielowątkową ładowarkę plików
- Zbudowanie własnego instalowalnego pakietu Pythona
- Stworzenie własnego oprogramowania