Profesjonalne programowanie w Pythonie. Poznaj najlepsze praktyki kodowania i zaawansowane koncepcje programowania. Wydanie IV (E-book) Gliwice

Python cechuje się dużą prostotą, a przy tym jest wszechstronny. Ma bardzo szeroki zakres zastosowania, przez co coraz więcej osób podejmuje naukę programowania w tym języku. Python należy do języków najczęściej używanych przez programistów, którzy tworzą w nim gry i aplikacje webowe. Świetnie …

od 54,50 Najbliżej: 1 km

Liczba ofert: 1

Oferta sklepu

Opis

Python cechuje się dużą prostotą, a przy tym jest wszechstronny. Ma bardzo szeroki zakres zastosowania, przez co coraz więcej osób podejmuje naukę programowania w tym języku. Python należy do języków najczęściej używanych przez programistów, którzy tworzą w nim gry i aplikacje webowe. Świetnie sprawdza się ponadto w pracy z wykorzystaniem sztucznej inteligencji i uczenia maszynowego. Tym, co programiści doceniają w Pythonie, jest też obiektywność. Ucząc się, przyswajamy bowiem również zasady programowania obiektywnego, a więc koncepcji dla wielu innych języków. Oto książka, którą docenią i osoby rozpoczynające przygodę z programowaniem, i programiści znający już inne języki. Znajdziesz tu zarówno podstawowe informacje o Pythonie, jak i wskazówki dotyczące pisania rozszerzeń, dzięki którym będziesz w stanie korzystać z atutów kilku języków. Przydatnym uzupełnieniem są liczne przykłady, pokazujące, jak rozwiązywać częste problemy. To już czwarte wydanie tego praktycznego podręcznika ? docenianego za to, że pozwala dobrze poznać Pythona i uczy, jak pisać wydajny i czytelny kod. Z książki dowiesz się: jakie są najważniejsze usprawnienia w Pythonie jak przeprowadzić izolację środowiska jak używać najnowszych funkcji w Pythonie czym Python się różni od innych języków co to jest współbieżność i wielowątkowość na czym polega programowanie sterowane zdarzeniami jakie są elementy metaprogramowania jak przeprowadzić automatyzację kontroli jakości jak optymalizować kod Koduj wszystko w Pythonie. Obiektywnie, strukturalnie i funkcjonalnie! Spis treści: O autorach O recenzencie Przedmowa Rozdział 1. Aktualny stan Pythona Gdzie jesteśmy i dokąd zmierzamy? Co zrobić z kodem w Pythonie 2? Jak być na bieżąco? Dokumenty PEP Aktywne społeczności Inne źródła informacji Podsumowanie Rozdział 2. Nowoczesne środowiska programistyczne Pythona Wymagania techniczne 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 Podsumowanie Rozdział 3. Nowości w Pythonie Wymagania techniczne 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 Nie tak nowe, ale wciąż błyszczące 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 Co może się pojawić w przyszłości? Tworzenie sumy typów za pomocą operatora | Strukturalne dopasowywanie wzorców Podsumowanie Rozdział 4. Porównanie Pythona z innymi językami Wymagania techniczne 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 Właściwości 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 Podsumowanie Rozdział 5. Interfejs, wzorce i modułowość Wymagania techniczne 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 Podsumowanie Rozdział 6. Współbieżność Wymagania techniczne Czym jest współbieżność? Wielowątkowość Czym jest 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 Podsumowanie Rozdział 7. Programowanie sterowane zdarzeniami Wymagania techniczne 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 Podsumowanie Rozdział 8. Elementy metaprogramowania Wymagania techniczne 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 Podsumowanie Rozdział 9. Łączenie Pythona z kodem w C i C++ Wymagania techniczne 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 Podsumowanie Rozdział 10. Automatyzacja testów i kontroli jakości Wymagania techniczne 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 Podsumowanie Rozdział 11. Tworzenie pakietów i udostępnianie kodu w Pythonie Wymagania techniczne 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? Popularne narzędzia Bezpieczeństwo kodu Pythona w pakietach wykonywalnych Podsumowanie Rozdział 12. Monitorowanie pracy i wydajności aplikacji Wymagania techniczne 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 Podsumowanie Rozdział 13. Optymalizacja kodu Wymagania techniczne 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 Podsumowanie Skorowidz

Specyfikacja

Podstawowe informacje

Autor
  • Michał Jaworski, Tarek Ziadé
Kategorie
  • Programowanie
Wybrane wydawnictwa
  • Helion