158660
Book
In basket
Aktualny stan Pythona Co zrobić z kodem w Pythonie 2? Dokumenty PEP Aktywne społeczności Nowoczesne środowiska programistyczne Pythona Ekosystem pakietów Pythona Instalowanie pakietów Pythona za pomocą narzędzia pip Izolowanie środowiska uruchomieniowego Izolacja na poziomie aplikacji a izolacja na poziomie systemu Izolacja środowiska na poziomie aplikacji Poetry jako system zarządzania zależnościami Izolacja środowiska na poziomie systemu Konteneryzacja a wirtualizacja Zarządzanie środowiskami wirtualnymi z użyciem Dockera Wirtualne środowiska programistyczne oparte na narzędziu Vagrant Popularne narzędzia do zwiększania produktywności Niestandardowe powłoki Pythona Stosowanie powłoki IPython Stosowanie powłok we własnych skryptach i programach Interaktywne debugery Inne narzędzia do zwiększania produktywności Niedawne dodatki do języka Operatory scalania i aktualizacji słownika Wyrażenia przypisania Wskazówki dotyczące typów w typach generycznych Parametry czysto pozycyjne Moduł zoneinfo Moduł graphlib Funkcja breakpoint() Tryb roboczy Funkcje __getattr__() i __dir__() na poziomie modułu Formatowanie łańcuchów znaków za pomocą obiektów f-string Podkreślenia w literałach liczbowych Moduł secrets Tworzenie sumy typów za pomocą operatora | Strukturalne dopasowywanie wzorców Porównanie Pythona z innymi językami Model klas i programowanie obiektowe Dostęp do klas bazowych Wielodziedziczenie i porządek MRO Inicjalizowanie instancji klasy Wzorce dostępu do atrybutów Deskryptory Dynamiczny polimorfizm Przeciążanie operatorów Przeciążanie funkcji i metod Klasy danych Programowanie funkcyjne Funkcje lambda Funkcje map(), filter() i reduce() Obiekty i funkcje częściowe Generatory Wyrażenia generatora Dekoratory Wyliczenia Interfejs, wzorce i modułowość Interfejsy Odrobina historii: zope.interface Stosowanie adnotacji funkcji i abstrakcyjnych klas bazowych Tworzenie interfejsów z wykorzystaniem adnotacji określających typ Odwrócenie sterowania i wstrzykiwanie zależności Odwrócenie sterowania w aplikacjach Stosowanie platform do wstrzykiwania zależności. Współbieżność Czym jest współbieżność? Wielowątkowość Obsługa wątków w Pythonie Kiedy należy stosować wielowątkowość? Przykładowa aplikacja wielowątkowa Wieloprocesowość Wbudowany moduł multiprocessing Stosowanie puli procesów Stosowanie modułu multiprocessing.dummy jako interfejsu do obsługi wielowątkowości Programowanie asynchroniczne Kooperatywna wielozadaniowość i asynchroniczne operacje wejścia - wyjścia Słowa kluczowe async i await w Pythonie Praktyczny przykład zastosowania programowania asynchronicznego Dostosowywanie nieasynchronicznego kodu do asynchroniczności za pomocą obiektów future Programowanie sterowane zdarzeniami Czym dokładnie jest programowanie sterowane zdarzeniami? Sterowanie zdarzeniami nie jest tożsame z asynchronicznością Programowanie sterowane zdarzeniami w GUI Komunikacja sterowana zdarzeniami Różne style programowania sterowanego zdarzeniami Styl oparty na wywołaniach zwrotnych Styl oparty na obserwowaniu obiektów Styl oparty na tematach Architektury sterowane zdarzeniami Kolejki zdarzeń i komunikatów. Elementy metaprogramowania Czym jest metaprogramowanie? Stosowanie dekoratorów do modyfikowania działania funkcji przed jej użyciem Następny krok: dekoratory klas Przechwytywanie procesu tworzenia instancji klasy Metaklasy Ogólna składnia Stosowanie metaklas Pułapki związane z metaklasami Stosowanie metody __init_subclass__() jako alternatywy dla metaklas Generowanie kodu Funkcje exec, eval i compile Drzewa składni abstrakcyjnej Haczyki importu Ważne przykłady generowania kodu w Pythonie Łączenie Pythona z kodem w C i C++ C i C++ jako podstawa rozszerzalności w Pythonie Kompilowanie i wczytywanie w Pythonie rozszerzeń napisanych w C Kiedy należy używać rozszerzeń? Zwiększanie wydajności kluczowych fragmentów kodu Integrowanie istniejącego kodu napisanego w różnych językach Integrowanie zewnętrznych bibliotek dynamicznych Tworzenie wydajnych niestandardowych typów danych Pisanie rozszerzeń Rozszerzenia w czystym C Pisanie rozszerzeń za pomocą Cythona Wady korzystania z rozszerzeń Dodatkowa złożoność Trudniejsze debugowanie Komunikacja z bibliotekami dynamicznymi bez używania rozszerzeń Moduł ctypes CFFI Automatyzacja testów i kontroli jakości Zasady programowania sterowanego testami Pisanie testów z użyciem platformy pytest Parametryzacja testów Konfiguracje testów w platformie pytest Stosowanie "fałszywych" obiektów Atrapy i moduł unittest.mock Automatyzacja kontroli jakości Pokrycie kodu testami Narzędzia do poprawiania stylu i lintery Statyczna analiza typów Testowanie mutacyjne Przydatne narzędzia związane z testami Generowanie realistycznych danych Generowanie dat i czasu Tworzenie pakietów i udostępnianie kodu w Pythonie Tworzenie pakietów bibliotek i ich udostępnianie Budowa pakietu Pythona Rodzaje dystrybucji pakietów Rejestrowanie i publikowanie pakietów Wersjonowanie pakietów i zarządzanie zależnościami Instalowanie własnych pakietów Pakiety przestrzeni nazw Skrypty i punkty wejścia w pakietach Tworzenie pakietów aplikacji i usług do użytku w internecie Manifest Twelve-Factor App Korzystanie z Dockera Zarządzanie zmiennymi środowiskowymi Rola zmiennych środowiskowych w platformach do tworzenia aplikacji Tworzenie samodzielnych aplikacji wykonywalnych Kiedy samodzielne aplikacje wykonywalne są przydatne? Bezpieczeństwo kodu Pythona w pakietach wykonywalnych Monitorowanie pracy i wydajności aplikacji Rejestrowanie błędów i logów Podstawy rejestrowania logów w Pythonie Zalecane praktyki z obszaru rejestrowania logów Rozproszone rejestrowanie logów Rejestrowanie błędów w celu ich późniejszej analizy Instrumentacja kodu z wykorzystaniem niestandardowych wskaźników Stosowanie aplikacji Prometheus Śledzenie rozproszone aplikacji Śledzenie rozproszone za pomocą Jaegera Optymalizacja kodu Częste przyczyny niskiej wydajności Złożoność kodu Nadmierne wykorzystanie zasobów i ich wyciekanie Nadmierna liczba operacji wejścia - wyjścia i operacji blokujących Profilowanie kodu Profilowanie procesora Profilowanie wykorzystania pamięci Zmniejszanie złożoności przez wybór odpowiednich struktur danych Przeszukiwanie listy Stosowanie zbiorów Stosowanie modułu collections Architektoniczne kompromisy Stosowanie heurystyk i algorytmów aproksymacyjnych Stosowanie kolejek zadań i przetwarzania odroczonego Stosowanie probabilistycznych struktur danych Zapisywanie wyników w pamięci podręcznej
Sygnatura czytelni BWEAiI: XII Ł 213
Media files:
Availability:
Wypożyczalnia
There are copies available to loan: sygn. 153041 N (1 egz.)
Biblioteka WEAiI
Copies are only available in the library: sygn. 152672 (1 egz.)
Notes:
Tytuł oryginału: Expert Python programming : master Python by learning the best coding practices and advanced programming concepts, 2021
General note
Wydanie 4. odnosi się do oryginału.
Bibliography, etc. note
Indeks.
The item has been added to the basket. If you don't know what the basket is for, click here for details.
Do not show it again

Deklaracja dostępności