Facebook - konwersja
  • promocja

Czysty kod w Pythonie. Twórz wydajny i łatwy w utrzymaniu kod - ebook

Wydawnictwo:
Tłumacz:
Data wydania:
22 marca 2022
Format ebooka:
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.
, 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.
, 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.
(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.

Czysty kod w Pythonie. Twórz wydajny i łatwy w utrzymaniu kod - ebook

Popularność Pythona, ulubionego języka programistów i naukowców, stale rośnie. Jest on bowiem łatwy do nauczenia się: nawet początkujący programista może napisać działający kod. W efekcie, mimo że Python pozwala na pisanie kodu przejrzystego i prostego w konserwacji, zdarzają się przypadki kodu źle zorganizowanego, nieczytelnego i praktycznie nietestowalnego. Jedną z przyczyn tego stanu rzeczy jest tendencja niektórych programistów do pisania kodu bez czytelnej struktury. Zidentyfikowanie takich problemów i ich rozwiązywanie nie jest łatwym zadaniem.

Dzięki tej książce nauczysz się korzystać z kilku narzędzi służących do zarządzania projektami napisanymi w Pythonie. Dowiesz się, czym się charakteryzuje czysty kod i jakie techniki umożliwiają tworzenie czytelnego i wydajnego kodu. Przekonasz się, że do tego celu wystarczą standardowa biblioteka Pythona i zestaw najlepszych praktyk programistycznych. Opisano tu szczegóły programowania obiektowego w Pythonie wraz z zastosowaniem deskryptorów i generatorów. Zaprezentowano również zasady testowania oprogramowania i sposoby rozwiązywania problemów poprzez implementację wzorców projektowych w kodzie. Pokazano też, jak można podzielić monolityczną aplikację na mikrousługi, by otrzymać solidną architekturę aplikacji.

W książce między innymi:

  • konfiguracja wydajnego środowiska programistycznego
  • tworzenie zaawansowanych projektów obiektowych
  • techniki eliminacji zdublowanego kodu i tworzenie rozbudowanych abstrakcji
  • zastosowanie dekoratorów i deskryptorów
  • skuteczna refaktoryzacja kodu
  • budowa solidnej architektury opartej na czystym kodzie Pythona
Czysty kod w Pythonie. Tylko taki warto pisać!

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
  • 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
  • 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
    • 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
    • Uwagi końcowe dotyczące dobrych praktyk projektowania oprogramowania
      • Ortogonalność w oprogramowaniu
      • Strukturyzacja kodu
    • Podsumowanie
    • Materiały referencyjne
  • 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
    • 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
  • 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
    • 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
  • 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
    • 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
    • Uwagi końcowe na temat deskryptorów
      • Interfejs deskryptorów
      • Obiektowy projekt deskryptorów
      • Adnotacje typów dla deskryptorów
    • Podsumowanie
    • Bibliografia
  • 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
    • Programowanie asynchroniczne
      • Magiczne metody asynchroniczne
        • Asynchroniczne menedżery kontekstu
        • Inne metody magiczne
      • Iteracja asynchroniczna
      • Generatory 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
    • 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
  • 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
    • 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
    • Podsumowanie
    • Bibliografia
    • Podsumowanie końcowe
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-8612-9
Rozmiar pliku: 4,0 MB

BESTSELLERY

Kategorie: