Czysty kod w Pythonie. Tw - Helion
ebook
Autor: Mariano AnayaTytu艂 orygina艂u: Clean Code in Python: Develop maintainable and efficient code, 2nd Edition
T艂umaczenie: Rados
ISBN: 978-83-283-8612-9
stron: 360, Format: ebook
Data wydania: 2022-04-01
Ksi臋garnia: Helion
Cena ksi膮偶ki: 39,50 z艂 (poprzednio: 79,00 z艂)
Oszcz臋dzasz: 50% (-39,50 z艂)
Tagi: Python - Programowanie
Osoby kt贸re kupowa艂y "Czysty kod w Pythonie. Tw", 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. Tw贸rz wydajny i 艂atwy w utrzymaniu kod. Wydanie II eBook -- spis tre艣ci
- O autorze
- O recenzencie
- Przedmowa
- Dla kogo jest ta ksi膮偶ka?
- Co zawiera ta ksi膮偶ka?
- Jak najlepiej wykorzysta膰 t臋 ksi膮偶k臋?
- Pobieranie plik贸w z przyk艂adowym kodem
- Stosowane konwencje
- 1. Wprowadzenie, formatowanie kodu i narz臋dzia
- Wprowadzenie
- Znaczenie terminu czysty kod
- Znaczenie posiadania czystego kodu
- Kilka wyj膮tk贸w
- Formatowanie kodu
- Przestrzeganie przewodnika stylu kodowania w projekcie
- Dokumentacja
- Komentarze do kodu
- Docstringi
- Adnotacje
- Czy adnotacje zast臋puj膮 docstringi?
- Narz臋dzia
- Sprawdzanie sp贸jno艣ci typ贸w
- Og贸lne sprawdzanie poprawno艣ci w kodzie
- Formatowanie automatyczne
- Konfiguracja automatycznych kontroli
- Podsumowanie
- Materia艂y referencyjne
- Wprowadzenie
- 2. Kod pythoniczny
- Indeksy i wycinki
- Tworzenie w艂asnych sekwencji
- Mened偶ery kontekstu
- Implementacja mened偶er贸w kontekstu
- Wyra偶enia sk艂adane i wyra偶enia przypisania
- W艂a艣ciwo艣ci, atrybuty i r贸偶ne typy metod obiekt贸w
- Znaki podkre艣lenia w Pythonie
- W艂a艣ciwo艣ci
- Tworzenie klas o bardziej zwartej sk艂adni
- Obiekty iterowalne
- Tworzenie obiekt贸w iterowalnych
- Tworzenie sekwencji
- Obiekty kontenerowe
- Dynamiczne atrybuty obiekt贸w
- Obiekty wywo艂ywalne
- Podsumowanie metod magicznych
- Haczyki Pythona
- Mutowalne argumenty domy艣lne
- Rozszerzanie typ贸w wbudowanych
- Kr贸tkie wprowadzenie do kodu asynchronicznego
- Podsumowanie
- Materia艂y referencyjne
- Indeksy i wycinki
- 3. Og贸lne cechy dobrego kodu
- Projektowanie wed艂ug kontraktu
- Warunki wst臋pne
- Warunki ko艅cowe
- Kontrakty pythoniczne
- Projektowanie wed艂ug kontraktu wnioski
- Programowanie defensywne
- Obs艂uga b艂臋d贸w
- Podstawianie warto艣ci
- Obs艂uga wyj膮tk贸w
- Obs艂uga wyj膮tk贸w na odpowiednim poziomie abstrakcji
- Nie ujawniaj 艣lad贸w stosu u偶ytkownikom ko艅cowym
- Unikaj pustych blok贸w except
- Do艂膮cz oryginalny wyj膮tek
- U偶ywanie asercji w Pythonie
- Obs艂uga b艂臋d贸w
- Podzia艂 obowi膮zk贸w
- Sp贸jno艣膰 i sprz臋偶enie
- Akronimy
- DRY/OAOO
- YAGNI
- KIS
- EAFP/LBYL
- Dziedziczenie w Pythonie
- Kiedy zastosowanie dziedziczenia jest dobr膮 decyzj膮?
- Antywzorce dziedziczenia
- Wielokrotne dziedziczenie w Pythonie
- Kolejno艣膰 rozwi膮zywania metod (MRO)
- Domieszki
- Argumenty funkcji i metod
- Jak dzia艂aj膮 argumenty funkcji w Pythonie?
- Jak argumenty s膮 kopiowane do funkcji?
- Zmienna liczba argument贸w
- Argumenty wy艂膮cznie pozycyjne
- Argumenty wy艂膮cznie kluczowe
- Liczba argument贸w w funkcjach
- Argumenty funkcji a sprz臋偶enia
- Sygnatury kompaktowych funkcji, kt贸re przyjmuj膮 zbyt wiele argument贸w
- Jak dzia艂aj膮 argumenty funkcji w Pythonie?
- Uwagi ko艅cowe dotycz膮ce dobrych praktyk projektowania oprogramowania
- Ortogonalno艣膰 w oprogramowaniu
- Strukturyzacja kodu
- Podsumowanie
- Materia艂y referencyjne
- Projektowanie wed艂ug kontraktu
- 4. Zasady SOLID
- Zasada pojedynczej odpowiedzialno艣ci
- Klasa maj膮ca zbyt wiele obowi膮zk贸w
- Podzia艂 obowi膮zk贸w
- Zasada otwarty-zamkni臋ty
- Przyk艂ad zagro偶e艅 dla utrzymania kodu w przypadku nieprzestrzegania zasady OCP
- Refaktoryzacja systemu obs艂ugi zdarze艅 w celu uzyskania rozszerzalno艣ci
- Rozbudowa systemu zdarze艅
- Ko艅cowe przemy艣lenia na temat OCP
- Zasada podstawiania Liskov
- Wykrywanie problem贸w dotycz膮cych zasady LSP za pomoc膮 narz臋dzi
- Wykorzystanie narz臋dzia mypy do wykrywania nieprawid艂owych sygnatur metod
- Wykrywanie niezgodnych sygnatur za pomoc膮 programu pylint
- Bardziej subtelne przypadki narusze艅 zasady LSP
- Uwagi na temat LSP
- Wykrywanie problem贸w dotycz膮cych zasady LSP za pomoc膮 narz臋dzi
- Segregacja interfejs贸w
- Interfejs, kt贸ry dostarcza zbyt wiele
- Im mniejszy interfejs, tym lepiej
- Jak ma艂y powinien by膰 interfejs?
- Odwracanie zale偶no艣ci
- Przypadek sztywnych zale偶no艣ci
- Odwracanie zale偶no艣ci
- Wstrzykiwanie zale偶no艣ci
- Podsumowanie
- Bibliografia
- Zasada pojedynczej odpowiedzialno艣ci
- 5. Korzystanie z dekorator贸w do usprawniania kodu
- Czym s膮 dekoratory w Pythonie?
- Dekoratory funkcji
- Dekoratory klas
- Inne rodzaje dekorator贸w
- Bardziej zaawansowane dekoratory
- Przekazywanie argument贸w do dekorator贸w
- Dekoratory z zagnie偶d偶onymi funkcjami
- Obiekty dekoratory
- Dekoratory z warto艣ciami domy艣lnymi
- Dekoratory dla podprogram贸w
- Rozszerzona sk艂adnia dekorator贸w
- Przekazywanie argument贸w do dekorator贸w
- Dobre zastosowania dla dekorator贸w
- Dostosowywanie sygnatur funkcji
- Walidacja parametr贸w
- 艢ledzenie kodu
- Skuteczne dekoratory unikanie typowych b艂臋d贸w
- Zachowywanie danych o oryginalnym opakowanym obiekcie
- Obs艂uga skutk贸w ubocznych w dekoratorach
- Nieprawid艂owa obs艂uga skutk贸w ubocznych w dekoratorze
- Dekoratory z po偶膮danymi skutkami ubocznymi
- Tworzenie dekorator贸w, kt贸re b臋d膮 dzia艂a膰 dla ka偶dego rodzaju obiekt贸w
- Dekoratory a czysty kod
- Kompozycja zamiast dziedziczenia
- Zasada DRY z wykorzystaniem dekorator贸w
- Dekoratory a podzia艂 odpowiedzialno艣ci
- Analiza dobrych dekorator贸w
- Podsumowanie
- Bibliografia
- Czym s膮 dekoratory w Pythonie?
- 6. Pe艂niejsze wykorzystywanie obiekt贸w dzi臋ki deskryptorom
- Pierwsze spojrzenie na deskryptory
- Oprzyrz膮dowanie zwi膮zane z deskryptorami
- Opis metod protoko艂u deskryptora
- Metoda get
- Metoda set
- Metoda delete
- Metoda set name
- Rodzaje deskryptor贸w
- Deskryptory niezwi膮zane z danymi
- Deskryptory danych
- Deskryptory w praktyce
- Zastosowanie deskryptor贸w
- Pierwsza pr贸ba. Bez u偶ycia deskryptor贸w
- Implementacja idiomatyczna
- Zastosowanie deskryptor贸w
- R贸偶ne formy implementacji deskryptor贸w
- Problem wsp贸艂dzielonego stanu
- Dost臋p do s艂ownika obiektu
- Korzystanie ze s艂abych referencji
- Wi臋cej uwag na temat deskryptor贸w
- Wielokrotne wykorzystanie kodu
- Alternatywa dla dekorator贸w klas
- Analiza deskryptor贸w
- W jaki spos贸b Python wewn臋trznie u偶ywa deskryptor贸w?
- Funkcje i metody
- Wbudowane dekoratory dla metod
- Gniazda
- Implementacja deskryptor贸w w dekoratorach
- W jaki spos贸b Python wewn臋trznie u偶ywa deskryptor贸w?
- Uwagi ko艅cowe na temat deskryptor贸w
- Interfejs deskryptor贸w
- Obiektowy projekt deskryptor贸w
- Adnotacje typ贸w dla deskryptor贸w
- Podsumowanie
- Bibliografia
- Pierwsze spojrzenie na deskryptory
- 7. Generatory, iteratory i programowanie asynchroniczne
- Wymagania techniczne
- Tworzenie generator贸w
- Pierwsze spojrzenie na generatory
- Wyra偶enia generatorowe
- Idiomatyczne iteracje
- Idiomy iteracji
- Funkcja next()
- Korzystanie z generatora
- Itertools
- Upraszczanie kodu za pomoc膮 iterator贸w
- Powtarzaj膮ce si臋 iteracje
- P臋tle zagnie偶d偶one
- Wzorzec Iterator w Pythonie
- Interfejs iteracji
- Obiekty sekwencji jako obiekty iterowalne
- Podprogramy
- Metody interfejsu generatora
- close()
- throw(typ_wyj膮tku[, warto艣膰_wyj膮tku[, 艣lad_wyj膮tku]])
- send(warto艣膰)
- Bardziej zaawansowane podprogramy
- Zwracanie warto艣ci w podprogramach
- Delegowanie zada艅 do mniejszych podprogram贸w sk艂adnia yield from
- Najprostsze wykorzystanie sk艂adni yield from
- Przechwytywanie warto艣ci zwracanej przez podgenerator
- Wysy艂anie danych do podgeneratora i odbieranie ich stamt膮d
- Metody interfejsu generatora
- Programowanie asynchroniczne
- Magiczne metody asynchroniczne
- Asynchroniczne mened偶ery kontekstu
- Inne metody magiczne
- Iteracja asynchroniczna
- Generatory asynchroniczne
- Magiczne metody asynchroniczne
- Podsumowanie
- Bibliografia
- 8. Testy jednostkowe i refaktoryzacja
- Zasady projektowania a testy jednostkowe
- Uwaga na temat innych form automatycznych test贸w
- Testy jednostkowe a zwinne wytwarzanie oprogramowania
- Testy jednostkowe a projektowanie oprogramowania
- Definiowanie granic testowania
- Narz臋dzia testowania
- Frameworki i biblioteki do test贸w jednostkowych
- unittest
- Testy sparametryzowane
- pytest
- Proste przypadki testowe dla modu艂u pytest
- Testy sparametryzowane
- Fikstury
- Pokrycie kodu testami
- Konfigurowanie modu艂u do badania pokrycia kodu testami
- Zastrze偶enia do pokrycia kodu testami
- Obiekty mock
- Ostrze偶enie przed 艂ataniem i obiektami mock
- Korzystanie z obiekt贸w mock
- unittest
- Frameworki i biblioteki do test贸w jednostkowych
- Refaktoryzacja
- Ewolucje kodu
- Kod produkcyjny nie jest jedynym, kt贸ry ewoluuje
- Wi臋cej o testowaniu
- Testowanie oparte na w艂a艣ciwo艣ciach
- Testowanie mutacji
- Typowe motywy w testowaniu
- Warto艣ci graniczne
- Klasy r贸wnowa偶no艣ci
- Przypadki brzegowe
- Kr贸tkie wprowadzenie do techniki TDD
- Podsumowanie
- Bibliografia
- Zasady projektowania a testy jednostkowe
- 9. Typowe wzorce projektowe
- Zagadnienia dotycz膮ce wzorc贸w projektowych w Pythonie
- Wzorce projektowe w praktyce
- Wzorce kreacyjne
- Fabryki
- Singleton i Stan wsp贸艂dzielony (Monostat)
- Stan wsp贸艂dzielony (Monostat)
- Wzorzec Borga
- Budowniczy
- Wzorce strukturalne
- Adapter
- Kompozyt
- Dekorator
- Fasada
- Wzorce behawioralne
- 艁a艅cuch odpowiedzialno艣ci
- Metoda szablonowa
- Polecenie
- Stan
- Wzorce kreacyjne
- Pusty obiekt
- Ko艅cowe przemy艣lenia dotycz膮ce wzorc贸w projektowych
- Wp艂yw zastosowania wzorc贸w na projekt
- Wzorce projektowe jako teoria
- Nazwy w modelach
- Podsumowanie
- Bibliografia
- 10. Czysta architektura
- Od czystego kodu do czystej architektury
- Podzia艂 odpowiedzialno艣ci
- Aplikacje monolityczne a mikrous艂ugi
- Abstrakcje
- Komponenty oprogramowania
- Pakiety
- Zarz膮dzanie zale偶no艣ciami
- Inne problemy dotycz膮ce zarz膮dzania zale偶no艣ciami
- Wersje artefakt贸w
- Kontenery Docker
- Przypadek u偶ycia
- Kod
- Modele domen
- Wywo艂ywanie z aplikacji
- Adaptery
- Us艂ugi
- Analiza
- Przep艂yw zale偶no艣ci
- Ograniczenia
- Testowalno艣膰
- Ujawnianie intencji
- Pakiety
- Podsumowanie
- Bibliografia
- Podsumowanie ko艅cowe
- Od czystego kodu do czystej architektury