the-art-of-clean-code.-jak-eliminowac-zlozonosc-i-pisac-czysty-kod pełna wersja.pdf

(3428 KB) Pobierz
Tytuł oryginału: The Art of Clean Code: Best Practices to Eliminate Complexity and Simplify Your Life
Tłumaczenie: Robert Górczyński
ISBN: 978-83-8322-064-2
Copyright © 2022 by Christian Mayer. Title of English-language original: The Art of Clean Code: Best
Practices to Eliminate Complexity and Simplify Your Life, ISBN 9781718502185, published by No
Starch Press Inc. 245 8th Street, San Francisco, California United States 94103. The Polish-language 1st
edition Copyright © 2023 by Helion S.A. under license by No Starch Press Inc. All rights reserved.
Polish edition copyright © 2023 by Helion S.A.
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 wydawca 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 wydawca nie ponoszą również
żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych
w książce.
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
https://helion.pl/user/opinie/theart
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
https://ftp.helion.pl/przyklady/theart.zip
Helion S.A.
ul. Kościuszki 1c, 44-100 Gliwice
tel. 32 230 98 63
e-mail:
helion@helion.pl
WWW:
https://helion.pl
(księgarnia internetowa, katalog książek)
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
Spis treści
PRZEDMOWA ...............................................................................................................................................11
PODZIĘKOWANIA .......................................................................................................................................13
WPROWADZENIE ........................................................................................................................................15
1
NEGATYWNY WPŁYW ZŁOŻONOŚCI NA PRODUKTYWNOŚĆ ..........................................................21
Czym jest złożoność? ............................................................................................................................................. 24
Złożoność cyklu życiowego projektu ................................................................................................................ 25
Planowanie ..................................................................................................................................................................... 25
Definiowanie .................................................................................................................................................................. 26
Projektowanie ................................................................................................................................................................ 26
Budowanie ...................................................................................................................................................................... 27
Testowanie ..................................................................................................................................................................... 27
Wdrażanie ....................................................................................................................................................................... 29
Złożoność w teorii oprogramowania i algorytmów .................................................................................... 30
Złożoność w nauce .................................................................................................................................................. 35
Złożoność w procesach .......................................................................................................................................... 37
Złożoność w życiu codziennym, czyli kara tysiąca cięć ............................................................................. 38
Podsumowanie ......................................................................................................................................................... 39
2
ZASADA 80/20 ............................................................................................................................................40
Podstawy zasady 80/20 ........................................................................................................................................ 40
Optymalizacja oprogramowania ........................................................................................................................ 41
Produktywność .......................................................................................................................................................... 43
Wskaźniki sukcesu ................................................................................................................................................... 44
Skupienie i rozkład Pareta .................................................................................................................................... 47
Implikacje dla programistów ............................................................................................................................... 48
Wskaźniki sukcesu programisty .............................................................................................................................. 49
Rozkład Pareta w rzeczywistości ............................................................................................................................ 50
Kup książkę
Poleć książkę
Rozkład Pareta jest fraktalny ............................................................................................................................... 54
Wskazówki praktyczne dotyczące zasady 80/20 ......................................................................................... 56
Zasoby .......................................................................................................................................................................... 58
3
TWORZENIE PRODUKTU O MINIMALNEJ NIEZBĘDNEJ FUNKCJONALNOŚCI ............................60
Problem ....................................................................................................................................................................... 61
Utrata motywacji ......................................................................................................................................................... 62
Rozproszenie uwagi .................................................................................................................................................... 62
Praca na przestrzeni czasu ....................................................................................................................................... 63
Brak reakcji ..................................................................................................................................................................... 63
Błędne założenia .......................................................................................................................................................... 64
Niepotrzebna złożoność ............................................................................................................................................ 64
Tworzenie produktu o minimalnej niezbędnej funkcjonalności ............................................................ 66
Cztery filary konieczne
podczas tworzenia produktu o minimalnej niezbędnej funkcjonalności ............................................ 69
Zalety produktu o minimalnej niezbędnej funkcjonalności ......................................................................... 71
Tryb tajny kontra produkt o minimalnej niezbędnej funkcjonalności ...................................................... 71
Podsumowanie ......................................................................................................................................................... 72
4
TWORZENIE CZYSTEGO I PROSTEGO KODU .......................................................................................73
Dlaczego należy tworzyć czysty kod? ............................................................................................................... 73
Tworzenie czystego kodu — zasady ................................................................................................................ 75
1. Spójrz z szerszej perspektywy ............................................................................................................................ 76
2. Stań na ramionach olbrzymów .......................................................................................................................... 77
3. Twórz kod dla ludzi, nie dla urządzeń ............................................................................................................. 78
4. Używaj odpowiednich nazw ................................................................................................................................ 79
5. Zachowaj spójność i zgodność ze standardami .......................................................................................... 81
6. Używaj komentarzy ................................................................................................................................................ 82
7. Unikaj niepotrzebnych komentarzy .................................................................................................................. 85
8. Zasada najmniejszego zaskoczenia ................................................................................................................. 86
9. Nie powtarzaj się ..................................................................................................................................................... 87
10. Zasada pojedynczego celu ................................................................................................................................ 89
11. Testuj kod ................................................................................................................................................................ 91
12. Małe jest piękne .................................................................................................................................................... 93
13. Prawo Demeter ..................................................................................................................................................... 94
14. Nie potrzebujesz tego ......................................................................................................................................... 98
15. Nie używaj zbyt wielu poziomów wcięć ....................................................................................................... 99
16. Używaj wskaźników .......................................................................................................................................... 101
17. Zasada harcerza i refaktoryzacja ................................................................................................................. 101
Podsumowanie ...................................................................................................................................................... 102
8
Spis tre
ś
ci
Kup książkę
Poleć książkę
5
PRZEDWCZESNA OPTYMALIZACJA JEST ŹRÓDŁEM WSZELKIEGO ZŁA .................................... 104
Sześć typów przedwczesnej optymalizacji ................................................................................................. 104
Optymalizacja funkcji kodu ................................................................................................................................... 105
Optymalizacja funkcjonalności ............................................................................................................................ 105
Optymalizacja planowania .................................................................................................................................... 106
Optymalizacja skalowalności ............................................................................................................................... 106
Optymalizacja projektu testów ............................................................................................................................ 106
Optymalizacja kodu w podejściu zorientowanym obiektowo .................................................................. 107
Przedwczesna optymalizacja — przykład ................................................................................................... 107
Sześć podpowiedzi dotyczących poprawy wydajności działania ........................................................ 111
Najpierw pomiar, później usprawnienia ........................................................................................................... 112
Pareto jest królem .................................................................................................................................................... 112
Korzyści z optymalizacji algorytmicznej ........................................................................................................... 114
Bufor ponad wszystko ............................................................................................................................................. 115
Mniej znaczy więcej ................................................................................................................................................. 117
Wiedzieć, kiedy skończyć ....................................................................................................................................... 118
Podsumowanie ...................................................................................................................................................... 118
6
PRZEPŁYW ................................................................................................................................................. 120
Czym jest przepływ? ............................................................................................................................................ 120
Jak osiągnąć przepływ? ...................................................................................................................................... 122
Jasno zdefiniowane cele ......................................................................................................................................... 122
Mechanizm informacji zwrotnych ...................................................................................................................... 122
Równowaga między wyzwaniami i umiejętnościami ................................................................................. 123
Wskazówki dla programistów .......................................................................................................................... 124
Podsumowanie ...................................................................................................................................................... 126
Zasoby ....................................................................................................................................................................... 126
7
„DOBRZE WYKONUJ JEDNO ZADANIE” I INNE ZASADY SYSTEMU UNIX ................................ 128
Powstanie systemu UNIX ................................................................................................................................... 129
Ogólne omówienie filozofii systemu UNIX .................................................................................................. 129
15 użytecznych zasad systemu UNIX ........................................................................................................... 131
1. Każda funkcja powinna dobrze wykonywać jedno zadanie .................................................................. 131
2. Proste jest lepsze niż złożone .......................................................................................................................... 134
3. Małe jest piękne ................................................................................................................................................... 135
4. Prototyp powinien być tworzony jak najwcześniej .................................................................................. 136
5. Ważna jest przenośność, a nie efektywność .............................................................................................. 137
6. Dane należy przechowywać w jednorodnych plikach tekstowych .................................................... 139
7. Należy wykorzystywać zalety dźwigni w oprogramowaniu ................................................................. 141
8. Należy unikać wewnętrznych interfejsów użytkownika ......................................................................... 142
9. Każdy program powinien mieć postać filtru .............................................................................................. 145
10. Gorsze jest lepsze .............................................................................................................................................. 147
Spis tre
ś
ci
9
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin