Brakujący plik README. Przewodnik dla początkujących inżynierów oprogramowania - ebook
Brakujący plik README. Przewodnik dla początkujących inżynierów oprogramowania - ebook
Dla inżyniera oprogramowania umiejętność kodowania to zaledwie punkt wyjścia. Większość początkujących programistów przekonuje się o tym już w pierwszych dniach pracy w firmie. Nagle się okazuje, że wielu kluczowych spraw zabrakło w programach nauczania. Mowa tu nie tylko o praktykach związanych z tworzeniem i wdrażaniem kodu, ale także o zachowaniach i metodach współpracy ułatwiających odpowiednie działanie zespołu i w efekcie całego przedsiębiorstwa.
To książka przeznaczona dla osób, które chcą rozpocząć karierę inżyniera oprogramowania. Znajdziesz w niej wiele cennych informacji, które zazwyczaj nie są uwzględniane w programach nauczania informatyki na poziomie studiów inżynierskich czy licencjackich, dowiesz się też, czego możesz się spodziewać w pracy. Poszerzysz swoją wiedzę techniczną dotyczącą pisania kodu nadającego się do wdrożenia w środowisku produkcyjnym, opanujesz zagadnienia efektywnego testowania i przeglądów kodu, ciągłej integracji, a także ciągłego wdrażania, dokumentacji projektowej i najlepszych praktyk w zakresie architektury. Zapoznasz się również z informacjami o umiejętnościach miękkich, takich jak techniki zwinnego planowania, efektywna współpraca z kierownictwem i zarządzanie rozwojem własnej kariery.
Najciekawsze zagadnienia:
- oczyszczanie zastanego i tworzenie poprawnie działającego kodu
- testy deterministyczne i przeglądy kodu
- proces projektowania technicznego
- obsługa incydentów produkcyjnych
- zaawansowane techniki architektoniczne
- agile w praktyce firmowej
Po ukończeniu uczelni czas na prawdziwą szkołę programowania!
Spis treści
O AUTORACH
PODZIĘKOWANIA
WSTĘP
1. PODRÓŻ, KTÓRA CIĘ CZEKA
- Cel Twojej podróży
- Mapa Twojej podróży
- Góra Żółtodzioba
- Rzeka Szkolenia
- Przylądek Kontrybutora
- Ocean Operacyjny
- Zatoka Kompetencji
- Pełną parą naprzód!
2. ŚWIADOME DOCHODZENIE DO KOMPETENCJI
- Jak się uczyć, żeby się nauczyć
- Przygotuj się do nauki
- Ucz się przez działanie
- Eksperymentuj z kodem
- Czytaj
- Obejrzyj prezentacje
- Uczestnicz w spotkaniach i konferencjach (z umiarem)
- Wymiana doświadczeń i współpraca z doświadczonymi inżynierami
- Eksperymentuj z projektami pobocznymi
- Zadawanie pytań
- Zrób research
- Ramy czasowe
- Pokaż wykonaną pracę
- Nie przeszkadzaj
- Preferuj multicast, komunikację asynchroniczną
- Zaplanuj żądania synchroniczne
- Pokonywanie przeszkód w rozwoju
- Syndrom impostora
- Efekt Dunninga-Krugera
- Co należy, a czego nie należy robić
- Wejdź na wyższy poziom
3. PRACA Z KODEM
- Entropia oprogramowania
- Dług technologiczny
- Rozwiązywanie problemu długu technologicznego
- Zmienianie kodu
- Użyj algorytmu zmiany dotychczasowego kodu
- Pozostaw kod czystszy niż ten, który zastałeś
- Wprowadzaj zmiany przyrostowo (stopniowo)
- Bądź pragmatyczny w refaktoryzacji
- Użyj IDE
- Stosuj najlepsze praktyki systemu kontroli wersji
- Unikanie pułapek
- Użycie nudnych technologii
- Nie daj się zbałamucić
- Nie rozwidlaj bez commitowania do źródła
- Oprzyj się pokusie, by napisać to od nowa
- Co należy, a czego nie należy robić
- Wejdź na wyższy poziom
4. PISANIE DZIAŁAJĄCEGO KODU
- Programowanie defensywne
- Unikaj wartości zerowych
- Spraw, aby zmienne były niezmienne
- Używanie podpowiadania typów i statycznego sprawdzania typów
- Sprawdzanie poprawności danych wejściowych
- Korzystaj z wyjątków
- Precyzyjnie określaj wyjątki
- Rzucanie wyjątków wcześnie, przechwytywanie wyjątków późno
- Inteligentne ponawianie prób
- Stosuj systemy idempotentne
- Czyszczenie zasobów
- Rejestrowanie
- Użyj poziomów dziennika
- Przechowuj dzienniki atomowe
- Dbaj o szybkość dzienników
- Nie rejestruj wrażliwych danych
- Metryki
- Wykorzystanie standardowych bibliotek metryk
- Zmierz wszystko
- Ślady
- Konfiguracja
- Nie kombinuj z konfiguracją
- Rejestrowanie i sprawdzanie poprawności wszystkich konfiguracji
- Podaj wartości domyślne
- Konfiguracja powiązana z grupą
- Traktuj konfigurację jako kod
- Utrzymuj porządek w plikach konfiguracyjnych
- Nie edytuj wdrożonej konfiguracji
- Narzędzia
- Co należy, a czego nie należy robić
- Wejdź na wyższy poziom
5. ZARZĄDZANIE ZALEŻNOŚCIAMI
- Podstawy zarządzania zależnościami
- Wersjonowanie semantyczne
- Zależności przechodnie
- Piekło zależności
- Unikanie piekła zależności
- Wyizoluj zależności
- Celowe dodawanie zależności
- Przypinanie wersji
- Wąski zakres zależności
- Chroń się przed zależnościami cyklicznymi
- Co należy, a czego nie należy robić
- Wejdź na wyższy poziom
6. TESTOWANIE
- Wielość zastosowań testów
- Typy testów
- Narzędzia testowe
- Biblioteki atrap
- Frameworki testowe
- Narzędzia do poprawy jakości kodu
- Pisanie własnych testów
- Pisz czyste testy
- Nie przesadzaj z testowaniem
- Determinizm w testach
- Ziarno generatora liczb losowych
- Nie wywołuj zdalnych systemów w testach jednostkowych
- Wstrzykiwanie zegarów
- Unikaj usypiania i przerywania pracy
- Zamykanie gniazd sieciowych i uchwytów plików
- Powiązanie z portem 0
- Generowanie unikalnych ścieżek do plików i baz danych
- Wyizoluj i usuń pozostałości stanu testów
- Nie uzależniaj się od kolejności testów
- Co należy, a czego nie należy robić
- Wejdź na wyższy poziom
7. PRZEGLĄDY KODU
- Dlaczego warto przeglądać kod?
- Uzyskiwanie przeglądu kodu
- Przygotuj swój przegląd
- Zmniejszanie ryzyka dzięki przeglądom projektów
- Nie wysyłaj recenzji w celu wyzwolenia testów
- Przechodzenie przez duże zmiany w kodzie
- Nie przywiązuj się
- Bądź empatyczny, ale nie toleruj chamstwa
- Bądź proaktywny
- Przeglądanie kodu
- Ocena wniosków o przeprowadzenie przeglądu
- Zarezerwuj czas na przeglądy
- Zrozum zmianę
- Przekaż wyczerpującą informację zwrotną
- Uznaj to, co dobre
- Rozróżniaj problemy, sugestie i drobiazgi
- Nie przybijaj pieczątki na przeglądach
- Nie ograniczaj się do narzędzi dostępnych na stronach internetowych
- Nie zapominaj o sprawdzaniu testów
- Dąż do konkluzji
- Co należy, a czego nie należy robić
- Wejdź na wyższy poziom
8. DOSTARCZANIE OPROGRAMOWANIA
- Fazy dostarczania oprogramowania
- Strategie rozgałęziania
- Faza kompilowania
- Wersja pakietów
- Oddzielne pakowanie różnych zasobów
- Faza wydawania
- Nie rób z wydań kukułczych jaj
- Publikowanie pakietów w repozytorium wydania
- Zachowaj niezmienność wydań
- Częste wydawanie
- Zachowaj przejrzystość w kwestii harmonogramu wydań
- Publikowanie dzienników zmian oraz informacji o wydaniu
- Faza wdrażania
- Automatyzacja wdrożeń
- Dokonaj atomizacji wdrożeń
- Wdrażaj aplikacje w sposób niezależny
- Faza rozpowszechniania
- Monitoruj rozpowszechnianie
- Zwiększanie wydajności dzięki flagom funkcji
- Zabezpiecz kod za pomocą wyłączników automatycznych
- Równoległe wersje usług i progi
- Wdrażaj w trybie ciemnym
- Co należy, a czego nie należy robić
- Wejdź na wyższy poziom
9. PEŁNIENIE DYŻURÓW TELEFONICZNYCH
- Jak działa dyżur telefoniczny?
- Ważne umiejętności w kontekście dyżurów telefonicznych
- Bądź dostępny
- Bądź uważny
- Ustalaj priorytety pracy
- Komunikuj się w jasny sposób
- Śledź swoją pracę
- Postępowanie w przypadku incydentów
- Ocena
- Koordynacja
- Łagodzenie skutków incydentu
- Rozwiązanie
- Dodatkowe zadania
- Udzielanie wsparcia
- Nie bądź bohaterem
- Co należy, a czego nie należy robić
- Wejdź na wyższy poziom
10. PROCES PROJEKTOWANIA TECHNICZNEGO
- Stożek procesu projektowania technicznego
- Myślenie o projektowaniu
- Zdefiniuj problem
- Przeprowadź analizę
- Przeprowadzaj eksperymenty
- Daj sobie czas
- Pisanie dokumentacji projektowej
- Wiedz, po co piszesz
- Naucz się pisać
- Aktualizuj dokumentację projektową
- Korzystanie z szablonu dokumentacji projektowej
- Wprowadzenie
- Stan obecny i kontekst
- Motywacja do zmian
- Wymagania
- Potencjalne rozwiązania
- Proponowane rozwiązanie
- Projektowanie i architektura
- Plan testów
- Plan wprowadzenia
- Kwestie nierozstrzygnięte
- Dodatek
- Współpraca przy projekcie
- Zrozumienie procesu przeglądu projektu w zespole
- Nie zaskakuj ludzi
- Burza mózgów i dyskusje projektowe
- Udział w projektowaniu
- Co należy, a czego nie należy robić
- Wejdź na wyższy poziom
11. TWORZENIE EWOLUUJĄCYCH ARCHITEKTUR
- Zrozumienie złożoności
- Projektowanie z myślą o ewolucji
- Nie będziesz tego potrzebował
- Zasada najmniejszego zdziwienia
- Enkapsulacja wiedzy domenowej
- Ewoluujące API
- Staraj się, żeby API były małe
- Udostępnianie dobrze zdefiniowanych API dla usług
- Zachowaj zgodność zmian API
- API wersji
- Ewoluujące dane
- Wyizoluj bazy danych
- Używanie schematów
- Zautomatyzuj migrację schematów
- Zachowaj zgodność schematów
- Co należy, a czego nie należy robić
- Wejdź na wyższy poziom
12. AGILE'OWE PLANOWANIE
- Manifest Agile
- Framework planowania zwinnego
- Scrum
- Historyjki użytkownika
- Zadania
- Szacowanie w punktach
- Klasyfikacja zadań do zrobienia
- Planowanie sprintu
- Stand-upy
- Przeglądy
- Retrospektywy
- Roadmapy
- Co należy, a czego nie należy robić
- Wejdź na wyższy poziom
13. PRACA Z MENEDŻERAMI
- Czym zajmują się menedżerowie
- Komunikacja, cele i procesy rozwojowe
- Spotkania 1:1
- PPP
- Cele i kluczowe rezultaty (OKR)
- Ocena pracownika
- Zarządzanie w górę
- Uzyskaj informację zwrotną
- Przekaż informację zwrotną
- Omów swoje cele
- Podejmij działanie, gdy coś nie działa
- Co należy, a czego nie należy robić
- Wejdź na wyższy poziom
14. ŚCIEŻKA KARIERY
- Do poziomu seniora i jeszcze dalej
- Doradztwo zawodowe
- Trzymaj się litery T
- Uczestnictwo w programach inżynierskich
- Kieruj swoim awansem
- Ostrożnie zmieniaj miejsca pracy
- Trzymaj się własnego tempa
- Refleksje końcowe
Kategoria: | Poradniki |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-9409-4 |
Rozmiar pliku: | 2,7 MB |