Kategorie
Ebooki
-
Biznes i ekonomia
- Bitcoin
- Bizneswoman
- Coaching
- Controlling
- E-biznes
- Ekonomia
- Finanse
- Giełda i inwestycje
- Kompetencje osobiste
- Komputer w biurze
- Komunikacja i negocjacje
- Mała firma
- Marketing
- Motywacja
- Multimedialne szkolenia
- Nieruchomości
- Perswazja i NLP
- Podatki
- Polityka społeczna
- Poradniki
- Prezentacje
- Przywództwo
- Public Relation
- Raporty, analizy
- Sekret
- Social Media
- Sprzedaż
- Start-up
- Twoja kariera
- Zarządzanie
- Zarządzanie projektami
- Zasoby ludzkie (HR)
-
Dla dzieci
-
Dla młodzieży
-
Edukacja
-
Encyklopedie, słowniki
-
E-prasa
- Architektura i wnętrza
- Biznes i Ekonomia
- Dom i ogród
- E-Biznes
- Finanse
- Finanse osobiste
- Firma
- Fotografia
- Informatyka
- Kadry i płace
- Komputery, Excel
- Księgowość
- Kultura i literatura
- Naukowe i akademickie
- Ochrona środowiska
- Opiniotwórcze
- Oświata
- Podatki
- Podróże
- Psychologia
- Religia
- Rolnictwo
- Rynek książki i prasy
- Transport i Spedycja
- Zdrowie i uroda
-
Historia
-
Informatyka
- Aplikacje biurowe
- Bazy danych
- Bioinformatyka
- Biznes IT
- CAD/CAM
- Digital Lifestyle
- DTP
- Elektronika
- Fotografia cyfrowa
- Grafika komputerowa
- Gry
- Hacking
- Hardware
- IT w ekonomii
- Pakiety naukowe
- Podręczniki szkolne
- Podstawy komputera
- Programowanie
- Programowanie mobilne
- Serwery internetowe
- Sieci komputerowe
- Start-up
- Systemy operacyjne
- Sztuczna inteligencja
- Technologia dla dzieci
- Webmasterstwo
-
Inne
-
Języki obce
-
Kultura i sztuka
-
Lektury szkolne
-
Literatura
- Antologie
- Ballada
- Biografie i autobiografie
- Dla dorosłych
- Dramat
- Dzienniki, pamiętniki, listy
- Epos, epopeja
- Esej
- Fantastyka i science-fiction
- Felietony
- Fikcja
- Humor, satyra
- Inne
- Klasyczna
- Kryminał
- Literatura faktu
- Literatura piękna
- Mity i legendy
- Nobliści
- Nowele
- Obyczajowa
- Okultyzm i magia
- Opowiadania
- Pamiętniki
- Podróże
- Poemat
- Poezja
- Polityka
- Popularnonaukowa
- Powieść
- Powieść historyczna
- Proza
- Przygodowa
- Publicystyka
- Reportaż
- Romans i literatura obyczajowa
- Sensacja
- Thriller, Horror
- Wywiady i wspomnienia
-
Nauki przyrodnicze
-
Nauki społeczne
-
Podręczniki szkolne
-
Popularnonaukowe i akademickie
- Archeologia
- Bibliotekoznawstwo
- Filmoznawstwo
- Filologia
- Filologia polska
- Filozofia
- Finanse i bankowość
- Geografia
- Gospodarka
- Handel. Gospodarka światowa
- Historia i archeologia
- Historia sztuki i architektury
- Kulturoznawstwo
- Lingwistyka
- Literaturoznawstwo
- Logistyka
- Matematyka
- Medycyna
- Nauki humanistyczne
- Pedagogika
- Pomoce naukowe
- Popularnonaukowa
- Pozostałe
- Psychologia
- Socjologia
- Teatrologia
- Teologia
- Teorie i nauki ekonomiczne
- Transport i spedycja
- Wychowanie fizyczne
- Zarządzanie i marketing
-
Poradniki
-
Poradniki do gier
-
Poradniki zawodowe i specjalistyczne
-
Prawo
- BHP
- Historia
- Kodeks drogowy. Prawo jazdy
- Nauki prawne
- Ochrona zdrowia
- Ogólne, kompendium wiedzy
- Podręczniki akademickie
- Pozostałe
- Prawo budowlane i lokalowe
- Prawo cywilne
- Prawo finansowe
- Prawo gospodarcze
- Prawo gospodarcze i handlowe
- Prawo karne
- Prawo karne. Przestępstwa karne. Kryminologia
- Prawo międzynarodowe
- Prawo międzynarodowe i zagraniczne
- Prawo ochrony zdrowia
- Prawo oświatowe
- Prawo podatkowe
- Prawo pracy i ubezpieczeń społecznych
- Prawo publiczne, konstytucyjne i administracyjne
- Prawo rodzinne i opiekuńcze
- Prawo rolne
- Prawo socjalne, prawo pracy
- Prawo Unii Europejskiej
- Przemysł
- Rolne i ochrona środowiska
- Słowniki i encyklopedie
- Zamówienia publiczne
- Zarządzanie
-
Przewodniki i podróże
- Afryka
- Albumy
- Ameryka Południowa
- Ameryka Środkowa i Północna
- Australia, Nowa Zelandia, Oceania
- Austria
- Azja
- Bałkany
- Bliski Wschód
- Bułgaria
- Chiny
- Chorwacja
- Czechy
- Dania
- Egipt
- Estonia
- Europa
- Francja
- Góry
- Grecja
- Hiszpania
- Holandia
- Islandia
- Litwa
- Łotwa
- Mapy, Plany miast, Atlasy
- Miniprzewodniki
- Niemcy
- Norwegia
- Podróże aktywne
- Polska
- Portugalia
- Pozostałe
- Rosja
- Rumunia
- Słowacja
- Słowenia
- Szwajcaria
- Szwecja
- Świat
- Turcja
- Ukraina
- Węgry
- Wielka Brytania
- Włochy
-
Psychologia
- Filozofie życiowe
- Kompetencje psychospołeczne
- Komunikacja międzyludzka
- Mindfulness
- Ogólne
- Perswazja i NLP
- Psychologia akademicka
- Psychologia duszy i umysłu
- Psychologia pracy
- Relacje i związki
- Rodzicielstwo i psychologia dziecka
- Rozwiązywanie problemów
- Rozwój intelektualny
- Sekret
- Seksualność
- Uwodzenie
- Wygląd i wizerunek
- Życiowe filozofie
-
Religia
-
Sport, fitness, diety
-
Technika i mechanika
Audiobooki
-
Biznes i ekonomia
- Bitcoin
- Bizneswoman
- Coaching
- Controlling
- E-biznes
- Ekonomia
- Finanse
- Giełda i inwestycje
- Kompetencje osobiste
- Komunikacja i negocjacje
- Mała firma
- Marketing
- Motywacja
- Nieruchomości
- Perswazja i NLP
- Podatki
- Poradniki
- Prezentacje
- Przywództwo
- Public Relation
- Sekret
- Social Media
- Sprzedaż
- Start-up
- Twoja kariera
- Zarządzanie
- Zarządzanie projektami
- Zasoby ludzkie (HR)
-
Dla dzieci
-
Dla młodzieży
-
Edukacja
-
Encyklopedie, słowniki
-
Historia
-
Informatyka
-
Inne
-
Języki obce
-
Kultura i sztuka
-
Lektury szkolne
-
Literatura
- Antologie
- Ballada
- Biografie i autobiografie
- Dla dorosłych
- Dramat
- Dzienniki, pamiętniki, listy
- Epos, epopeja
- Esej
- Fantastyka i science-fiction
- Felietony
- Fikcja
- Humor, satyra
- Inne
- Klasyczna
- Kryminał
- Literatura faktu
- Literatura piękna
- Mity i legendy
- Nobliści
- Nowele
- Obyczajowa
- Okultyzm i magia
- Opowiadania
- Pamiętniki
- Podróże
- Poezja
- Polityka
- Popularnonaukowa
- Powieść
- Powieść historyczna
- Proza
- Przygodowa
- Publicystyka
- Reportaż
- Romans i literatura obyczajowa
- Sensacja
- Thriller, Horror
- Wywiady i wspomnienia
-
Nauki przyrodnicze
-
Nauki społeczne
-
Popularnonaukowe i akademickie
-
Poradniki
-
Poradniki zawodowe i specjalistyczne
-
Prawo
-
Przewodniki i podróże
-
Psychologia
- Filozofie życiowe
- Komunikacja międzyludzka
- Mindfulness
- Ogólne
- Perswazja i NLP
- Psychologia akademicka
- Psychologia duszy i umysłu
- Psychologia pracy
- Relacje i związki
- Rodzicielstwo i psychologia dziecka
- Rozwiązywanie problemów
- Rozwój intelektualny
- Sekret
- Seksualność
- Uwodzenie
- Wygląd i wizerunek
- Życiowe filozofie
-
Religia
-
Sport, fitness, diety
-
Technika i mechanika
Kursy video
-
Bazy danych
-
Big Data
-
Biznes, ekonomia i marketing
-
Cyberbezpieczeństwo
-
Data Science
-
DevOps
-
Dla dzieci
-
Elektronika
-
Grafika/Wideo/CAX
-
Gry
-
Microsoft Office
-
Narzędzia programistyczne
-
Programowanie
-
Rozwój osobisty
-
Sieci komputerowe
-
Systemy operacyjne
-
Testowanie oprogramowania
-
Urządzenia mobilne
-
UX/UI
-
Web development
-
Zarządzanie
Podcasty
- Ebooki
- Programowanie
- Python
- Czysty kod w Pythonie. Twórz wydajny i łatwy w utrzymaniu kod. Wydanie II
Szczegóły ebooka
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ć!
- 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
- Tytuł: Czysty kod w Pythonie. Twórz wydajny i łatwy w utrzymaniu kod. Wydanie II
- Autor: Mariano Anaya
- Tytuł oryginału: Clean Code in Python: Develop maintainable and efficient code, 2nd Edition
- Tłumaczenie: Radosław Meryk
- ISBN: 978-83-283-8612-9, 9788328386129
- Data wydania: 2022-03-22
- Format: Ebook
- Identyfikator pozycji: czyko2
- Wydawca: Helion