Python Dobre praktyki profesjonalistow.pdf
(
887 KB
)
Pobierz
Tytuł oryginału: Practices of the Python Pro
Tłumaczenie: Michał Sternik
Projekt okładki: Studio Gravite / Olsztyn; Obarek, Pokoński, Pazdrijowski, Zaprucki
Materiały graficzne na okładce zostały wykorzystane za zgodą Shutterstock Images LLC.
ISBN: 978-83-283-6869-9
Original edition copyright © 2020 by Manning Publications Co.
All rights reserved.
Polish edition copyright © 2020 by Helion SA
All rights reserved.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz Helion SA dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne
i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym
ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Helion SA nie ponoszą również
żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.
Helion SA
ul. Kościuszki 1c, 44-100 Gliwice
tel. 32 231 22 19, 32 230 98 63
e-mail:
helion@helion.pl
WWW:
http://helion.pl
(księgarnia internetowa, katalog książek)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/pytdop.zip
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/pytdop
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
•
Kup książkę
•
Poleć książkę
•
Oceń książkę
•
Księgarnia internetowa
•
Lubię to! » Nasza społeczność
Spis treści
Przedmowa 9
Podziękowania 11
O książce 13
O autorze 16
C
ZĘŚĆ
I. D
LACZEGO TO WSZYSTKO MA ZNACZENIE
17
Rozdział 1. Szersze spojrzenie
1.1.
19
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
C
ZĘŚĆ
II. P
ODSTAWY PROJEKTOWANIA
33
Rozdział 2. Rozdzielanie zagadnień
2.1.
35
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
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
39
Kup książkę
Poleć książkę
4
Spis treści
Rozdział 3. Abstrakcja i hermetyzacja
3.1.
57
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
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
62
Rozdział 4. Projektowanie pod kątem wysokiej wydajności
4.1.
75
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
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
82
Rozdział 5. Testowanie oprogramowania
5.1.
95
96
5.2.
Czym jest testowanie oprogramowania 96
5.1.1.
Czy robi to, co napisano w instrukcji
5.1.2.
Anatomia testu funkcjonalnego 96
Podejścia do testowania funkcjonalnego 98
5.2.1.
Testy manualne 98
5.2.2.
Testy automatyczne 98
Kup książkę
Poleć książkę
Spis treści
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
5
C
ZĘŚĆ
III. A
RANŻACJA DUŻYCH SYSTEMÓW
121
Rozdział 6. Rozdzielanie aspektów w praktyce
6.1.
6.2.
123
Aplikacja do tworzenia zakładek z wiersza poleceń 124
Wycieczka po Bark 125
6.2.1.
Korzyści wynikające z rozdzielenia: powtórzenie
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
125
Rozdział 7. Rozszerzalność i elastyczność
7.1.
149
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
7.2.3.
Zwalczanie entropii: zasada odporności 159
7.3.
Ćwiczenie
rozszerzalności 160
Podsumowanie 164
158
Kup książkę
Poleć książkę
Plik z chomika:
PDFator
Inne pliki z tego folderu:
Arduino dla poczatkujacych Kolejny krok.pdf
(1625 KB)
Code with me Zostan game developerem.pdf
(2379 KB)
Blockchain Zaawansowane zastosowania lancucha blokow Wydanie II.pdf
(2299 KB)
Certyfikowany tester ISTQB Poziom podstawowy.pdf
(5469 KB)
Czysta architektura Struktura i design oprogramowania Przewodnik dla profesjonalistow.pdf
(913 KB)
Inne foldery tego chomika:
3ds max
Access
Acrobat
After Effects
Agile - Programowanie
Zgłoś jeśli
naruszono regulamin