Rzemiosło w czystej formie. Standardy i etyka rzetelnych programistów - ebook
Rzemiosło w czystej formie. Standardy i etyka rzetelnych programistów - ebook
Rzemieślnik to osoba, która jest starannie wyszkolona, doskonale zna się na swoim fachu i czuje dumę z własnej pracy. Zawsze zachowuje właściwą dla zawodu godność i profesjonalizm. Społeczeństwo okazuje zaufanie rzemieślnikom, wierząc, że należycie dbają o wysoką jakość i postępują etycznie. Pisanie oprogramowania to też rzemiosło. I programiści, podobnie jak inni rzemieślnicy, również chcą czuć dumę i satysfakcję ze swojej pracy. Problem w tym, że świat zdaje się dziś wymagać od nich przede wszystkim produktywności, a nie wysokiej jakości kodu.
W tej książce znajdziesz zasady definiujące rzemiosło, jakim jest wytwarzanie oprogramowania. Zebrano w niej procedury, standardy i normy etyczne, dzięki którym tworzony kod będzie niezawodny i efektywny, a całe oprogramowanie stanie się powodem do dumy. Zawarto tutaj szereg pragmatycznych wskazówek dotyczących procedur programistycznego rzemiosła. Omówiono też standardy, co powinno ułatwić zrozumienie oczekiwań wobec programistów. Ważnym zagadnieniem jest etyczny kontekst zawodu programisty, czyli fundamentalne zobowiązania, które programiści powinni podjąć względem swojego otoczenia i siebie samych. Istotą rzemiosła programistycznego bowiem jest tworzenie kodu, który budzi zaufanie użytkowników i całych społeczności.
Najciekawsze zagadnienia:
- czym jest prawdziwe rzemiosło programistyczne
- pięć podstaw: programowanie sterowane testami, refaktoryzacja, prostota projektu, programowanie zespołowe i testy akceptacyjne
- produktywność, jakość i odwaga w zespołach programistów
- czym w rzeczywistości jest uczciwość i praca zespołowa
- dziesięć zobowiązań profesjonalnego programisty
Szczyć się swoją pracą i utrzymuj wysoki standard!
Spis treści
Przedmowa
Wstęp
Podziękowania
O autorze
Rozdział 1. Rzemiosło
CZĘŚĆ I. Procedury
- Programowanie ekstremalne
- Krąg rozwoju
- Programowanie sterowane testami
- Refaktoryzacja
- Prostota projektu
- Programowanie zespołowe
- Testy akceptacyjne
Rozdział 2. Programowanie sterowane testami
- Ogólny zarys
- Oprogramowanie
- Trzy prawa TDD
- Czwarte prawo
- Podstawy
- Proste przykłady
- Stos
- Czynniki pierwsze
- Gra w kręgle
- Zakończenie
Rozdział 3. Zaawansowane techniki TDD
- Sortowanie - podejście 1.
- Sortowanie - podejście 2.
- Utknięcie
- Przygotuj, działaj, sprawdź
- Wprowadzenie do BDD
- Automaty skończone
- Znowu o BDD
- Dublery testowe
- Atrapa
- Zaślepka
- Szpieg
- Imitacja
- Podróbka
- Zasada niepewności metodyki TDD
- Londyn kontra Chicago
- Problem pewności
- Londyn
- Chicago
- Synteza
- Architektura
- Zakończenie
Rozdział 4. Projektowanie testów
- Testowanie baz danych
- Testowanie interfejsów GUI
- Dane wprowadzane z interfejsu GUI
- Wzorce testowe
- Podklasa specyficzna dla testów
- Samopodstawienie
- Skromny obiekt
- Projektowanie testów
- Problem kruchych testów
- Zgodność jeden do jednego
- Zrywanie zgodności
- Wypożyczalnia filmów
- Szczegółowość kontra ogólność
- Domniemane pierwszeństwo przekształceń (Transformation Priority Premise)
- {} -> Nil
- Nil -> stała
- Stała -> zmienna
- Bezwarunkowość -> wybór
- Wartość -> lista
- Instrukcja -> rekurencja
- Wybór -> iteracja
- Wartość -> zmieniona wartość
- Przykład: Fibonacci
- Domniemane pierwszeństwo przekształceń
- Zakończenie
Rozdział 5. Refaktoryzacja
- Czym jest refaktoryzacja?
- Podstawowy zestaw narzędziowy
- Zmiana nazwy
- Wyodrębnianie metody
- Wyodrębnianie zmiennej
- Wyodrębnianie pola
- Kostka Rubika
- Procedury
- Testy
- Szybkie testy
- Zerwij z głęboką zgodnością jeden do jednego
- Stale refaktoryzuj
- Refaktoryzuj bezwzględnie
- Niech wyniki testów będą stale pozytywne!
- Pozostaw sobie wyjście
- Zakończenie
Rozdział 6. Prostota projektu
- YAGNI
- Kod pokryty testami
- Pokrycie
- Cel asymptotyczny
- Projekt?
- To jednak nie wszystko
- Zwiększenie wyrazistości
- Bazowa abstrakcja
- Testy: druga część problemu
- Ograniczenie duplikacji
- Przypadkowa duplikacja
- Zmniejszanie
- Prosta konstrukcja
Rozdział 7. Programowanie zespołowe
Rozdział 8. Testy akceptacyjne
- Procedura
- Ciągła budowa
CZĘŚĆ II. Standardy
- Twój nowy dyrektor techniczny
Rozdział 9. Produktywność
- Nie będziemy nigdy wciskać badziewia
- Możliwość niedrogiej adaptacji
- Będziemy zawsze gotowi
- Stabilna wydajność
Rozdział 10. Jakość
- Ciągłe ulepszanie
- Odważna fachowość
- Wyjątkowa jakość
- Nie będziemy zrzucali pracy na dział zapewniania jakości
- Przypadłość działu zapewniania jakości
- Dział zapewniania jakości niczego nie znajdzie
- Automatyzacja testów
- Testowanie automatyczne a interfejsy użytkownika
- Testowanie interfejsu użytkownika
Rozdział 11. Odwaga
- Zastępujemy się nawzajem
- Rzetelne oszacowania
- Musisz mówić "NIE"
- Ciągłe aktywne uczenie się
- Mentorowanie
CZĘŚĆ III. Etyka
- Pierwszy programista
- Siedemdziesiąt pięć lat
- Ofermy i wyzwoliciele
- Wzory osobowe i czarne charaktery
- Rządzimy światem
- Katastrofy
- Przysięga
Rozdział 12. Szkody
- Po pierwsze, nie szkodzić
- Nie szkodzić społeczeństwu
- Uszczerbek w funkcjonowaniu
- Nieszkodzenie strukturze
- Elastyczność
- Testy
- Najlepsza praca
- Jak zrobić to dobrze
- Czym jest dobra struktura?
- Macierz Eisenhowera
- Programiści są interesariuszami
- Dokładanie wszelkich starań
- Powtarzalny dowód
- Dijkstra
- Udowadnianie poprawności
- Programowanie strukturalne
- Dekompozycja funkcyjna
- Programowanie sterowane testami
Rozdział 13. Integralność
- Krótkie cykle
- Historia kontroli kodu źródłowego
- Git
- Krótkie cykle
- Ciągła integracja
- Gałęzie kontra przełączniki
- Ciągłe wdrażanie
- Ciągła budowa
- Bezwzględne ulepszanie
- Pokrycie testami
- Testowanie mutacyjne
- Stabilność semantyczna
- Oczyszczanie
- Wytwory
- Utrzymywanie wysokiej wydajności
- Lepkość
- Radzenie sobie z rozproszeniami
- Zarządzanie czasem
Rozdział 14. Praca zespołowa
- Praca w zespole
- Otwarte/wirtualne biuro
- Rzetelne i uczciwe oszacowania
- Kłamstwa
- Uczciwość, dokładność, precyzja
- Historia nr 1: wektory
- Historia nr 2: pCCU
- Nauczka
- Dokładność
- Precyzja
- Łączenie
- Uczciwość
- Szacunek
- Nigdy nie przestawaj się uczyć
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-9057-7 |
Rozmiar pliku: | 13 MB |