Uczestnicy szkolenia zapoznają się z zaawansowanymi mechanizmami programowania obiektowego w języku Python oraz innymi paradygmatami tworzenia oprogramowania. Na zajęciach zapoznają się z koncepcjami tworzenia aplikacji wielowątkowych, kompilacji w locie (JIT), transformowaniem danych XML.
Słuchacze poznają aspekty zalet i wad konstrukcji językowych, API interpretera, przetwarzania struktur grafowych. Szczególny nacisk kładziemy na praktyczne aspekty programowania oraz osadzenie technik wytwarzania oprogramowania w języku Python we współczesnych realiach.
Szkolenie odpowiada potrzebom średnio zaawansowanych programistów i nie jest polecane osobom początkującym.

Zajęcia prowadzone są przez doświadczonych praktyków, którzy na co dzień używają technologie związane z językiem Python w rzeczywistych projektach. W trakcie zajęć używamy technologii i środowisk otwartych.

Zakres szkolenia

Szkolenie obejmuje:

  • programowanie obiektowe w języku Python,
  • programowanie wielowątkowe w języku Python,
  • transformacje danych w formacie XML,
  • wstęp do tworzenia własnych modułów języka Python implementowanych w języku C/C++.

Adresaci szkolenia

Szkolenie adresowane jest do:

  • średnio zaawansowanych programistów programujących w języku Python w środowisku GNU/Linux lub MS Windows,
  • programistów tworzących aplikacje głównego nurtu oraz aplikacje sieciowe w języku Python.

Cel szkolenia

Głównymi celami w procesie szkoleniowym są:

  • kształcenie umiejętności i rozwijanie wiedzy dotyczącej zaawansowanego programowania w języku Python,
  • osadzenia zaawansowanych narzędzi i procesów tworzenia oprogramowania w realiach współczesnych wymagań Inżynierii Oprogramowania,
  • dokonania konsolidacji wiedzy i uzupełnienia braków w kompetencjach w zakresie,
  • zapoznanie się z alternatywnymi wersjami interpretera,
  • pogłębienie znajomości mechanizmów języka Python.

Umiejętności zdobywane podczas zajęć

Uczestnicy szkolenia po jego zakończeniu zdobędą następujące umiejętności:

  • analizy obiektowej i idiomów językowych Python,
  • identyfikacji wąskich gardeł przetwarzania,
  • tworzenia aplikacji z użyciem asynchronicznej komunikacji sieciowej,
  • tworzenia zaawansowanych struktur danych,
  • wybierania i używania paradygmatów programowania.

Wymagania

Od uczestników szkolenia wymaga się:

  • biegłego posługiwania się wybranym środowiskiem IDE (Eclipse, NetBeans, vim),
  • znajomości koncepcji programowania obiektowego, systemowego i aplikacyjnego,
  • znajomości narzędzi do tworzenia aplikacji z rodziny gcc i binutils,
  • umiejętności posługiwania się narzędziem debuggera języka Python,
  • znajomości koncepcji związanych z programowaniem w języku Python na poziomie średnio i zaawansowanym.

Parametry szkolenia

Szkolenie trwa 4 dni. Szkolenie obejmuje 60% wykładu i 40% ćwiczeń.

Program szkolenia

  1. Metaprogramowanie w języku Python
    1. Diament dziedziczenia
    2. MRO (ang. Method Resolution Order)
    3. Klasy domieszkowe
    4. Rozszerzone wzorce GoF – zakres zastosowań i implementacja
    5. Mechanizm metaklas
  2. Dekoratory
    1. Działanie i zakres zastosowania dekoratora
    2. Biblioteka dekoratorów
    3. Implementacja własnych dekoratorów
  3. Kontekst wykonania
    1. Działanie i implementacja kontekstu wykonania (with)
    2. Zakres zastosowań kontekstu wykonania
  4. Deskryptory
    1. Pojęcie i stosowanie deskryptorów
    2. Zakres stosowania deskryptorów w języku Python
    3. Implementowanie własnych deskryptorów
    4. Deskryptory a reguły S.O.L.I.D. i GRASP
  5. Mechanizmy i konwencje
    1. Konwencja tworzenia poprawnego kodu (pep8 i pylint)
    2. Wstrzykiwanie zależności
    3. Faktorie
    4. Callback
    5. Duck Typing
    6. Delegacja i „ owijanie ” zamiast dziedziczenia
  6. Wydajność struktur danych
    1. Wbudowane struktury i typy danych – aspekt wydajności
    2. Moduł collections
    3. Wydajność typowania dynamicznego
  7. Idiomy języka
    1. Leniwe przetwarzanie
    2. Domknięcia, generatory i wyrażenia lambda
    3. Mechanizmy introspekcji
  8. Alternatywne wersje interpretera/kompilatora
    1. Kompilacja do kodu natywnego
    2. Kompilacja w locie (JIT – ang. Just In Time)
    3. Mikro-wątki
  9. Python – moduły w języku C i C++
    1. Narzędzia integracji modułów w języku C i C++
    2. API interpretera
    3. Pułapki interpretera
  10. Programowanie wielowątkowe
    1. Procesy i wątki
    2. Mechanizmy blokujące
    3. Komunikacja oparta o pamięć współdzieloną – aspekty wielowątkowości
    4. Współprogramy (gevent i eventlet)
  11. Paradygmaty programowania w języku Python
    1. Maszyna stanu
    2. Programowanie funkcyjne
    3. Programowanie deklaratywne
    4. Programowanie zdarzeniowe
  12. Programowanie sieciowe
    1. Asynchroniczna komunikacja sieciowa
    2. Obsługa protokołów rozgłaszania
  13. Zaawansowane struktury danych
    1. Przetwarzanie struktur grafowych
    2. Kolejki oraz kolejki rozproszone
  14. Przetwarzanie i transformacja danych XML
    1. Parsowanie danych XML
    2. Transformaty XSLT
    3. Obsługa i przetwarzanie danych ElementTree i SAX
  15. Testowanie w języku Python
    1. Biblioteki i metodyki testowania
    2. Testowanie jednostkowe z użyciem unittest, oraz pytest
    3. Szybkie tworzenie testów z użyciem doctest
    4. Osadzenie testów w środowisku integracji ciągłej
  16. Python w środowisku produkcyjnym
    1. Standardy inspekcji i metryki kodu
    2. Reguły tworzenia i dostarczania (ang. deploy) aplikacji
    3. Python w zastosowaniach SOA
  17. Języki DSL (ang. Domain Specific Language ) (moduł opcjonalny)
    1. Drzewo AST (ang. Abstract Syntax Tree )
    2. Definicja własnych języków dziedzinowych
  18. Maszyna wirtualna języka Python (moduł opcjonalny)

Pytania?

* Wymagane.
** Szczegóły promocji w Regulaminie.


Konsultant on-line
Skorzystaj z usług naszego konsultanta on-line.
Naciśnij przycisk ‘Skorzystaj’ aby przejść do okienka czatu
Kontakt
ul. Nowogrodzka 62c
02-002 Warszawa
Telefon +48 22 2035600
Fax +48 22 2035601
Email