Kategorie
Ebooki
-
Biznes i ekonomia
- Bitcoin
- Bizneswoman
- Coaching
- Controlling
- E-biznes
- Ekonomia
- Finanse
- Giełda i inwestycje
- Kompetencje osobiste
- Komputer w biurze
- Komunikacja i negocjacje
- Mała firma
- Marketing
- Motywacja
- Multimedialne szkolenia
- Nieruchomości
- Perswazja i NLP
- Podatki
- Polityka społeczna
- Poradniki
- Prezentacje
- Przywództwo
- Public Relation
- Raporty, analizy
- Sekret
- Social Media
- Sprzedaż
- Start-up
- Twoja kariera
- Zarządzanie
- Zarządzanie projektami
- Zasoby ludzkie (HR)
-
Dla dzieci
-
Dla młodzieży
-
Edukacja
-
Encyklopedie, słowniki
-
E-prasa
- Architektura i wnętrza
- Biznes i Ekonomia
- Dom i ogród
- E-Biznes
- Finanse
- Finanse osobiste
- Firma
- Fotografia
- Informatyka
- Kadry i płace
- Komputery, Excel
- Księgowość
- Kultura i literatura
- Naukowe i akademickie
- Ochrona środowiska
- Opiniotwórcze
- Oświata
- Podatki
- Podróże
- Psychologia
- Religia
- Rolnictwo
- Rynek książki i prasy
- Transport i Spedycja
- Zdrowie i uroda
-
Historia
-
Informatyka
- Aplikacje biurowe
- Bazy danych
- Bioinformatyka
- Biznes IT
- CAD/CAM
- Digital Lifestyle
- DTP
- Elektronika
- Fotografia cyfrowa
- Grafika komputerowa
- Gry
- Hacking
- Hardware
- IT w ekonomii
- Pakiety naukowe
- Podręczniki szkolne
- Podstawy komputera
- Programowanie
- Programowanie mobilne
- Serwery internetowe
- Sieci komputerowe
- Start-up
- Systemy operacyjne
- Sztuczna inteligencja
- Technologia dla dzieci
- Webmasterstwo
-
Inne
-
Języki obce
-
Kultura i sztuka
-
Lektury szkolne
-
Literatura
- Antologie
- Ballada
- Biografie i autobiografie
- Dla dorosłych
- Dramat
- Dzienniki, pamiętniki, listy
- Epos, epopeja
- Esej
- Fantastyka i science-fiction
- Felietony
- Fikcja
- Humor, satyra
- Inne
- Klasyczna
- Kryminał
- Literatura faktu
- Literatura piękna
- Mity i legendy
- Nobliści
- Nowele
- Obyczajowa
- Okultyzm i magia
- Opowiadania
- Pamiętniki
- Podróże
- Poemat
- Poezja
- Polityka
- Popularnonaukowa
- Powieść
- Powieść historyczna
- Proza
- Przygodowa
- Publicystyka
- Reportaż
- Romans i literatura obyczajowa
- Sensacja
- Thriller, Horror
- Wywiady i wspomnienia
-
Nauki przyrodnicze
-
Nauki społeczne
-
Podręczniki szkolne
-
Popularnonaukowe i akademickie
- Archeologia
- Bibliotekoznawstwo
- Filmoznawstwo
- Filologia
- Filologia polska
- Filozofia
- Finanse i bankowość
- Geografia
- Gospodarka
- Handel. Gospodarka światowa
- Historia i archeologia
- Historia sztuki i architektury
- Kulturoznawstwo
- Lingwistyka
- Literaturoznawstwo
- Logistyka
- Matematyka
- Medycyna
- Nauki humanistyczne
- Pedagogika
- Pomoce naukowe
- Popularnonaukowa
- Pozostałe
- Psychologia
- Socjologia
- Teatrologia
- Teologia
- Teorie i nauki ekonomiczne
- Transport i spedycja
- Wychowanie fizyczne
- Zarządzanie i marketing
-
Poradniki
-
Poradniki do gier
-
Poradniki zawodowe i specjalistyczne
-
Prawo
- BHP
- Historia
- Kodeks drogowy. Prawo jazdy
- Nauki prawne
- Ochrona zdrowia
- Ogólne, kompendium wiedzy
- Podręczniki akademickie
- Pozostałe
- Prawo budowlane i lokalowe
- Prawo cywilne
- Prawo finansowe
- Prawo gospodarcze
- Prawo gospodarcze i handlowe
- Prawo karne
- Prawo karne. Przestępstwa karne. Kryminologia
- Prawo międzynarodowe
- Prawo międzynarodowe i zagraniczne
- Prawo ochrony zdrowia
- Prawo oświatowe
- Prawo podatkowe
- Prawo pracy i ubezpieczeń społecznych
- Prawo publiczne, konstytucyjne i administracyjne
- Prawo rodzinne i opiekuńcze
- Prawo rolne
- Prawo socjalne, prawo pracy
- Prawo Unii Europejskiej
- Przemysł
- Rolne i ochrona środowiska
- Słowniki i encyklopedie
- Zamówienia publiczne
- Zarządzanie
-
Przewodniki i podróże
- Afryka
- Albumy
- Ameryka Południowa
- Ameryka Środkowa i Północna
- Australia, Nowa Zelandia, Oceania
- Austria
- Azja
- Bałkany
- Bliski Wschód
- Bułgaria
- Chiny
- Chorwacja
- Czechy
- Dania
- Egipt
- Estonia
- Europa
- Francja
- Góry
- Grecja
- Hiszpania
- Holandia
- Islandia
- Litwa
- Łotwa
- Mapy, Plany miast, Atlasy
- Miniprzewodniki
- Niemcy
- Norwegia
- Podróże aktywne
- Polska
- Portugalia
- Pozostałe
- Rosja
- Rumunia
- Słowacja
- Słowenia
- Szwajcaria
- Szwecja
- Świat
- Turcja
- Ukraina
- Węgry
- Wielka Brytania
- Włochy
-
Psychologia
- Filozofie życiowe
- Kompetencje psychospołeczne
- Komunikacja międzyludzka
- Mindfulness
- Ogólne
- Perswazja i NLP
- Psychologia akademicka
- Psychologia duszy i umysłu
- Psychologia pracy
- Relacje i związki
- Rodzicielstwo i psychologia dziecka
- Rozwiązywanie problemów
- Rozwój intelektualny
- Sekret
- Seksualność
- Uwodzenie
- Wygląd i wizerunek
- Życiowe filozofie
-
Religia
-
Sport, fitness, diety
-
Technika i mechanika
Audiobooki
-
Biznes i ekonomia
- Bitcoin
- Bizneswoman
- Coaching
- Controlling
- E-biznes
- Ekonomia
- Finanse
- Giełda i inwestycje
- Kompetencje osobiste
- Komunikacja i negocjacje
- Mała firma
- Marketing
- Motywacja
- Nieruchomości
- Perswazja i NLP
- Podatki
- Poradniki
- Prezentacje
- Przywództwo
- Public Relation
- Sekret
- Social Media
- Sprzedaż
- Start-up
- Twoja kariera
- Zarządzanie
- Zarządzanie projektami
- Zasoby ludzkie (HR)
-
Dla dzieci
-
Dla młodzieży
-
Edukacja
-
Encyklopedie, słowniki
-
Historia
-
Informatyka
-
Inne
-
Języki obce
-
Kultura i sztuka
-
Lektury szkolne
-
Literatura
- Antologie
- Ballada
- Biografie i autobiografie
- Dla dorosłych
- Dramat
- Dzienniki, pamiętniki, listy
- Epos, epopeja
- Esej
- Fantastyka i science-fiction
- Felietony
- Fikcja
- Humor, satyra
- Inne
- Klasyczna
- Kryminał
- Literatura faktu
- Literatura piękna
- Mity i legendy
- Nobliści
- Nowele
- Obyczajowa
- Okultyzm i magia
- Opowiadania
- Pamiętniki
- Podróże
- Poezja
- Polityka
- Popularnonaukowa
- Powieść
- Powieść historyczna
- Proza
- Przygodowa
- Publicystyka
- Reportaż
- Romans i literatura obyczajowa
- Sensacja
- Thriller, Horror
- Wywiady i wspomnienia
-
Nauki przyrodnicze
-
Nauki społeczne
-
Popularnonaukowe i akademickie
-
Poradniki
-
Poradniki zawodowe i specjalistyczne
-
Prawo
-
Przewodniki i podróże
-
Psychologia
- Filozofie życiowe
- Komunikacja międzyludzka
- Mindfulness
- Ogólne
- Perswazja i NLP
- Psychologia akademicka
- Psychologia duszy i umysłu
- Psychologia pracy
- Relacje i związki
- Rodzicielstwo i psychologia dziecka
- Rozwiązywanie problemów
- Rozwój intelektualny
- Sekret
- Seksualność
- Uwodzenie
- Wygląd i wizerunek
- Życiowe filozofie
-
Religia
-
Sport, fitness, diety
-
Technika i mechanika
Kursy video
-
Bazy danych
-
Big Data
-
Biznes, ekonomia i marketing
-
Cyberbezpieczeństwo
-
Data Science
-
DevOps
-
Dla dzieci
-
Elektronika
-
Grafika/Wideo/CAX
-
Gry
-
Microsoft Office
-
Narzędzia programistyczne
-
Programowanie
-
Rozwój osobisty
-
Sieci komputerowe
-
Systemy operacyjne
-
Testowanie oprogramowania
-
Urządzenia mobilne
-
UX/UI
-
Web development
-
Zarządzanie
Podcasty
- Ebooki
- Programowanie
- Inne - Programowanie
- Czysty kod. Receptury. Przepisy na poprawienie struktury i jakości Twojego kodu
Szczegóły ebooka
Czysty kod. Receptury. Przepisy na poprawienie struktury i jakości Twojego kodu
Funkcjonalność oprogramowania nieustannie się poszerza, a nowoczesny kod jest coraz częściej generowany przez narzędzia oparte na sztucznej inteligencji. W tych warunkach czystość kodu staje się niezwykle ważna. Niezależnie od tego, czy pracujesz na oprogramowaniu zastrzeżonym, czy otwartym, czysty kod jest najlepszym sposobem na to, aby zachować świeżość projektów i ich gotowość do rozwoju.
Oto książka wsparta głęboką teorią i wieloma praktycznymi przykładami pisania czystego kodu!
Daniel Moka, inżynier oprogramowania, Moka IT
Receptury zawarte w tym zbiorze pozwalają nie tylko zrozumieć koncepcję czystego kodu, ale również poznać zasady identyfikacji kodu wymagającego poprawy i oceny wpływu refaktoryzacji na kod produkcyjny. Poza recepturami opisano tu potrzebne narzędzia i przedstawiono wskazówki dotyczące technik zmieniania kodu ― wraz z licznymi przykładami. Omówiono ponadto różne praktyki, heurystyki i reguły projektowania oprogramowania w sposób zapewniający jego niezawodność, łatwość testowania, bezpieczeństwo i skalowalność. Docenisz, że przykłady kodu zostały przedstawione w kilku nowoczesnych językach programowania. Dzięki temu receptury zawarte w tym przewodniku są przydatne niezależnie od używanego języka.
W książce:
- znaczenie czystego kodu i identyfikacja możliwości jego poprawy
- techniki refaktoryzacji
- zestaw przykładów w kilku współczesnych językach programowania
- brzydkie zapachy kodu, ich konsekwencje i potencjalne rozwiązania
- techniki pisania prostego, czytelnego kodu
W tej książce doskonale uchwycono głęboką wiedzę o tworzeniu oprogramowania!
Alex Bunardzic, deweloper i instruktor
Słowo wstępne
Przedmowa
1. Czysty kod
- 1.1. Czym jest brzydki zapach kodu?
- 1.2. Co to jest refaktoryzacja?
- 1.3. Co to jest receptura?
- 1.4. Po co czysty kod?
- 1.5. Czytelność, wydajność czy jedno i drugie
- 1.6. Typy oprogramowania
- 1.7. Kod generowany maszynowo
- 1.8. Kwestie nazewnicze
- 1.9. Wzorce projektowe
- 1.10. Paradygmaty języków oprogramowania
- 1.11. Obiekty kontra klasy
- 1.12. Łatwość wprowadzania zmian
2. Aksjomaty
- 2.0. Wprowadzenie
- 2.1. Dlaczego model?
- 2.2. Dlaczego abstrakcyjne?
- 2.3. Dlaczego programowalne?
- 2.4. Dlaczego częściowe?
- 2.5. Dlaczego wyjaśnienie?
- 2.6. Dlaczego rzeczywistości?
- 2.7. Wyprowadzanie reguł
- 2.8. Jedna i jedyna zasada projektowania oprogramowania
3. Modele anemiczne
- 3.0. Wprowadzenie
- 3.1. Przekształcanie obiektów anemicznych we wzbogacone
- 3.2. Identyfikowanie istoty obiektów
- 3.3. Usuwanie metod ustawiających
- 3.4. Usuwanie generatorów anemicznego kodu
- 3.5. Usuwanie właściwości automatycznych
- 3.6. Usuwanie obiektów DTO
- 3.7. Uzupełnianie pustych konstruktorów
- 3.8. Usuwanie metod pobierających
- 3.9. Zapobieganie orgiom obiektów
- 3.10. Usuwanie właściwości dynamicznych
4. Obsesja na punkcie prymitywów
- 4.0. Wprowadzenie
- 4.1. Tworzenie małych obiektów
- 4.2. Reifikacja danych prymitywnych
- 4.3. Reifikacja tablic asocjacyjnych
- 4.4. Usuwanie nadużyć łańcuchów
- 4.5. Reifikacja znaczników czasowych
- 4.6. Reifikacja podzbiorów jako obiektów
- 4.7. Reifikacja walidacji łańcuchów
- 4.8. Usuwanie niepotrzebnych właściwości
- 4.9. Tworzenie interwałów dat
5. Mutowalność
- 5.0. Wprowadzenie
- 5.1. Zmienianie deklaracji var na const
- 5.2. Deklarowanie zmiennych jako zmiennych
- 5.3. Zabranianie zmian istoty
- 5.4. Unikanie mutowalnych tablic stałych
- 5.5. Usuwanie leniwej inicjalizacji
- 5.6. Zamrażanie mutowalnych stałych
- 5.7. Usuwanie skutków ubocznych
- 5.8. Zapobieganie windowaniu
6. Kod deklaratywny
- 6.0. Wprowadzenie
- 6.1. Zawężanie wielokrotnie wykorzystywanych zmiennych
- 6.2. Usuwanie pustych wierszy
- 6.3. Usuwanie wersjonowanych metod
- 6.4. Usuwanie podwójnych zaprzeczeń
- 6.5. Zmienianie źle przypisanych obowiązków
- 6.6. Zastępowanie jawnych iteracji
- 6.7. Dokumentowanie decyzji projektowych
- 6.8. Zastępowanie magicznych liczb stałymi
- 6.9. Oddzielanie "co" od "jak"
- 6.10. Dokumentowanie wyrażeń regularnych
- 6.11. Przekształcanie warunków Yody
- 6.12. Usuwanie dowcipnych metod
- 6.13. Unikanie piekła wywołań zwrotnych
- 6.14. Generowanie dobrych komunikatów o błędach
- 6.15. Unikanie magicznych poprawek
7. Nazewnictwo
- 7.0. Wprowadzenie
- 7.1. Rozwijanie skrótów
- 7.2. Zmienianie nazw oraz dzielenie klas pomocniczych i narzędziowych
- 7.3. Zmienianie nazw MoichObiektów
- 7.4. Zmienianie nazw zmiennych wynikowych
- 7.5. Zmienianie nazw pochodzących od typów
- 7.6. Zmienianie długich nazw
- 7.7. Zmienianie abstrakcyjnych nazw
- 7.8. Poprawianie pomyłek w pisowni
- 7.9. Usuwanie nazw klas z atrybutów
- 7.10. Usuwanie pierwszej litery z nazw klas i interfejsów
- 7.11. Zmienianie nazw funkcji zawierających słowa Basic/Do
- 7.12. Przekształcanie nazw klas w liczbie mnogiej w liczbę pojedynczą
- 7.13. Usuwanie z nazw słowa "Collection"
- 7.14. Usuwanie z nazw klas przedrostka/przyrostka "Impl"
- 7.15. Zmienianie nazw argumentów według roli
- 7.16. Usuwanie redundantnych nazw parametrów
- 7.17. Usuwanie z nazw bezcelowego kontekstu
- 7.18. Unikanie nazywania obiektów "danymi"
8. Komentarze
- 8.0. Wprowadzenie
- 8.1. Usuwanie "wykomentowanego" kodu
- 8.2. Usuwanie przestarzałych komentarzy
- 8.3. Usuwanie komentarzy logicznych
- 8.4. Usuwanie komentarzy do metod pobierających
- 8.5. Przekształcanie komentarzy w nazwy funkcji
- 8.6. Usuwanie komentarzy wewnątrz metod
- 8.7. Zastępowanie komentarzy testami
9. Standardy
- 9.0. Wprowadzenie
- 9.1. Przestrzeganie standardów kodu
- 9.2. Standaryzowanie wcięć
- 9.3. Unifikowanie wielkości liter
- 9.4. Pisanie kodu po angielsku
- 9.5. Unifikowanie kolejności parametrów
- 9.6. Naprawianie wybitych szyb
10. Złożoność
- 10.0. Wprowadzenie
- 10.1. Usuwanie powtarzalnego kodu
- 10.2. Usuwanie ustawień/konfiguracji i przełączników funkcji
- 10.3. Zmienianie stanu jako właściwości
- 10.4. Usuwanie z kodu pomysłowości
- 10.5. Łączenie wielu obietnic
- 10.6. Przerywanie długich łańcuchów współpracy
- 10.7. Wyodrębnianie metody do obiektu
- 10.8. Dbanie o konstruktory tablic
- 10.9. Usuwanie poltergeistów
11. Rozdęcie
- 11.0. Wprowadzenie
- 11.1. Dzielenie zbyt długich metod
- 11.2. Ograniczanie nadmiaru argumentów
- 11.3. Ograniczanie nadmiaru zmiennych
- 11.4. Usuwanie nadmiaru nawiasów
- 11.5. Usuwanie nadmiaru metod
- 11.6. Dzielenie zbyt licznych atrybutów
- 11.7. Ograniczanie list importu
- 11.8. Dzielenie funkcji wielozadaniowych
- 11.9. Dzielenie grubych interfejsów
12. YAGNI
- 12.0. Wprowadzenie
- 12.1. Usuwanie martwego kodu
- 12.2. Używanie kodu zamiast diagramów
- 12.3. Refaktoryzowanie klas z jedną podklasą
- 12.4. Usuwanie interfejsów jednorazowych
- 12.5. Usuwanie nadużyć wzorców projektowych
- 12.6. Zastępowanie kolekcji biznesowych
13. Szybkie reagowanie na błędy
- 13.0. Wprowadzenie
- 13.1. Refaktoryzowanie ponownego przypisywania zmiennych
- 13.2. Egzekwowanie warunków wstępnych
- 13.3. Używanie bardziej rygorystycznych parametrów
- 13.4. Usuwanie wartości domyślnej z instrukcji switch
- 13.5. Unikanie modyfikowania kolekcji podczas ich przetwarzania
- 13.6. Redefiniowanie haszowania i równości
- 13.7. Refaktoryzacja bez zmian funkcjonalnych
14. Instrukcje if
- 14.0. Wprowadzenie
- 14.1. Zastępowanie akcydentalnych instrukcji if polimorfizmem
- 14.2. Zmienianie nazw zmiennych sygnalizujących zdarzenia
- 14.3. Reifikacja zmiennych logicznych
- 14.4. Zastępowanie instrukcji switch/case/elseif
- 14.5. Zastępowanie zakodowanych "na sztywno" warunków if kolekcjami
- 14.6. Zmienianie warunków logicznych na zwarciowe
- 14.7. Dodawanie niejawnego warunku else
- 14.8. Poprawianie warunkowego kodu strzałkowego
- 14.9. Unikanie hakerskich zwarć
- 14.10. Poprawianie zagnieżdżonego kodu strzałkowego
- 14.11. Zapobieganie zwracaniu wartości logicznych podczas sprawdzania warunków
- 14.12. Zmienianie porównań z wartościami logicznymi
- 14.13. Wyodrębnianie kodu z długich warunków trójargumentowych
- 14.14. Przekształcanie funkcji niepolimorficznych w polimorficzne
- 14.15. Zmienianie sprawdzania równości
- 14.16. Reifikacja zakodowanych "na sztywno" warunków biznesowych
- 14.17. Usuwanie nieuzasadnionych wartości logicznych
- 14.18. Poprawianie zagnieżdżonych warunków trójargumentowych
15. Null
- 15.0. Wprowadzenie
- 15.1. Tworzenie obiektów null
- 15.2. Usuwanie opcjonalnego dostępu łańcuchowego
- 15.3. Przekształcanie opcjonalnych atrybutów w kolekcję
- 15.4. Używanie prawdziwych obiektów do reprezentowania wartości null
- 15.5. Reprezentowanie nieznanych lokacji bez użycia null
16. Przedwczesna optymalizacja
- 16.0. Wprowadzenie
- 16.1. Unikanie identyfikatorów w obiektach
- 16.2. Usuwanie przedwczesnej optymalizacji
- 16.3. Usuwanie przedwczesnej optymalizacji w postaci operacji bitowych
- 16.4. Ograniczanie nadmiernej generalizacji
- 16.5. Zmienianie optymalizacji strukturalnych
- 16.6. Usuwanie zakotwiczonych łodzi
- 16.7. Wyodrębnianie pamięci podręcznych z obiektów dziedzinowych
- 16.8. Usuwanie zdarzeń opartych na implementacji
- 16.9. Usuwanie kwerend z konstruktorów
- 16.10. Usuwanie kodu z destruktorów
17. Sprzężenie
- 17.0. Wprowadzenie
- 17.1. Ujawnianie ukrytych założeń
- 17.2. Zastępowanie singletonów
- 17.3. Rozbijanie boskich obiektów
- 17.4. Rozdzielanie rozbieżnych zmian
- 17.5. Przekształcanie specjalnych flag typu 9999 w normalne wartości
- 17.6. Usuwanie chirurgii strzelbowej
- 17.7. Usuwanie argumentów opcjonalnych
- 17.8. Zapobieganie zawiści funkcjonalnej
- 17.9. Usuwanie pośrednika
- 17.10. Przenoszenie argumentów domyślnych na koniec
- 17.11. Unikanie efektu domina
- 17.12. Usuwanie akcydentalnych metod z obiektów biznesowych
- 17.13. Usuwanie kodu biznesowego z interfejsu użytkownika
- 17.14. Zmienianie sprzężenia z klasami
- 17.15. Refaktoryzacja zbitek danych
- 17.16. Przerywanie niestosownej bliskości
- 17.17. Przekształcanie obiektów wymiennych
18. Globalność
- 18.0. Wprowadzenie
- 18.1. Reifikacja funkcji globalnych
- 18.2. Reifikacja funkcji statycznych
- 18.3. Zastępowanie instrukcji goto ustrukturyzowanym kodem
- 18.4. Usuwanie klas globalnych
- 18.5. Zmienianie globalnego tworzenia dat
19. Hierarchie
- 19.0. Wprowadzenie
- 19.1. Eliminowanie głębokiego dziedziczenia
- 19.2. Rozbijanie hierarchii jojo
- 19.3. Eliminowanie subklasyfikacji stosowanej w celu wielokrotnego wykorzystywania kodu
- 19.4. Zastępowanie relacji "jest" działaniem
- 19.5. Usuwanie zagnieżdżonych klas
- 19.6. Zmienianie nazw izolowanych klas
- 19.7. Oznaczanie klas konkretnych jako finalnych
- 19.8. Jawne definiowanie dziedziczenia klas
- 19.9. Migrowanie pustych klas
- 19.10. Opóźnianie przedwczesnej optymalizacji
- 19.11. Usuwanie atrybutów chronionych
- 19.12. Uzupełnianie pustych implementacji
20. Testowanie
- 20.0. Wprowadzenie
- 20.1. Testowanie metod prywatnych
- 20.2. Dodawanie opisów do asercji
- 20.3. Migrowanie assertTrue do konkretnych asercji
- 20.4. Zastępowanie atrap prawdziwymi obiektami
- 20.5. Dopracowywanie ogólnikowych asercji
- 20.6. Usuwanie niestabilnych testów
- 20.7. Zmienianie asercji z liczbami zmiennoprzecinkowymi
- 20.8. Zmienianie danych testowych w dane realistyczne
- 20.9. Eliminowanie testów naruszających enkapsulację
- 20.10. Usuwanie nieistotnych informacji testowych
- 20.11. Dodawanie pokrycia testowego do każdego wniosku o scalenie
- 20.12. Poprawianie testów zależnych od dat
- 20.13. Nauka nowego języka programowania
21. Dług techniczny
- 21.0. Wprowadzenie
- 21.1. Usuwanie kodu zależnego od środowiska produkcyjnego
- 21.2. Usuwanie list znanych defektów
- 21.3. Włączanie ostrzeżeń/ rygorystycznej kontroli błędów
- 21.4. Unikanie i usuwanie rzeczy "do zrobienia" i "do poprawki"
22. Wyjątki
- 22.0. Wprowadzenie
- 22.1. Usuwanie pustych bloków wyjątków
- 22.2. Usuwanie niepotrzebnych wyjątków
- 22.3. Poprawianie wyjątków obsługujących oczekiwane przypadki
- 22.4. Poprawianie zagnieżdżonych instrukcji try/catch
- 22.5. Zastępowanie kodów zwrotnych wyjątkami
- 22.6. Poprawianie kodu strzałkowego do obsługi wyjątków
- 22.7. Ukrywanie niskopoziomowych błędów przed użytkownikami końcowymi
- 22.8. Zawężanie bloków try w wyjątkach
23. Metaprogramowanie
- 23.0. Wprowadzenie
- 23.1. Usuwanie użycia metaprogramowania
- 23.2. Reifikacja funkcji anonimowych
- 23.3. Usuwanie preprocesorów
- 23.4. Usuwanie metod dynamicznych
24. Typy
- 24.0. Wprowadzenie
- 24.1. Usuwanie sprawdzania typów
- 24.2. Radzenie sobie z wartościami pseudoprawdziwymi
- 24.3. Zmienianie liczb zmiennoprzecinkowych w dziesiętne
25. Bezpieczeństwo
- 25.0. Wprowadzenie
- 25.1. Sanityzacja danych wejściowych
- 25.2. Zmienianie sekwencyjnych identyfikatorów
- 25.3. Usuwanie zależności od pakietów
- 25.4. Zastępowanie szkodliwych wyrażeń regularnych
- 25.5. Ochrona deserializacji obiektu
Słownik terminów
- Tytuł: Czysty kod. Receptury. Przepisy na poprawienie struktury i jakości Twojego kodu
- Autor: Maximiliano Contieri
- Tytuł oryginału: Clean Code Cookbook: Recipes to Improve the Design and Quality of Your Code
- Tłumaczenie: Grzegorz Werner
- ISBN: 978-83-289-1422-3, 9788328914223
- Data wydania: 2024-09-24
- Format: Ebook
- Identyfikator pozycji: czykor
- Wydawca: Helion