Używamy cookies, aby ułatwić korzystanie z Portalu. Możesz określić warunki przechowywania, dostępu do plików cookies w Twojej przeglądarce. Dowiedz się więcej.
strona główna Strona główna | Nowości | Promocje | Zapowiedzi Twoje konto | Zarejestruj | Schowek | Kontakt | Pomoc
mapa działów
Szukaj: szukanie zaawansowane
Koszyk
Książki \ Programowanie

Zrozumieć oprogramowanie. O prostocie kodu i doskonaleniu warsztatu programisty Język: 1

978-83-283-5112-7

Cena Brutto: 49.00

Cena netto: 46.67

Ilość:
Wersja: Drukowana
Autor Max Kanat-Alexander
Liczba_stron 256
Wydawnictwo Helion
Oprawa miękka
Data_Wydania 2019-04-10

Zrozumieć oprogramowanie. O prostocie kodu i doskonaleniu warsztatu programisty


W codziennej praktyce programiści często muszą sobie radzić z coraz większą złożonością tworzonego kodu. Mnożą się błędy, a ryzyko spektakularnej porażki rośnie. Jeśli ten scenariusz dotyczy także Ciebie, poziom złożoności Twoich projektów Cię przytłacza i czujesz, że nie dajesz rady, już teraz wdróż fundamentalne reguły, dzięki którym Twój kod odzyska prostotę i niezawodność! Jeśli każdy dzień z nowym projektem Cię rozczarowuje i przestałeś wierzyć w swoje możliwości, sięgnij po tę książkę!


Max Kanat-Alexander, odpowiedzialny za dział Code Health w Google, w tym świetnym zbiorze esejów dzieli się mnóstwem trafnych spostrzeżeń dotyczących zasad programowania, złożoności kodu, pracy zespołowej i filozofii projektowania aplikacji. W książce pokazano bardzo różnorodne zagadnienia, od pisania prostego kodu aż po jego debugowanie i pogłębioną analizę. Dowiesz się także, jaka postawa charakteryzuje naprawdę dobrego programistę. Świeżość spojrzenia i znakomity styl autora sprawią, że tę książkę przeczytasz z przyjemnością. Wiedza techniczna i poziom ekspertyzy przyniosły mu status guru kodu, a jego pomysły zainspirują Cię i odświeżą Twoje podejście do wyzwań związanych z byciem deweloperem. Odzyskaj radość ze swojej pracy i zapomnij o porażkach!

Ta książka skłoni Cię do przemyśleń:

  • dlaczego prostota i precyzja są najważniejsze w tworzeniu kodu
  • czym jest mistrzowskie programowanie
  • jak poradzić sobie ze złożonością oprogramowania
  • skąd się biorą porażki programistów i jak ich unikać
  • jak się ma prostota do bezpieczeństwa aplikacji
  • czym są błędy i jak należy rozumieć debugowanie


Przedmowa 11

CZĘŚĆ PIERWSZA. ZASADY DLA PROGRAMISTÓW

Rozdział 1. Zanim zaczniesz... 17

  • Będziesz to robić, więc rób to dobrze 18

Rozdział 2. Postawa inżyniera 21

Rozdział 3. Niezwykła tajemnica programisty gwiazdora 25

Rozdział 4. Projekt oprogramowania w dwóch sentencjach 29

CZĘŚĆ DRUGA. ZŁOŻONOŚĆ OPROGRAMOWANIA I JEJ PRZYCZYNY 31

Rozdział 5. Wskazówki dotyczące nadmiernej złożoności 33

Rozdział 6. Drogi do stworzenia złożoności. Zepsuj swoje API 35

Rozdział 7. Kiedy wsteczna kompatybilność nie jest warta swojej ceny? 39

Rozdział 8. Złożoność to więzienie 43

CZĘŚĆ TRZECIA. PROSTOTA I PROJEKTOWANIE OPROGRAMOWANIA 45

Rozdział 9. Projektuj od początku 47

  • Ruszając dobrą drogą 48

Rozdział 10. Dokładność przyszłych przewidywań 49

Rozdział 11. Prostota i precyzja 53

Rozdział 12. Dwa to za dużo 57

  • Refaktoryzacja 58

Rozdział 13. Rozsądny projekt oprogramowania 61

  • Zła droga 62
  • Analiza złej drogi 64
  • Odnosząc to do grupy 65
  • Dobra droga 66
  • Przestrzegaliśmy praw tworzenia oprogramowania 69

CZĘŚĆ CZWARTA. DEBUGOWANIE 71

Rozdział 14. Czym jest bug? 73

  • Sprzęt 74

Rozdział 15. Źródło błędów 75

  • Spotęgowana złożoność 76

Rozdział 16. Spraw, by to nie powróciło 79

  • Spraw, by to nigdy nie powróciło - przykład 80
  • W głąb króliczej nory 84

Rozdział 17. Fundamentalna filozofia debugowania 85

  • Wyjaśnij błąd 87
  • Patrz na system 88
  • Znajdź prawdziwą przyczynę 89
  • Cztery kroki 90

CZĘŚĆ PIĄTA. INŻYNIERIA W ZESPOŁACH 93

Rozdział 18. Efektywna produktywność inżynierii 95

  • Co powinieneś zrobić? 97
  • Rozwiązanie 98
  • Wiarygodność i rozwiązywanie problemów 100
  • Blocker 101
  • Zmierzając w stronę podstawowego problemu 103

Rozdział 19. Mierząc produktywność dewelopera 107

  • Definicja "produktywności" 108
  • Czemu nie "linie kodu"? 108
  • Określając prawidłowy wskaźnik 110
  • A co, jeśli Twoim produktem jest kod? 111
  • A co z ludźmi, którzy pracują nad produktywnością deweloperów? 111
  • Wniosek 113

Rozdział 20. Jak radzić sobie ze złożonością kodu w firmie programistycznej 115

  • Krok pierwszy - lista problemów 117
  • Krok drugi - spotkanie 117
  • Krok trzeci - raport błędów 118
  • Krok czwarty - priorytetyzacja 119
  • Krok piąty - zadanie 120
  • Krok szósty - planowanie 121

Rozdział 21. W refaktoryzacji chodzi o funkcjonalności 123

  • Być efektywnym 124
  • Ustalając granice refaktoryzacji 127
  • Refaktoryzacja nie marnuje czasu, ona go oszczędza 128
  • Refaktoryzacja aż do jasności 128
  • Podsumowanie 130

Rozdział 22. Życzliwość i kodowanie 131

  • Oprogramowanie to ludzie 131
  • Przykład uprzejmości 132
  • Bądź miły i twórz lepsze oprogramowanie 134

Rozdział 23. Społeczność open source, w uproszczeniu 135

  • Utrzymanie współtwórców 136
  • Usuwając bariery 142
  • Zainteresować ludzi 145
  • Miej superpopularny produkt 146
  • Miej produkt napisany w popularnym języku programowania 146
  • Podsumowanie 147

CZĘŚĆ SZÓSTA. ROZUMIEĆ OPROGRAMOWANIE 149

Rozdział 24. Czym jest komputer? 151

Rozdział 25. Komponenty oprogramowania: struktura, akcja i wynik 155

Rozdział 26. Oprogramowanie na nowo: (I)SAR wyjaśnione 157

  • Struktura 158
  • Akcja 159
  • Wyniki 159
  • ISAR w pojedynczej linii kodu 160
  • Podsumowując SAR 161

Rozdział 27. Oprogramowanie jako wiedza 163

Rozdział 28. Cel technologii 167

  • Czy są jakieś kontrprzykłady tej zasady? 168
  • Czy postęp technologiczny jest "dobry"? 168

Rozdział 29. Prywatność, w uproszczeniu 171

  • Prywatność przestrzeni 171
  • Prywatność informacji 173
  • Podsumowanie prywatności 177

Rozdział 30. Prostota i bezpieczeństwo 179

Rozdział 31. Test-Driven Development i cykl obserwacji 183

  • Przykłady ODA 184
  • Proces wytwarzania i produktywność 185
  • Pierwsza ODA 187

Rozdział 32. Filozofia testowania 189

  • Wartość testu 190
  • Asercje testu 190
  • Granice testu 191
  • Założenia testu 191
  • Projekt testu 192
  • Testowanie end to end 192
  • Testy integracyjne 194
  • Testy jednostkowe 195
  • Rzeczywistość 196
  • Podróbki 197
  • Determinizm 199
  • Prędkość 200
  • Pokrycie 202
  • Wniosek - ogólny cel testowania 202

CZĘŚĆ SIÓDMA. MNIEJ DAWAĆ CIAŁA 203

Rozdział 33. Tajemnica sukcesu: mniej dawać ciała 205

  • Dlaczego to zadziałało? 206

Rozdział 34. Jak odkryliśmy, co dawało ciała 209

Rozdział 35. Potęga "nie" 213

  • Rozpoznawanie złych pomysłów 215
  • Nie mając lepszego pomysłu 215
  • Wyjaśnienie, akceptacja i uprzejmość 217

Rozdział 36. Dlaczego programiści dają ciała 219

  • Czego się uczyć 222

Rozdział 37. Sekret szybkiego programowania: przestań myśleć 225

  • Zrozumienie 226
  • Rysowanie 227
  • Rozpoczynanie 228
  • Pomijanie kroku 229
  • Problemy fizyczne 229
  • To, co rozprasza 230
  • Zwątpienie w siebie 230
  • Fałszywe pomysły 231
  • Zastrzeżenie 231

Rozdział 38. Pycha dewelopera 233

Rozdział 39. Spójność nie oznacza jednolitości 235

Rozdział 40. Użytkownicy mają problemy, deweloperzy mają rozwiązania 237

  • Zaufanie i informacja 238
  • Problemy pochodzą od użytkowników 238

Rozdział 41. Natychmiastowa gratyfikacja = natychmiastowa porażka 241

  • Rozwiązania na dłuższą metę 242
  • Jak zniszczyć firmę tworzącą oprogramowanie 243

Rozdział 42. Sukces bierze się z wykonania, nie z innowacji 245

Rozdział 43. Oprogramowanie doskonałe 247

  • 1. Robi dokładnie to, co użytkownik mu polecił do wykonania 248
  • 2. Zachowuje się dokładnie tak, jak użytkownik oczekuje, że się zachowa 249
  • 3. Nie blokuje użytkownika przed komunikowaniem jego intencji 250
  • Doskonałość jest istotniejsza (ale nie w konflikcie) od prostoty kodu 252

Skorowidz 253

powrót
 
Produkty Podobne
Algorytmy uczenia maszynowego. Zaawansowane techniki implementacji
Python. Uczymy się programowania
Deep Learning. Receptury
Uczenie maszynowe z językiem JavaScript. Rozwiązywanie złożonych problemów
Kubernetes. Tworzenie niezawodnych systemów rozproszonych
Uczenie maszynowe w C#. Szybkie, sprytne i solidne aplikacje
Django 2. Praktyczne tworzenie aplikacji sieciowych. Wydanie II
Intro to Python for Computer Science and Data Science: Learning to Program with AI, Big Data and The Cloud
Zautomatyzuj swoją firmę z Pythonem. Praktyczne rozwiązania dla firmowej sieci
C++. Podróż po języku dla zaawansowanych. Wydanie II
Więcej produktów