Opis
Umiejętności zdobywane podczas kursu:
- Umiejętność implementowania zaawansowanej obsługi wielowątkowości
- Umiejętność przetwarzania i transformowania danych XML i JSON
- Umiejętność integracji z bazami danych oraz optymalizacji wydajności i profilowania programu oraz testowania aplikacji
Cel
- Zapoznanie się z zaawansowaną konstrukcją języka Python
- Opanowanie umiejętności implementowania zaawansowanej wielowątkowości w kontekście obsługi wywołań sieciowych
- Znajomość zagadnień związanych z integracją z bazami danych oraz optymalizacją wydajności i profilowaniem programu
- Wprowadzenie do popularnych bibliotek [IPython, Requests, Scrapy, BeautifulSoup, PIL / Pillow, NumPy, SciPy, matplotlib]
Grupa docelowa:
Kurs jest przeznaczony dla średnio zaawansowanych programistów programujących w języku Python. W istotnym stopniu poszerza on ich wiedzę dotyczącą programowania wielowątkowego oraz mechanizmów wewnętrznych języka. Wiedza i wykształcone w trakcie zajęć umiejętności, pozwalają na wydajniejsze i pozbawione typowych błędów programowanie w tym języku. Zajęcia poruszają także zagadnienia bezpośrednio związane ze współczesnymi metodykami wytwórczymi oprogramowania.
Szkolenie trwa: 3 dni.
Oferujemy szkolenia w naszych ośrodkach w Warszawie, Wrocławiu, Krakowie, jak i w lokalizacjach wskazanych przez klienta.
W celu ustalenia szczegółów prosimy o kontakt na osec@osec.pl
Wymagania:
- Znajomość programowania w języku Python na poziomie średnio zaawansowanym
- Umiejętność pracy w środowisku systemu operacyjnego Microsoft Windows lub GNU/Linux
- Znajomość podstaw zagadnień dotyczących programowania obiektowego i diagramów UML
- Umiejętność programowania okazjonalnego i prostej obróbki i weryfikacji danych
Konspekt
- Zaawansowane konstrukcje języka
- Dekoratory
- Metaklasy
- Desksryptory
- Rozszerzanie typów wbudowanych
- Izolowanie środowiska pracy
- Virtualenv
- Virtualenvwrapper
- Internacjonalizacja i standard Unicode
- Obsługa Unicode w języku Python
- Wielojęzyczność aplikacji i jej implementacja
- Programowanie wielowątkowe
- Zaawansowane możliwości szeregowania zadań w interpreterze Python
- Implementacja wielowątkowości
- Tworzenie i obsługa wątków
- Blokady, semafory, zmienne decyzyjne
- Praca z pulą wątków
- Diagnostyka i usuwanie błędów w aplikacjach wielowątkowych Python
- XML i JSON
- DOM i jego obsługa w języku Python
- Wprowadzenie do ElementTree
- Poruszanie się po dokumencie XML
- Tworzenie nowego dokumentu XML
- JSON
- Obsługa JSONa w Pythonie
- Konwertowanie Pythona do JSONa
- Integracja z bazami danych
- MySQL
- PostgreSQL
- Oracel
- MongoDB
- Mapowanie obiektoworelacyjne (ORM)
- Testowanie aplikacji
- testy jednostkowe
- moduł unittest
- py.test i inne popularne biblioteki testujące
- testdriven development.
- Optymalizacja wydajności i profilowanie programu
- Profilowanie przykładowego projektu aplikacji
- Identyfikacja „wąskich gardeł”
- Kierunki rozwoju języka i Python 3.x
- Nowości dostępne w wersji 3.x
- Zmiany składni wywołań
- Konwersja istniejących aplikacji do nowej wersji interpretera
- Wprowadzenie do popularnych bibliotek
- IPython
- Requests
- Scrapy
- BeautifulSoup
- PIL / Pillow
- NumPy
- SciPy
- matplotlib
- Framework Django i jego zastosowanie (moduł opcjonalny)
- Tworzenie i konfiguracja projektu i aplikacji
- Modele – interakcja z bazą danych
- Operowanie na danych – ORM
- Automatyczny interfejs administracyjny – omówienie
- Widoki
- Szablony
- Mapowanie odnośników
- Tworzenie interfejsu użytkownika z zastosowaniem PyQt/PySide (moduł opcjonalny)
- Podstawowe widgety Qt
- Obsługa zdarzeń: slots & signals
- Tworzenie okien dialogowych
- Okno główne aplikacji
- Używanie QtDesigner
- Zasoby
- Widgety wykorzystujące Model/View/Controller
- Współpraca z bazami danych