pragmatyczny programista. od czeladnika do mistrza. wydanie ii helion.pdf

(4561 KB) Pobierz
Tytuł oryginału: The Pragmatic Programmer: Your Journey To Mastery, 20th Anniversary Edition
(2nd Edition)
Tłumaczenie: Radosław Meryk
na podstawie Pragmatyczny programista. Od czeladnika do mistrza
w przekładzie Mikołaja Szczepaniaka
ISBN: 978-83-283-7139-2
Authorized translation from the English language edition, entitled THE PRAGMATIC
PROGRAMMER: YOUR JOURNEY TO MASTERY, 20TH ANNIVERSARY EDITION, 2nd
Edition by DAVID THOMAS; ANDREW HUNT, published by Pearson Education, Inc, publishing
as Addison-Wesley Professional, Copyright © 2020 Pearson Education, Inc.
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 Pearson Education, Inc.
Polish language edition published by Helion SA, Copyright © 2021.
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.
Autorzy 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. Autorzy 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)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/pragp2
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
S
ŁOWO
WSTĘPNE
P
RZEDMOWA DO
Z
DRUGIEGO WYDANIA
9
13
19
25
PRZEDMOWY DO PIERWSZEGO WYDANIA
1. F
ILOZOFIA PRAGMATYCZNA
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
To jest Twoje
życie
.......................................................................... 26
Kot zjadł mój kod
źródłowy
............................................................. 27
Entropia oprogramowania .............................................................. 30
Zupa z kamieni i gotowane
żaby
..................................................... 33
Odpowiednio dobre oprogramowanie .............................................. 36
Portfolio wiedzy .............................................................................. 39
Komunikuj się!............................................................................... 45
2. P
OSTAWA PRAGMATYCZNA
53
Istota dobrego projektu .................................................................. 54
DRY — przekleństwo powielania..................................................... 56
Ortogonalność ................................................................................ 65
Odwracalność ................................................................................ 74
Pociski smugowe ............................................................................ 78
Prototypy i karteczki samoprzylepne............................................... 84
Języki dziedzinowe ......................................................................... 88
Szacowanie .................................................................................... 94
3. P
ODSTAWOWE NARZĘDZIA
101
Potęga zwykłego tekstu................................................................. 103
Powłoki ........................................................................................ 107
Efektywna edycja ......................................................................... 109
Kontrola kodu
źródłowego
............................................................ 112
Debugowanie ............................................................................... 117
Operowanie na tekście ................................................................. 127
Dzienniki inżynierskie .................................................................. 130
Kup książkę
Poleć książkę
8
Spis treści
4. P
RAGMATYCZNA PARANOJA
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
133
Projektowanie kontraktowe........................................................... 134
Martwe programy nie kłamią ........................................................ 143
Programowanie asertywne ............................................................ 145
Jak zrównoważyć zasoby .............................................................. 149
Nie prześcigaj swoich
świateł
........................................................ 156
5. Z
EGNIJ LUB ZŁAM
161
Eliminowanie sprzężeń ................................................................. 162
Żonglerka
realnym
światem..........................................................
170
Programowanie transformacyjne................................................... 180
Podatek od dziedziczenia .............................................................. 191
Konfiguracja................................................................................. 199
6. W
SPÓŁBIEŻNOŚĆ
203
Wszystko jest współbieżne ............................................................ 203
Eliminowanie związków czasowych............................................... 204
Współdzielony stan jest zły ........................................................... 209
Aktorzy i procesy.......................................................................... 216
Czarne tablice .............................................................................. 222
7. K
IEDY KODUJEMY
227
Słuchaj swojego jaszczurczego mózgu........................................... 228
Programowanie przez koincydencję............................................... 233
Szybkość algorytmu ..................................................................... 239
Refaktoryzacja.............................................................................. 245
Kod
łatwy
do testowania............................................................... 250
Testowanie na podstawie właściwości ........................................... 261
Pozostań w bezpiecznym miejscu.................................................. 267
Nazewnictwo ................................................................................ 275
8. P
RZED PROJEKTEM
281
Kopalnia wymagań ....................................................................... 282
Rozwiązywanie niemożliwych do rozwiązania
łamigłówek
.............. 290
Praca zespołowa ........................................................................... 294
Istota zwinności ........................................................................... 297
9. P
RAGMATYCZNE PROJEKTY
303
Pragmatyczne zespoły................................................................... 304
Nie próbuj przecinać kokosów ...................................................... 310
Zestaw startowy pragmatyka ........................................................ 314
Wpraw w zachwyt użytkowników .................................................. 322
Duma i uprzedzenie ..................................................................... 324
P
OSŁOWIE
B
IBLIOGRAFIA
M
OŻLIWE ODPOWIEDZI DO
ĆWICZEŃ
326
329
331
Kup książkę
Poleć książkę
Rozdział 1.
Filozofia pragmatyczna
Ta książka jest o Tobie.
Nie popełnij błędu. Tu chodzi o Twoją karierę, a co ważniejsze,
to jest Twoje
życie.
Należy do Ciebie. Czytasz tę książkę, bo wiesz,
że
możesz stać się lepszym
programistą, a także pomagać innym, aby również stali się lepszymi. Możesz stać
się pragmatycznym programistą.
Co wyróżnia pragmatycznych programistów? Czujemy,
że
pragmatyzm to pos-
tawa, styl, filozofia postrzegania i rozwiązywania problemów. Pragmatyczni pro-
gramiści wykraczają myślami poza bieżące, aktualnie rozwiązywane problemy,
stale próbując sytuować te problemy w szerszym kontekście, aby dysponować
pełnym obrazem analizowanej rzeczywistości. Czy bez
świadomości
tego szer-
szego kontekstu w ogóle możemy być pragmatyczni? Jak w takiej sytuacji mieli-
byśmy wypracowywać inteligentne kompromisy i podejmować
świadome
decyzje?
Innym kluczem do sukcesu pragmatycznych programistów jest gotowość do bra-
nia odpowiedzialności za wszystko, co robią — to zagadnienie zostanie omó-
wione w podrozdziale „Kot zjadł mój kod
źródłowy”.
Odpowiedzialność oznacza,
że
pragmatyczni programiści nie siedzą bezczynnie, obserwując, jak ich projekty
zmierzają ku nieuchronnej klęsce. W podrozdziale „Entropia oprogramowania”
zostaną omówione sposoby dbania o nieskazitelność projektów.
Większość ludzi z trudem akceptuje zmiany — niechęć do zmian w pewnych
przypadkach jest w pełni uzasadniona, ale nierzadko wynika ze zwykłego ma-
razmu. W podrozdziale „Zupa z kamieni i gotowane
żaby”
przeanalizujemy stra-
tegię inspirowania zmian i przedstawimy (dla równowagi) pouczającą opowieść
o płazie, który ignorował niebezpieczeństwa związane ze stopniowymi zmianami.
Jedną z korzyści wynikających ze znajomości i rozumienia kontekstu, w któ-
rym pracujemy, jest
łatwiejsza
ocena tego, na ile dobre musi być tworzone przez
nas oprogramowanie. W pewnych przypadkach jedynym akceptowanym stanem
jest jakość bliska perfekcji, ale często możliwe są daleko idące kompromisy.
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin