E-book details

Czysty kod w PHP. Wskazówki ekspertów i najlepsze rozwiązania pozwalające pisać piękny, przystępny i łatwy w utrzymaniu kod PHP

Czysty kod w PHP. Wskazówki ekspertów i najlepsze rozwiązania pozwalające pisać piękny, przystępny i łatwy w utrzymaniu kod PHP

Carsten Windler, Alexandre Daubois

Ebook

PHP jest uważany za łatwy język programowania. Początkujący programiści dość szybko uruchamiają swoje pierwsze aplikacje w PHP. Nie sprzyja to jednak wyrabianiu nawyków przestrzegania dobrych praktyk. Najczęściej adepci PHP tworzą niechlujny kod, który jest trudny w utrzymaniu, a ewentualne modyfikacje czy rozbudowa aplikacji sprawiają ogromne problemy. Kolejną kwestią jest brak czytelności kodu, co praktycznie uniemożliwia pracę zespołową nad projektem.

To książka adresowana do początkujących programistów, którzy chcą zacząć pisać czysty kod w PHP. Znajdziesz w niej przystępnie wyjaśnione koncepcje, a także szereg wskazówek, opisów dobrych praktyk, wzorców projektowych i technik pracy. Treść została podzielona na dwie części. W pierwszej wyjaśniono paradygmat pisania czystego kodu i zasady, które stosuje się w tym zakresie w języku PHP. W drugiej części omówiono najlepsze narzędzia, wzorce i praktyki, pokazano też, jak należy skonfigurować swoje zintegrowane środowisko programistyczne (IDE) i jak pozyskiwać wskaźniki mówiące o kondycji kodu. Sporo miejsca poświęcono testom automatycznym, pisaniu dokumentacji i innym istotnym zagadnieniom.
W książce:

  • solidne podstawy pisania czystego kodu
  • wskaźniki określające jakość kodu
  • podstawy testów automatycznych
  • implementacja ciągłej integracji w aplikacjach PHP
  • wzorce projektowe, dobre praktyki i inne rozwiązania ułatwiające pracę

Zostań mistrzem czystego kodu!

O autorach

O recenzentach

Wstęp

CZĘŚĆ 1. Prezentacja czystego kodu

  • ROZDZIAŁ 1. Co to takiego czysty kod i dlaczego powinno Ci na nim zależeć?
    • O czym będzie ta książka?
    • Wyjaśnienie, czym jest czysty kod
    • Znaczenie czystego kodu dla zespołów
    • Znaczenie czystego kodu we własnych projektach
    • Podsumowanie
  • ROZDZIAŁ 2. Kto może decydować o tym, jakie są "dobre praktyki"?
    • Kto w ogóle decyduje o tych sprawach?
    • Najlepsze rozwiązania - skąd tak naprawdę się biorą?
      • Zasady wzorców projektowych
    • Świadomość sytuacji
    • Zachowaj konsekwencję, a szybciej uzyskasz rezultaty
      • O narzędziach do analizy kodu
      • O testowaniu i jego wielu formach
    • Podsumowanie
  • ROZDZIAŁ 3. Programuj, nie rób akrobacji
    • Czym jest kod?
      • Trochę historii
      • Przeznaczenie kodu
    • Pisz zrozumiale, a nie sprytnie
    • Uwagi na temat możliwości utrzymania kodu
      • Używanie operatorów binarnych i zapisu ósemkowego, szesnastkowego i dwójkowego
      • Nadawanie wartości zmiennym i stosowanie instrukcji goto
      • Przesadne komentowanie
      • Korzystanie z operatorów trójargumentowych
      • Stosowanie skrótów
      • Wprowadzanie w kodzie mikrooptymalizacji
      • Programowanie na nowo metod z biblioteki SPL
    • Podsumowanie
  • ROZDZIAŁ 4. Tu chodzi o coś więcej niż sam kod
    • PHP jako ekosystem
    • Wybór właściwych bibliotek
    • Parę słów o wersjonowaniu semantycznym
      • Czym jest wersjonowanie semantyczne?
      • Jak sobie radzić z wersjonowaniem semantycznym
    • Stabilność kontra trendy
    • Podsumowanie
  • ROZDZIAŁ 5. Optymalizacja czasu pracy i rozdzielenie odpowiedzialności
    • Konwencje nazewnicze i organizacyjne
      • Pliki klas i interfejsów
      • Pliki wykonywalne
      • Elementy zawartości i zasoby sieci WWW
      • Nazewnictwo klas, interfejsów i metod
      • Nazewnictwo folderów
    • Rozdzielenie odpowiedzialności
      • Rozsyłanie zdarzeń
    • Objaśnienie polimorfizmu - interfejsy i klasy abstrakcyjne
      • Interfejsy
      • Klasy abstrakcyjne
    • Podsumowanie
  • ROZDZIAŁ 6. PHP ewoluuje - deprecjacje i rewolucje
    • Nowe wersje PHP w porównaniu ze starymi
      • Ścisła kontrola typów
      • Raportowanie błędów
      • Atrybuty
    • Przełom w wersji 8
      • Konstrukcja match
      • Argumenty nazwane
      • Klasy i właściwości tylko do odczytu
      • Migrowanie zasobów do odpowiednich klas
      • Ochrona wrażliwych argumentów przed wyciekiem
    • Podsumowanie

CZĘŚĆ 2. Utrzymywanie jakości kodu

  • ROZDZIAŁ 7. Narzędzia jakości kodu
    • Wymagania techniczne
    • Sprawdzanie składni i stylu kodu
      • Linter wbudowany w PHP
      • PHP CS Fixer: szperacz kodu
    • Statyczna analiza kodu
      • phpcpd - wykrywacz kopiowania i wklejania kodu
      • PHPMD: wykrywacz bałaganu w PHP
      • PHPStan - analizator statyczny dla języka PHP
      • Psalm - maszyna lintująca do analizy statycznej dla PHP
    • Rozszerzenie środowisk IDE
      • PHP Inspections (EA Extended)
      • Intelephense
    • Podsumowanie
    • Materiały dodatkowe
  • ROZDZIAŁ 8. Wskaźniki jakości kodu
    • Wymagania techniczne
    • Prezentacja wskaźników jakości kodu
      • Aspekty jakości oprogramowania
      • Wskaźniki jakości kodu
    • Zbieranie wskaźników w PHP
      • phploc
      • PHP Depend
      • PhpMetrics
    • Zalety i wady korzystania ze wskaźników
      • Zalety
      • Wady
    • Podsumowanie
    • Materiały dodatkowe
  • ROZDZIAŁ 9. Organizacja narzędzi jakości PHP
    • Wymagania techniczne
    • Instalowanie narzędzi jakości kodu przy użyciu menedżera Composer
      • Instalowanie narzędzi jakości kodu z wykorzystaniem sekcji require-dev
      • Instalacja globalna
      • Skrypty menedżera Composer
    • Instalowanie narzędzi jakości kodu jako plików phar
      • Utrzymywanie plików phar w porządku
    • Zarządzanie plikami phar przy użyciu programu Phive
      • Dodawanie menedżera Phive do projektu
    • Podsumowanie
  • ROZDZIAŁ 10. Testowanie automatyczne
    • Wymagania techniczne
    • Dlaczego potrzebujesz testów automatycznych?
      • Łatwiejsza refaktoryzacja dzięki testom
    • Typy testów automatycznych
      • Testy jednostkowe
      • Testy integracyjne
      • Testy E2E
      • Piramida testowa w praktyce
    • Uwagi o pokryciu kodu
      • Zapoznanie z pokryciem kodu
      • Jak generować raporty o pokryciu kodu
      • Korzystanie z adnotacji @covers
      • Co testować?
    • Podsumowanie
    • Materiały dodatkowe
  • ROZDZIAŁ 11. Ciągła integracja
    • Wymagania techniczne
    • Dlaczego ciągła integracja jest potrzebna?
      • Koszty błędu
      • Jak zapobiegać błędom
      • Prezentacja ciągłej integracji
    • Potok budowy
      • Etap 1. - budowanie projektu
      • Etap 2. - analiza kodu
      • Etap 3. - testy
      • Etap 4. - wdrożenie
      • Integrowanie potoku z przepływem pracy
    • Budowanie potoku w narzędziu GitHub Actions
      • GitHub Actions w skrócie
      • Etap 1. - budowanie projektu
      • Etap 2. - analiza kodu
      • Etap 3. - testy
      • Etap 4. - wdrożenie
      • Integrowanie potoku z własnym przepływem pracy
    • Twój lokalny potok - haki narzędzia Git
      • Konfigurowanie haków narzędzia Git
      • Haki narzędzia Git w praktyce
      • Zaawansowane użycie
    • Dygresja - wprowadzanie ciągłej integracji do istniejącego oprogramowania
      • Krok po kroku
    • Spojrzenie na ciągłe dostarczanie
    • Podsumowanie
    • Materiały dodatkowe
  • ROZDZIAŁ 12. Praca w zespole
    • Wymagania techniczne
    • Standardy pisania kodu
      • Podążanie za istniejącymi standardami
    • Zasady pisania kodu
      • Przykładowe zasady pisania kodu
      • Ustalanie zasad
    • Przeglądy kodu
      • Dlaczego należy dokonywać przeglądów kodu
      • Co powinny obejmować przeglądy kodu?
      • Najlepsze rozwiązania dotyczące przeglądów kodu
      • Zapewnienie przeprowadzania przeglądów kodu
      • Definicja ukończenia
      • Wnioski na temat przeglądów kodu
    • Wzorce projektowe
      • Zapoznanie ze wzorcami projektowymi
      • Wzorce projektowe często spotykane w języku PHP
      • Antywzorce
    • Podsumowanie
    • Materiały dodatkowe
  • ROZDZIAŁ 13. Tworzenie efektywnej dokumentacji
    • Wymagania techniczne
    • Dlaczego dokumentacja ma znaczenie?
      • Dlaczego dokumentacja jest ważna?
      • Dokumentacja dla programistów
    • Tworzenie dokumentacji
      • Dokumenty tekstowe
      • Diagramy
      • Generatory dokumentacji
    • Dokumentacja w kodzie źródłowym
      • Adnotacje nie są kodem
      • Nieczytelny kod
      • Nieaktualne komentarze
      • Bezużyteczne komentarze
      • Błędne lub nieprzydatne sekcje DocBlock
      • Komentarze TODO
      • Kiedy komentowanie jest przydatne?
      • Testy jako dokumentacja
    • Podsumowanie
    • Materiały dodatkowe
  • Title: Czysty kod w PHP. Wskazówki ekspertów i najlepsze rozwiązania pozwalające pisać piękny, przystępny i łatwy w utrzymaniu kod PHP
  • Author: Carsten Windler, Alexandre Daubois
  • Original title: Clean Code in PHP: Expert tips and best practices to write beautiful, human-friendly, and maintainable PHP
  • Translation: Krzysztof Bąbol
  • ISBN: 978-83-8322-719-1, 9788383227191
  • Date of issue: 2023-08-29
  • Format: Ebook
  • Item ID: phpkod
  • Publisher: Helion