reklama - zainteresowany?

Python. Dobre praktyki profesjonalistów - Helion

Python. Dobre praktyki profesjonalistów
ebook
Autor: Dane Hillard
Tytuł oryginału: Practices of the Python Pro
Tłumaczenie: Michał Sternik
ISBN: 978-83-283-6870-5
stron: 240, Format: ebook
Data wydania: 2020-10-27
Księgarnia: Helion

Cena książki: 32,45 zł (poprzednio: 57,95 zł)
Oszczędzasz: 44% (-25,50 zł)

Dodaj do koszyka Python. Dobre praktyki profesjonalistów

Tagi: Prezenty dla Niego | Python - Programowanie

Python wydaje siÄ™ jÄ™zykiem idealnym: ma intuicyjnÄ… skÅ‚adniÄ™, jest przyjemny w używaniu, umożliwia tworzenie wydajnego, elastycznego kodu. Przy tym jest wyjÄ…tkowo wszechstronny, a stosowanie go w przeróżnych celach uÅ‚atwiajÄ… liczne biblioteki tworzone przez pasjonatów. To jednak nie zmienia faktu, że aby stać siÄ™ profesjonalnym programistÄ… Pythona, trzeba nauczyć siÄ™ tworzyć kod godny profesjonalisty: dziaÅ‚ajÄ…cy bez bÅ‚Ä™dów, czysty, czytelny i Å‚atwy w utrzymaniu. W tym celu trzeba korzystać z branżowych standardów, które okreÅ›lajÄ… styl kodowania, projektowania aplikacji i prowadzenie caÅ‚ego procesu programowania. Należy wiedzieć, kiedy i w jaki sposób modularyzować kod, jak poprawić jakość przez zmniejszenie zÅ‚ożonoÅ›ci i stosować kilka innych, koniecznych praktyk.

Ta książka okaże siÄ™ szczególnie cenna dla każdego, kto zamierza profesjonalnie tworzyć kod w Pythonie. Stanowi jasny i zrozumiaÅ‚y zbiór zasad wytwarzania oprogramowania o najwyższej jakoÅ›ci, praktyk stosowanych przez zawodowych wyjadaczy projektowania i kodowania. Poza teoretycznym omówieniem poszczególnych zagadnieÅ„ znalazÅ‚o siÄ™ tu mnóstwo przykÅ‚adów i przydatnych ćwiczeÅ„, utrwalajÄ…cych prezentowany materiaÅ‚. Nie zabrakÅ‚o krótkiego wprowadzenia do Pythona, przedstawiono też sporo informacji o strukturach danych i różnych podejÅ›ciach w kontekÅ›cie osiÄ…gania dobrej wydajnoÅ›ci kodu.

Pokazano, w jaki sposób zapobiegać nadmiernemu przyrostowi kodu podczas rozwijania aplikacji i jak redukować niepożądane powiÄ…zania w aplikacji. DodatkowÄ… wartoÅ›ciÄ… publikacji jest bogactwo informacji o ogólnej architekturze oprogramowania, przydatnych każdemu zawodowemu programiÅ›cie.

W książce między innymi:

  • podstawy projektowania w Pythonie
  • wysokopoziomowe koncepcje rozwoju oprogramowania
  • abstrakcje i hermetyzacja kodu
  • różne metody testowania kodu
  • tworzenie dużych systemów a rozszerzalność i elastyczność aplikacji

Pythona praktykuj profesjonalnie!

Dodaj do koszyka Python. Dobre praktyki profesjonalistów

 

Osoby które kupowały "Python. Dobre praktyki profesjonalistów", wybierały także:

  • Socjotechnika. Sztuka zdobywania wÅ‚adzy nad umysÅ‚ami. Wydanie II
  • Bioksi
  • Åšwiat w skali mikro. Wszystko o modelarstwie
  • Duch w sieci. Moje przygody jako najbardziej poszukiwanego hakera wszech czasów
  • Wybrane diatryby i Encheiridion. Stoicka sztuka

Dodaj do koszyka Python. Dobre praktyki profesjonalistów

Spis treści

Python. Dobre praktyki profesjonalistów eBook -- spis treści


Przedmowa 9

Podziękowania 11

O książce 13

O autorze 16

CZĘŚĆ I. DLACZEGO TO WSZYSTKO MA ZNACZENIE 17

Rozdział 1. Szersze spojrzenie 19

  • 1.1. Python jest jÄ™zykiem dla przedsiÄ™biorstw 20
    • 1.1.1. Czasy siÄ™ zmieniajÄ… 20
    • 1.1.2. Co lubiÄ™ w Pythonie 21
  • 1.2. Python jest jÄ™zykiem przyjaznym do nauczania 21
  • 1.3. Projektowanie jest procesem 22
    • 1.3.1. DoÅ›wiadczenie użytkownika 23
    • 1.3.2. Już to widziaÅ‚eÅ› 24
  • 1.4. Projektowanie umożliwia tworzenie lepszego oprogramowania 24
    • 1.4.1. Rozważania przy projektowaniu oprogramowania 25
    • 1.4.2. Oprogramowanie organiczne 26
  • 1.5. Kiedy inwestować w projektowanie 27
  • 1.6. Nowe poczÄ…tki 28
  • 1.7. Projekt jest demokratyczny 29
    • 1.7.1. Obecność umysÅ‚u 29
  • 1.8. Jak korzystać z tej książki 31
  • Podsumowanie 32

CZĘŚĆ II. PODSTAWY PROJEKTOWANIA 33

Rozdział 2. Rozdzielanie zagadnień 35

  • 2.1. Przestrzenie nazw 36
    • 2.1.1. Przestrzenie nazw oraz polecenie import 36
    • 2.1.2. Wiele twarzy importowania 38
    • 2.1.3. Przestrzenie nazw zapobiegajÄ… kolizjom nazw 39
  • 2.2. Hierarchia rozdzielania w Pythonie 41
    • 2.2.1. Funkcje 41
    • 2.2.2. Klasy 47
    • 2.2.3. ModuÅ‚y 52
    • 2.2.4. Pakiety 52
  • Podsumowanie 54

Rozdział 3. Abstrakcja i hermetyzacja 57

  • 3.1. Co to jest abstrakcja? 57
    • 3.1.1. "Czarna skrzynka" 57
    • 3.1.2. Abstrakcja jest jak cebula 59
    • 3.1.3. Abstrakcja to uproszczenie 61
    • 3.1.4. Dekompozycja umożliwia zastosowanie abstrakcji 62
  • 3.2. Hermetyzacja 63
    • 3.2.1. Konstrukty hermetyzacji w Pythonie 63
    • 3.2.2. Prywatność w Pythonie 64
  • 3.3. Wypróbuj 64
    • 3.3.1. Refaktoryzacja 66
  • 3.4. Style programowania to też abstrakcja 67
    • 3.4.1. Programowanie proceduralne 67
    • 3.4.2. Programowanie funkcyjne 67
    • 3.4.3. Programowanie deklaratywne 69
  • 3.5. Typowanie, dziedziczenie i polimorfizm 70
  • 3.6. Rozpoznanie nieprawidÅ‚owej abstrakcji 72
    • 3.6.1. Kwadratowe koÅ‚ki i okrÄ…gÅ‚e otwory 72
    • 3.6.2. Buty szyte na miarÄ™ 73
  • Podsumowanie 73

Rozdział 4. Projektowanie pod kątem wysokiej wydajności 75

  • 4.1. PÄ™dzÄ…c przez czas i przestrzeÅ„ 76
    • 4.1.1. ZÅ‚ożoność jest trochÄ™... zÅ‚ożona 76
    • 4.1.2. ZÅ‚ożoność czasowa 77
    • 4.1.3. ZÅ‚ożoność przestrzeni 80
  • 4.2. Wydajność i typy danych 81
    • 4.2.1. Typy danych dla staÅ‚ego czasu 81
    • 4.2.2. Typy danych w czasie liniowym 82
    • 4.2.3. ZÅ‚ożoność przestrzeni w operacjach na typach danych 82
  • 4.3. Zrób to, zrób to dobrze, spraw, żeby byÅ‚o szybkie 85
    • 4.3.1. Zrób to 86
    • 4.3.2. Zrób to dobrze 86
    • 4.3.3. Spraw, żeby byÅ‚o szybkie 89
  • 4.4. NarzÄ™dzia 89
    • 4.4.1. timeit 90
    • 4.4.2. Profilowanie CPU 91
  • 4.5. Wypróbuj 92
  • Podsumowanie 93

Rozdział 5. Testowanie oprogramowania 95

  • 5.1. Czym jest testowanie oprogramowania 96
    • 5.1.1. Czy robi to, co napisano w instrukcji 96
    • 5.1.2. Anatomia testu funkcjonalnego 96
  • 5.2. PodejÅ›cia do testowania funkcjonalnego 98
    • 5.2.1. Testy manualne 98
    • 5.2.2. Testy automatyczne 98
    • 5.2.3. Testy akceptacyjne 99
    • 5.2.4. Testy jednostkowe 100
    • 5.2.5. Testy integracyjne 101
    • 5.2.6. Piramida testów 102
    • 5.2.7. Testy regresji 103
  • 5.3. Stwierdzenie faktów 104
  • 5.4. Testy jednostkowe z unittest 105
    • 5.4.1. Organizacja testów z unittest 105
    • 5.4.2. Uruchamianie testów z unittest 105
    • 5.4.3. Pisanie pierwszego testu w unittest 105
    • 5.4.4. Pierwszy test integracyjny w unittest 108
    • 5.4.5. Zamienniki testowe 110
    • 5.4.6. Wypróbuj 112
    • 5.4.7. Pisanie ciekawych testów 114
  • 5.5. Testowanie z pytest 114
    • 5.5.1. Organizowanie testów w pytest 115
    • 5.5.2. Konwersja testów w unittest na pytest 115
  • 5.6. Poza testowaniem funkcjonalnym 116
    • 5.6.1. Testy wydajnoÅ›ci 116
    • 5.6.2. Testowanie obciążenia 117
  • 5.7. Rozwój oparty na testach: podstawy 117
    • 5.7.1. To sposób myÅ›lenia 118
    • 5.7.2. To filozofia 118
  • Podsumowanie 119

CZĘŚĆ III. ARANÅ»ACJA DUÅ»YCH SYSTEMÓW 121

RozdziaÅ‚ 6. Rozdzielanie aspektów w praktyce 123

  • 6.1. Aplikacja do tworzenia zakÅ‚adek z wiersza poleceÅ„ 124
  • 6.2. Wycieczka po Bark 125
    • 6.2.1. KorzyÅ›ci wynikajÄ…ce z rozdzielenia: powtórzenie 125
  • 6.3. PoczÄ…tkowa struktura kodu, wedÅ‚ug aspektów 126
    • 6.3.1. Warstwa przechowywania danych 127
    • 6.3.2. Warstwa logiki biznesowej 136
    • 6.3.3. Warstwa prezentacji 140
  • Podsumowanie 147

Rozdział 7. Rozszerzalność i elastyczność 149

  • 7.1. Co to jest kod rozszerzalny? 149
    • 7.1.1. Dodawanie nowych zachowaÅ„ 150
    • 7.1.2. Modyfikacja istniejÄ…cych zachowaÅ„ 152
    • 7.1.3. Luźne wiÄ…zanie 153
  • 7.2. RozwiÄ…zania dla sztywnoÅ›ci 155
    • 7.2.1. Oddawanie: odwrócenie sterowania 155
    • 7.2.2. DiabeÅ‚ tkwi w szczegóÅ‚ach: poleganie na interfejsach 158
    • 7.2.3. Zwalczanie entropii: zasada odpornoÅ›ci 159
  • 7.3. Ćwiczenie rozszerzalnoÅ›ci 160
  • Podsumowanie 164

Rozdział 8. Zasady (i wyjątki) dziedziczenia 165

  • 8.1. Historia dziedziczenia w programowaniu 165
    • 8.1.1. Panaceum 166
    • 8.1.2. Wyzwania hierarchii 166
  • 8.2. Dziedziczenie obecnie 168
    • 8.2.1. Do czego sÅ‚uży dziedziczenie 168
    • 8.2.2. ZastÄ™powalność 169
    • 8.2.3. Idealny przypadek użycia dziedziczenia 170
  • 8.3. Dziedziczenie w Pythonie 173
    • 8.3.1. Inspekcja typu 173
    • 8.3.2. DostÄ™p do klasy bazowej 174
    • 8.3.3. Wielokrotne dziedziczenie i kolejność rozwiÄ…zywania metod 174
    • 8.3.4. Abstrakcyjne klasy bazowe 178
  • 8.4. Dziedziczenie i kompozycja w programie Bark 180
    • 8.4.1. Refaktoryzacja w celu użycia abstrakcyjnej klasy bazowej 180
    • 8.4.2. Ostateczne spojrzenie na wykonane dziedziczenie 182
  • Podsumowanie 182

Rozdział 9. Zapewnianie lekkości 183

  • 9.1. Jak duża powinna być klasa/funkcja/moduÅ‚ 183
    • 9.1.1. Fizyczny rozmiar 184
    • 9.1.2. Pojedyncza odpowiedzialność 184
    • 9.1.3. ZÅ‚ożoność kodu 185
  • 9.2. RozkÅ‚adanie zÅ‚ożonoÅ›ci 189
    • 9.2.1. WyodrÄ™bnianie konfiguracji 189
    • 9.2.2. WyodrÄ™bnianie funkcji 191
  • 9.3. Dekompozycja klas 193
    • 9.3.1. ZÅ‚ożoność inicjacji 193
    • 9.3.2. WyodrÄ™bnianie klas i przekazywanie wywoÅ‚aÅ„ 195
  • Podsumowanie 199

Rozdział 10. Luźne wiązania w praktyce 201

  • 10.1. Definicja wiÄ…zania 201
    • 10.1.1. Tkanka Å‚Ä…czna 201
    • 10.1.2. ÅšcisÅ‚e wiÄ…zania 202
    • 10.1.3. Luźne wiÄ…zania 205
  • 10.2. Rozpoznawanie wiÄ…zania 208
    • 10.2.1. Zazdrość o funkcje 208
    • 10.2.2. Chirurgia przy użyciu strzelby 209
    • 10.2.3. Nieszczelne abstrakcje 209
  • 10.3. WiÄ…zania w programie Bark 210
  • 10.4. Radzenie sobie z wiÄ…zaniami 212
    • 10.4.1. Powiadamianie użytkownika 212
    • 10.4.2. Przechowywanie zakÅ‚adek 215
    • 10.4.3. Wypróbuj 216
  • Podsumowanie 219

CZĘŚĆ IV. CO DALEJ? 221

Rozdział 11. Dalej i wyżej 223

  • 11.1. Co teraz 223
    • 11.1.1. Opracuj plan 224
    • 11.1.2. Wykonaj plan 225
    • 11.1.3. Åšledź swoje postÄ™py 227
  • 11.2. Wzorce projektowe 228
    • 11.2.1. Mocne i sÅ‚abe strony wzorców projektowych w Pythonie 229
    • 11.2.2. Tematy, od których zacząć 230
  • 11.3. Systemy rozproszone 230
    • 11.3.1. Tryby awarii w systemach rozproszonych 231
    • 11.3.2. Adresowanie stanu aplikacji 232
    • 11.3.3. Tematy, od których zacząć 232
  • 11.4. Zanurz siÄ™ gÅ‚Ä™boko w Pythonie 232
    • 11.4.1. Styl kodu w jÄ™zyku Python 232
    • 11.4.2. Funkcje jÄ™zykowe sÄ… wzorcami 233
    • 11.4.3. Tematy, od których zacząć 234
  • 11.5. Gdzie byÅ‚eÅ› 234
    • 11.5.1. Tam i z powrotem: opowieść programisty 234
    • 11.5.2. ZakoÅ„czenie 236
  • Podsumowanie 236

Załącznik A. Instalacja Pythona 237

  • A.1. Jakiej wersji Pythona powinienem użyć 237
  • A.2. Python "systemowy" 238
  • A.3. Instalowanie innych wersji Pythona 238
    • A.3.1. Pobierz oficjalnÄ… dystrybucjÄ™ Pythona 238
    • A.3.2. Pobierz za pomocÄ… Anacondy 239
  • A.4. Weryfikacja instalacji 240

Dodaj do koszyka Python. Dobre praktyki profesjonalistów

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.