Czysty kod w Pythonie - Helion
Tytuł oryginału: Clean Python: Elegant Coding in Python
TÅ‚umaczenie: Andrzej Watrak
ISBN: 978-83-283-6462-2
stron: 176, Format: 158x235, okładka: miękka
Data wydania: 2020-05-19
Księgarnia: Helion
Cena książki: 39,90 zł
W porównaniu z innymi jÄ™zykami programowania Python wyróżnia siÄ™ prostotÄ… i zaskakujÄ…cymi możliwoÅ›ciami. Używa siÄ™ go do analizy danych, budowania sztucznej inteligencji, tworzenia stron WWW, jak również w badaniach naukowych. WÅ‚aÅ›ciwoÅ›ci tego jÄ™zyka sprawiajÄ…, że kod trzeba pisać uważnie, szczególnie w dużych projektach. Tymczasem trudno jest znaleźć odpowiednio dobre źródÅ‚o informacji o sposobach tworzenia kodu wysokiej jakoÅ›ci. Publikacje dotyczÄ…ce dobrych praktyk kodowania w Pythonie sÄ… nieliczne, a ich jakość nieraz pozostawia wiele do życzenia. Dodatkowy problem wynika z wszechstronnoÅ›ci Pythona: jest wykorzystywany w wielu dziedzinach i trudno wskazać wspólne dla nich wzorce programistyczne.
Ta książka jest znakomitym przewodnikiem, dziÄ™ki któremu zaczniesz tworzyć wydajne i bezbÅ‚Ä™dne aplikacje w Pythonie. Zaczniesz od formatowania i dokumentowania kodu, umiejÄ™tnego stosowania wbudowanych struktur, stosowania moduÅ‚ów i metaklas. W ten sposób nauczysz siÄ™ pisać uporzÄ…dkowany kod. Potem poznasz nowe funkcjonalnoÅ›ci jÄ™zyka Python i dowiesz siÄ™, jak efektywnie z nich korzystać. NastÄ™pnie dowiesz siÄ™, jak wykorzystywać zaawansowane cechy jÄ™zyka, takie jak programowanie asynchroniczne, okreÅ›lanie typów danych i obsÅ‚uga Å›cieżek, a także jak diagnozować kod, wykonywać testy jednostkowe i integracyjne oraz przygotowywać kod do uruchomienia w Å›rodowisku produkcyjnym. Na koÅ„cu poznasz najważniejsze narzÄ™dzia przeznaczone do szybkiego tworzenia kodu, zarzÄ…dzania jego wersjami i weryfikowania poprawnoÅ›ci.
W tej książce między innymi:
- właściwe wykorzystywanie wyrażeń i instrukcji
- tworzenie wÅ‚asnych sÅ‚owników
- zaawansowane struktury danych
- pisanie najlepszych moduÅ‚ów, klas i funkcji
- asynchroniczne wywoływanie funkcji
Python: kodowanie jest sztukÄ…!
Osoby które kupowały "Czysty kod w Pythonie", wybierały także:
- GraphQL. Kurs video. Buduj nowoczesne API w Pythonie 169,00 zł, (50,70 zł -70%)
- Receptura na Python. Kurs Video. 54 praktyczne porady dla programist 199,00 zł, (59,70 zł -70%)
- Podstawy Pythona z Minecraftem. Kurs video. Piszemy pierwsze skrypty 149,00 zł, (44,70 zł -70%)
- Twórz gry w Pythonie. Kurs video. Poznaj bibliotekę PyGame 249,00 zł, (74,70 zł -70%)
- Data Science w Pythonie. Kurs video. Algorytmy uczenia maszynowego 199,00 zł, (59,70 zł -70%)
Spis treści
Czysty kod w Pythonie -- spis treści
O autorze 7
O korektorze merytorycznym 8
Podziękowania 9
Wprowadzenie 11
Rozdział 1. Kodowanie pythoniczne 13
- Tworzenie pythonicznego kodu 13
- Nazewnictwo 14
- Wyrażenia i instrukcje 16
- Pythoniczny styl kodowania 19
- Komentarze dokumentacyjne 24
- Komentarze dokumentacyjne do moduÅ‚ów 26
- Komentarze dokumentacyjne do klas 26
- Komentarze dokumentacyjne do funkcji 27
- Przydatne narzędzia dokumentacyjne 28
- Pythoniczne struktury sterujÄ…ce 28
- Wyrażenia listowe 28
- Nie twórz skomplikowanych wyrażeÅ„ listowych 29
- Kiedy stosować wyrażenia lambda? 31
- Kiedy stosować generatory, a kiedy wyrażenia listowe? 31
- Dlaczego nie należy stosować instrukcji else w pętlach? 32
- Dlaczego warto stosować funkcję range() w języku Python 3? 34
- ZgÅ‚aszanie wyjÄ…tków 35
- Często zgłaszane wyjątki 36
- Obsługuj wyjątki za pomocą instrukcji finally 37
- Twórz wÅ‚asne klasy wyjÄ…tków 37
- Obsługuj konkretne wyjątki 39
- Zwracaj uwagę na zewnętrzne wyjątki 40
- Twórz jak najmniejsze bloki try 41
- Podsumowanie 42
Rozdział 2. Struktury danych 43
- Popularne struktury danych 43
- Zbiory i wydajny kod 43
- Przetwarzanie danych za pomocÄ… struktury namedtuple 45
- Typ str i znaki diakrytyczne 47
- Zamiast list stosuj iteratory 48
- Przetwarzaj listy za pomocÄ… funkcji zip() 50
- Wykorzystuj zalety wbudowanych funkcji 51
- Zalety słownika 53
- Kiedy używać słownika zamiast innych struktur? 53
- Kolekcje 53
- Słowniki uporządkowany, domyślny i zwykły 56
- SÅ‚ownik jako odpowiednik instrukcji switch 57
- Scalanie sÅ‚owników 58
- Czytelne wyświetlanie zawartości słownika 59
- Podsumowanie 60
Rozdział 3. Jak pisać lepsze funkcje i klasy? 61
- Funkcje 61
- Twórz maÅ‚e funkcje 61
- Twórz generatory 63
- Używaj wyjątku zamiast wyniku None 64
- Stosuj w argumentach klucze i wartości domyślne 65
- Nie twórz funkcji jawnie zwracajÄ…cych wynik None 66
- Krytycznie podchodź do tworzonych funkcji 68
- Stosuj w wyrażeniach funkcje lambda 70
- Klasy 71
- Jak duża powinna być klasa? 71
- Struktura klasy 72
- Właściwe użycie dekoratora @property 74
- Kiedy należy stosować metody statyczne? 75
- Dziedziczenie klas abstrakcyjnych 76
- Odwołania do stanu klasy przy użyciu dekoratora @classmethod 77
- Atrybuty publiczne zamiast prywatnych 78
- Podsumowanie 79
Rozdział 4. Praca z modułami i metaklasami 81
- Moduły i metaklasy 81
- PorzÄ…dkowanie kodu za pomocÄ… moduÅ‚ów 82
- Zalety pliku __init__.py 84
- Importowanie funkcji i klas z moduÅ‚ów 86
- Blokowanie importu całego modułu za pomocą metaklasy __all__ 87
- Kiedy stosować metaklasy? 88
- Weryfikowanie podklas za pomocÄ… metody __new__() 89
- Dlaczego atrybut __slots__ jest tak przydatny? 91
- Modyfikowanie funkcjonowania klasy za pomocÄ… metaklasy 93
- Deskryptory w języku Python 94
- Podsumowanie 96
Rozdział 5. Dekoratory i menedżery kontekstu 97
- Dekoratory 97
- Czym sÄ… dekoratory i dlaczego sÄ… tak przydatne? 98
- Korzystanie z dekoratorów 99
- Modyfikowanie dziaÅ‚ania funkcji za pomocÄ… dekoratorów 101
- Stosowanie kilku dekoratorów jednoczeÅ›nie 102
- Dekorowanie funkcji z argumentami 103
- Używaj dekoratorów z biblioteki 104
- Dekoratory obsługujące stan klasy i weryfikujące poprawność danych 106
- Menedżery kontekstu 108
- Zalety menedżerów kontekstu 108
- Tworzenie menedżera kontekstu od podstaw 109
- Tworzenie menedżera kontekstu za pomocą biblioteki contextlib 111
- Praktyczne przykłady użycia menedżera kontekstu 111
- Podsumowanie 114
Rozdział 6. Generatory i iteratory 115
- Zalety generatorów i iteratorów 115
- Iteratory 115
- Generatory 117
- Kiedy stosować iteratory? 118
- Moduł itertools 119
- Dlaczego generatory sÄ… tak przydatne? 121
- Wyrażenia listowe i iteratory 122
- Zalety instrukcji yield 122
- Instrukcja yield from 123
- Instrukcja yield jest szybka 123
- Podsumowanie 124
Rozdział 7. Nowe funkcjonalności języka Python 125
- Programowanie asynchroniczne 125
- Wprowadzenie do programowania asynchronicznego 126
- Jak to działa? 128
- Obiekty oczekiwalne 133
- Biblioteki do tworzenia kodu asynchronicznego 139
- Python i typy danych 143
- Typy danych w Pythonie 143
- Moduł typing 144
- Czy typy danych spowalniajÄ… kod? 145
- Jak dzięki modułowi typing można pisać lepszy kod? 146
- Metoda super() 147
- Lepsza obsługa ścieżek dzięki bibliotece pathlib 147
- print() jest teraz funkcjÄ… 147
- f-ciÄ…gi 147
- ObowiÄ…zkowe argumenty pozycyjne 148
- Kontrolowana kolejność elementów w sÅ‚ownikach 148
- Iteracyjne rozpakowywanie struktur 149
- Podsumowanie 149
Rozdział 8. Diagnostyka i testy kodu 151
- Diagnostyka 151
- Narzędzia diagnostyczne 152
- Funkcja breakpoint() 155
- Moduł logging zamiast funkcji print() 155
- Identyfikowanie sÅ‚abych punktów kodu za pomocÄ… metryk 159
- Do czego przydaje się środowisko IPython? 159
- Testy 161
- Dlaczego testowanie kodu jest ważne? 161
- Biblioteki pytest i unittest 161
- Testowanie oparte na właściwościach 164
- Tworzenie raportów z testów 165
- Automatyzacja testów jednostkowych 166
- Przygotowanie kodu do uruchomienia w środowisku produkcyjnym 166
- Sprawdzanie pokrycia kodu testami 167
- Program virtualenv 168
- Podsumowanie 169
Dodatek. Niezwykłe narzędzia dla języka Python 171
- Sphinx 171
- Coverage.py 172
- pre-commit 173
- Pyenv 173
- Jupyter Lab 174
- Pycharm/VSCode/Sublime 174
- Flake8 i Pylint 175