Facebook - konwersja
  • promocja

Profesjonalne programowanie w Pythonie. Poziom ekspert. Wydanie II - ebook

Wydawnictwo:
Tłumacz:
Data wydania:
9 sierpnia 2017
Format ebooka:
MOBI
Format MOBI
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najczęściej wybieranych formatów wśród czytelników e-booków. Możesz go odczytać na czytniku Kindle oraz na smartfonach i tabletach po zainstalowaniu specjalnej aplikacji. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, PDF
Format PDF
czytaj
na laptopie
czytaj
na tablecie
Format e-booków, który możesz odczytywać na tablecie oraz laptopie. Pliki PDF są odczytywane również przez czytniki i smartfony, jednakze względu na komfort czytania i brak możliwości skalowania czcionki, czytanie plików PDF na tych urządzeniach może być męczące dla oczu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, EPUB
Format EPUB
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najpopularniejszych formatów e-booków na świecie. Niezwykle wygodny i przyjazny czytelnikom - w przeciwieństwie do formatu PDF umożliwia skalowanie czcionki, dzięki czemu możliwe jest dopasowanie jej wielkości do kroju i rozmiarów ekranu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
(3w1)
Multiformat
E-booki sprzedawane w księgarni Virtualo.pl dostępne są w opcji multiformatu - kupujesz treść, nie format. Po dodaniu e-booka do koszyka i dokonaniu płatności, e-book pojawi się na Twoim koncie w Mojej Bibliotece we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu przy okładce. Uwaga: audiobooki nie są objęte opcją multiformatu.
czytaj
na laptopie
Pliki PDF zabezpieczone watermarkiem możesz odczytać na dowolnym laptopie po zainstalowaniu czytnika dokumentów PDF. Najpowszechniejszym programem, który umożliwi odczytanie pliku PDF na laptopie, jest Adobe Reader. W zależności od potrzeb, możesz zainstalować również inny program - e-booki PDF pod względem sposobu odczytywania nie różnią niczym od powszechnie stosowanych dokumentów PDF, które odczytujemy każdego dnia.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na tablecie
Aby odczytywać e-booki na swoim tablecie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. Bluefire dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na czytniku
Czytanie na e-czytniku z ekranem e-ink jest bardzo wygodne i nie męczy wzroku. Pliki przystosowane do odczytywania na czytnikach to przede wszystkim EPUB (ten format możesz odczytać m.in. na czytnikach PocketBook) i MOBI (ten fromat możesz odczytać m.in. na czytnikach Kindle).
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na smartfonie
Aby odczytywać e-booki na swoim smartfonie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. iBooks dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.

Profesjonalne programowanie w Pythonie. Poziom ekspert. Wydanie II - ebook

Twórcy Pythona niemal od początku starali się opracować wieloparadygmatowy język zorientowany na czytelność kodu i produktywność programisty. Dziś język ten jest uważany za wszechstronny i potężny, a do tego cechuje się prostotą i elastycznością. Nadaje się zarówno do pisania niedużych skryptów, jak i wielkich systemów, a także do wysoce specjalistycznych zadań, jak choćby analiza danych w celach naukowych. Mimo to pisanie kodu, który jest wydajny, prosty w utrzymaniu oraz łatwy w użyciu, wciąż sprawia problemy nawet zaawansowanym programistom Pythona.

Niniejsza książka jest zbiorem praktyk stosowanych przez najlepszych programistów pracujących z Pythonem. Jest przeznaczona dla osób zawodowo zajmujących się rozwojem oprogramowania oraz dla ambitnych pasjonatów w tej dziedzinie. Poza opisem zaawansowanych technik programowania w Pythonie znalazły się tu również informacje o narzędziach i technikach stosowanych obecnie przez profesjonalnych programistów. Opisano metody zarządzania kodem, tworzenia, dokumentowania i testowania kodu oraz zasady optymalizacji oprogramowania. Przedstawiono również wzorce projektowe, które szczególnie docenią programiści Pythona.

Najważniejsze zagadnienia przedstawione w książce:

  • metodologie pracy w Pythonie i najlepsze praktyki składniowe
  • rozszerzenia Pythona napisane w innych językach programowania
  • techniki profilowania aplikacji
  • przetwarzanie współbieżne i równoległe
  • najprzydatniejsze wzorce projektowe

Python — niezawodne narzędzie dla profesjonalisty!

Spis treści

O autorach (11)

O recenzencie (12)

Przedmowa (13)

Rozdział 1. Obecny status Pythona (19)

  • Gdzie jesteśmy i dokąd zmierzamy? (20)
  • Dlaczego i jak zmienia się Python (20)
  • Bądź na bieżąco ze zmianami języka - dokumenty PEP (21)
  • Popularność Pythona 3 w chwili pisania tej książki (22)
  • Główne różnice pomiędzy Pythonem 3 a Pythonem 2 (23)
    • Korzyści płynące ze znajomości starej wersji Pythona (23)
    • Główne różnice składni i częste pułapki (24)
    • Popularne narzędzia i techniki używane w celu utrzymania kompatybilności (26)
  • Nie tylko CPython (30)
    • Dlaczego powinieneś się przejmować? (30)
    • Stackless Python (31)
    • Jython (31)
    • IronPython (32)
    • PyPy (33)
  • Nowoczesne podejścia do programowania w Pythonie (34)
    • Izolacja środowisk Pythona na poziomie aplikacji (34)
    • Zalety stosowania izolacji (36)
    • Popularne rozwiązania (37)
    • Które rozwiązanie wybrać? (41)
  • Izolacja środowisk Pythona na poziomie systemu operacyjnego (42)
    • Wirtualne środowiska robocze z wykorzystaniem narzędzia Vagrant (43)
    • Konteneryzacja czy wirtualizacja? (45)
  • Popularne narzędzia pracy ukierunkowane na produktywność (45)
    • Alternatywne powłoki Pythona - IPython, bpython, ptpython (46)
    • Interaktywne debuggery (48)
  • Przydatne materiały (49)
  • Podsumowanie (50)

Rozdział 2. Najlepsze praktyki składniowe - poniżej poziomu klas (51)

  • Typy wbudowane Pythona (52)
    • Ciągi znaków i bajtów (52)
    • Kolekcje (56)
  • Zaawansowane elementy składni (67)
    • Iteratory (67)
    • Instrukcja yield (69)
    • Dekoratory (72)
    • Zarządcy kontekstu - instrukcja with (83)
  • Inne elementy składni, o których możesz jeszcze nie wiedzieć (87)
    • Konstrukcja for ... else ... (87)
    • Adnotacje funkcji (88)
  • Podsumowanie (89)

Rozdział 3. Najlepsze praktyki składniowe - powyżej poziomu klas (91)

  • Dziedziczenie po typach wbudowanych (92)
  • Uzyskiwanie dostępu do metod klas nadrzędnych (94)
    • Klasy w starym stylu oraz funkcja super() w Pythonie 2 (96)
    • Porządek rozpatrywania metod w Pythonie (97)
    • Pułapki związane z funkcją super() (101)
    • Najlepsze praktyki (104)
  • Zaawansowane wzorce dostępu do atrybutów (104)
    • Deskryptory (105)
    • Właściwości (111)
    • Sloty (114)
  • Metaprogramowanie (114)
    • Dekoratory jako metoda metaprogramowania (115)
    • Dekoratory klas (116)
    • Wykorzystanie metody __new__() w celu nadpisania procesu tworzenia instancji klas (118)
    • Metaklasy (120)
    • Rady dotyczące automatycznego generowania kodu (127)
  • Podsumowanie (134)

Rozdział 4. Właściwy dobór nazw (135)

  • PEP 8 i najlepsze praktyki nazewnicze (135)
    • Kiedy i dlaczego przestrzegać zasad PEP 8? (136)
    • Poza PEP 8 - wytyczne stylu w zespołach (136)
  • Notacje nazewnicze (137)
    • Zmienne (138)
    • Zmienne publiczne i prywatne (140)
    • Funkcje i metody (142)
    • Właściwości (145)
    • Klasy (145)
    • Moduły i pakiety (146)
  • Dobre praktyki nazewnicze (146)
    • Użycie prefiksów is oraz has przy elementach logicznych (146)
    • Użycie liczby mnogiej przy zmiennych przechowujących kolekcje (146)
    • Precyzyjne opisywanie słowników (147)
    • Unikanie zbyt ogólnych określeń (147)
    • Unikanie istniejących nazw (148)
  • Najlepsze praktyki dla argumentów funkcji i metod (149)
    • Projektowanie argumentów metodą przyrostową (150)
    • Ufaj argumentom i testom (150)
    • Ostrożne wykorzystanie magicznych argumentów *args oraz **kwargs (152)
  • Nazwy klas (154)
  • Nazwy modułów i pakietów (154)
  • Przydatne narzędzia (155)
    • Pylint (155)
    • pep8 i flake8 (157)
  • Podsumowanie (158)

Rozdział 5. Tworzenie i dystrybucja pakietów (159)

  • Tworzenie pakietów (160)
    • Zamieszanie wokół narzędzi do tworzenia i dystrybuowania pakietów (160)
    • Konfiguracja projektu (162)
    • Własne polecenia skryptu setup.py (172)
    • Praca z pakietami podczas ich rozwoju (172)
  • Pakiety przestrzeni nazw (174)
    • Zastosowanie pakietów przestrzeni nazw (174)
    • PEP 420 - domyślne pakiety przestrzeni nazw (176)
    • Pakiety przestrzeni nazw w starszych wersjach Pythona (177)
  • Praca z repozytorium pakietów (178)
    • Python Package Index - repozytorium pakietów Pythona (179)
    • Dystrybucje źródłowe a dystrybucje budowane (181)
  • Samodzielne pliki wykonywalne (184)
    • Kiedy samodzielne pliki wykonywalne są użyteczne? (186)
    • Popularne narzędzia (186)
    • Bezpieczeństwo kodu Pythona w samodzielnych plikach wykonywalnych (193)
  • Podsumowanie (195)

Rozdział 6. Zdalne wdrożenia kodu (197)

  • Manifest Twelve-Factor App (198)
  • Automatyzacja wdrożeń z wykorzystaniem narzędzia Fabric (200)
  • Własne repozytorium pakietów lub kopie lustrzane PyPI (205)
    • Utrzymywanie kopii lustrzanych PyPI (206)
    • Wdrożenia z wykorzystaniem dystrybucji pakietów (207)
  • Popularne konwencje i dobre praktyki (215)
    • Hierarchia systemu plików (215)
    • Izolacja (216)
    • Wykorzystanie narzędzi nadzoru nad procesami (216)
    • Kod aplikacji powinien być uruchomiony w przestrzeni użytkownika (218)
    • Korzystanie ze wstecznych serwerów proxy protokołu HTTP (219)
    • Przeładowywanie procesów bez zastojów (219)
  • Instrumentacja i monitorowanie kodu (221)
    • Logowanie błędów (Sentry oraz raven) (221)
    • Monitorowanie metryk systemowych i aplikacji (224)
    • Obsługa logów (226)
  • Podsumowanie (230)

Rozdział 7. Rozszerzenia Pythona w innych językach programowania (231)

  • Inne języki, czyli C lub C++ (232)
    • Jak działają rozszerzenia w C i C++ (232)
  • Dlaczego warto tworzyć rozszerzenia (234)
    • Zwiększanie wydajności w krytycznych sekcjach kodu (235)
    • Integracja kodu napisanego w innych językach programowania (236)
    • Integracja zewnętrznych bibliotek dynamicznych (236)
    • Tworzenie własnych wbudowanych typów danych (236)
  • Pisanie rozszerzeń (237)
    • Zwyczajne rozszerzenia w C (238)
    • Cython (253)
  • Wyzwania związane z rozszerzeniami (257)
    • Dodatkowa złożoność (258)
    • Debugowanie (258)
  • Korzystanie z dynamicznych bibliotek bez pisania rozszerzeń (259)
    • ctypes (259)
    • CFFI (265)
  • Podsumowanie (266)

Rozdział 8. Zarządzanie kodem (267)

  • Systemy kontroli wersji (268)
    • Scentralizowane systemy kontroli wersji (268)
    • Rozproszone systemy kontroli wersji (271)
    • Systemy scentralizowane czy rozproszone? (274)
    • Korzystaj z systemu Git, jeśli tylko możesz (274)
    • Git flow oraz GitHub flow (275)
  • Ciągłe procesy programistyczne (279)
    • Ciągła integracja oprogramowania (280)
    • Ciągłe dostarczanie oprogramowania (284)
    • Ciągłe wdrażanie oprogramowania (285)
    • Popularne narzędzia do ciągłej integracji (285)
    • Wybór odpowiednich narzędzi i częste pułapki (294)
  • Podsumowanie (297)

Rozdział 9. Dokumentowanie projektu (299)

  • Siedem zasad technicznego pisania (300)
    • Pisz w dwóch krokach (300)
    • Skieruj przekaz do konkretnej grupy czytelników (301)
    • Korzystaj z prostego stylu (302)
    • Ogranicz zakres informacji (303)
    • Korzystaj z realistycznych przykładów (303)
    • Dokumentuj lekko, ale jednocześnie wystarczająco (304)
    • Korzystaj z szablonów (305)
  • Poradnik reStructuredText (305)
    • Struktura sekcji (307)
    • Listy numerowane i wypunktowania (309)
    • Formatowanie znakowe (310)
    • Bloki dosłowne (310)
    • Odnośniki (311)
  • Budowanie dokumentacji (312)
    • Budowanie portfolio dokumentacji (312)
  • Tworzenie własnego portfolio (319)
    • Projektowanie krajobrazu dokumentacji (319)
    • Budowanie dokumentacji a systemy ciągłej integracji (324)
  • Podsumowanie (325)

Rozdział 10. Programowanie sterowane testami (327)

  • Nie testuję (327)
    • Zasady programowania sterowanego testami (328)
    • Możliwe rodzaje testów (332)
    • Narzędzia testowe standardowej biblioteki Pythona (335)
  • Testuję (340)
    • Pułapki modułu unittest (340)
    • Alternatywy dla modułu unittest (341)
    • Mierzenie pokrycia kodu testami (349)
    • Fałszywe obiekty zastępcze i atrapy (351)
    • Testowanie kompatybilności środowisk i zależności (358)
    • Programowanie sterowane dokumentami (361)
  • Podsumowanie (363)

Rozdział 11. Optymalizacja - ogólne zasady i techniki profilowania (365)

  • Trzy zasady optymalizacji (365)
    • Przede wszystkim spraw, aby kod działał poprawnie (366)
    • Pracuj z perspektywy użytkownika (367)
    • Utrzymuj kod czytelnym (367)
  • Strategia optymalizacyjna (368)
    • Poszukaj innego winowajcy (368)
    • Skaluj sprzęt (369)
    • Napisz test wydajnościowy (370)
  • Identyfikowanie wąskich gardeł wydajności (370)
    • Profilowanie czasu użycia procesora (370)
    • Profilowanie zużycia pamięci (379)
    • Profilowanie połączeń sieciowych (389)
  • Podsumowanie (390)

Rozdział 12. Optymalizacja - wybrane skuteczne techniki (391)

  • Redukcja złożoności (392)
    • Złożoność cyklomatyczna (394)
    • Notacja dużego O (394)
  • Upraszczanie (397)
    • Przeszukiwanie list (397)
    • Korzystanie ze zbiorów w miejscu list (398)
    • Ukróć zewnętrzne wywołania, zredukuj nakład pracy (398)
    • Korzystanie z modułu collections (399)
  • Stosowanie kompromisów architektonicznych (403)
    • Stosowanie heurystyk i algorytmów aproksymacyjnych (403)
    • Stosowanie kolejek zadań i opóźnionego przetwarzania (404)
    • Stosowanie probabilistycznych struktur danych (408)
  • Buforowanie (409)
    • Buforowanie deterministyczne (410)
    • Buforowanie niedeterministyczne (412)
    • Usługi buforujące (413)
  • Podsumowanie (416)

Rozdział 13. Przetwarzanie współbieżne i równoległe (419)

  • Dlaczego współbieżność? (420)
  • Wielowątkowość (421)
    • Czym jest wielowątkowość? (422)
    • Jak Python radzi sobie z wątkami (423)
    • Kiedy należy korzystać z wielowątkowości? (424)
  • Przetwarzanie wieloprocesowe (439)
    • Wbudowany moduł multiprocessing (442)
  • Programowanie asynchroniczne (447)
    • Kooperacyjna wielozadaniowość i asynchroniczne operacje wejścia/wyjścia (448)
    • Słowa kluczowe async i await (449)
    • asyncio w starszych wersjach Pythona (453)
    • Praktyczny przykład programu asynchronicznego (454)
    • Integracja nieasynchronicznego kodu z async za pomocą modułu futures (456)
  • Podsumowanie (459)

Rozdział 14. Przydatne wzorce projektowe (461)

  • Wzorce kreacyjne (462)
    • Singleton (462)
  • Wzorce strukturalne (465)
    • Adapter (466)
    • Pełnomocnik (481)
    • Fasada (482)
  • Wzorce czynnościowe (483)
    • Obserwator (483)
    • Odwiedzający (485)
    • Szablon (488)
  • Podsumowanie (491)

Skorowidz (492)

Kategoria: Programowanie
Zabezpieczenie: Watermark
Watermark
Watermarkowanie polega na znakowaniu plików wewnątrz treści, dzięki czemu możliwe jest rozpoznanie unikatowej licencji transakcyjnej Użytkownika. E-książki zabezpieczone watermarkiem można odczytywać na wszystkich urządzeniach odtwarzających wybrany format (czytniki, tablety, smartfony). Nie ma również ograniczeń liczby licencji oraz istnieje możliwość swobodnego przenoszenia plików między urządzeniami. Pliki z watermarkiem są kompatybilne z popularnymi programami do odczytywania ebooków, jak np. Calibre oraz aplikacjami na urządzenia mobilne na takie platformy jak iOS oraz Android.
ISBN: 978-83-283-3034-4
Rozmiar pliku: 4,5 MB

BESTSELLERY

Kategorie: