Ocena:

Książka zapewnia szczegółową analizę dokonywania kompromisów w inżynierii oprogramowania, podkreślając znaczenie zrozumienia alternatyw i rzeczywistych implikacji decyzji projektowych. Chociaż oferuje cenne spostrzeżenia i zachęca do pragmatycznego podejścia, otrzymała mieszane recenzje dotyczące jakości pisania i przydatności dla różnych poziomów doświadczenia.
Zalety:⬤ Oferuje cenne informacje na temat kompromisów i realistycznych scenariuszy w inżynierii oprogramowania.
⬤ Zachęca do krytycznego myślenia o tym, kiedy należy złamać konwencjonalne zasady, takie jak dopuszczalne użycie duplikacji kodu.
⬤ Zawiera praktyczne przykłady mające zastosowanie w rzeczywistych sytuacjach.
⬤ Porusza szereg tematów istotnych dla inżynierów oprogramowania na różnych poziomach.
⬤ Promuje zrównoważone zrozumienie najlepszych praktyk w stosunku do rzeczywistej implementacji.
⬤ Niektóre rozdziały są nadmiernie skoncentrowane na trywialnych tematach specyficznych dla języka Java, co może nie być interesujące dla doświadczonych programistów.
⬤ Wahania jakości tekstu, niektóre sekcje są niepotrzebnie rozwlekłe lub uproszczone.
⬤ Brak dogłębnej eksploracji złożonych scenariuszy ze świata rzeczywistego i odniesień do dalszej lektury.
⬤ Niektóre przykłady mogą wydawać się zbyt wymyślone lub oczywiste, co ogranicza ich praktyczne zastosowanie.
(na podstawie 5 opinii czytelników)
Software Mistakes and Tradeoffs: How to Make Good Programming Decisions
Zoptymalizuj decyzje, które definiują Twój kod, badając typowe błędy i celowe kompromisy dokonywane przez doświadczonych programistów.
W Software Mistakes and Tradeoffs dowiesz się jak:
Rozumować o swoich systemach, aby podejmować intuicyjne i lepsze decyzje projektowe.
Rozumieć konsekwencje i jak równoważyć kompromisy.
Wybrać odpowiednią bibliotekę dla danego problemu.
Dokładnie analizować wszystkie zależności między usługami.
Zrozumienie semantyki dostarczania i jej wpływu na architekturę rozproszoną.
Projektowanie i przeprowadzanie testów wydajności w celu wykrycia gorących ścieżek kodu i walidacji umowy SLA systemu.
Wykryj i zoptymalizuj gorące ścieżki w kodzie, aby skoncentrować wysiłki optymalizacyjne na przyczynach źródłowych.
Wybór odpowiedniego modelu danych do obsługi daty/czasu w celu uniknięcia powszechnych (ale subtelnych) błędów.
Zastanów się nad kompatybilnością i wersjonowaniem, aby zapobiec nieoczekiwanym problemom dla klientów API.
Zrozumienie ścisłego/luźnego sprzężenia i jego wpływu na koordynację pracy między zespołami.
Sprecyzuj wymagania, aż będą precyzyjne, łatwe do wdrożenia i przetestowania.
Zoptymalizuj swoje API pod kątem przyjaznego doświadczenia użytkownika.
Wydajność kodu kontra prostota. Szybkość dostarczania kontra powielanie. Elastyczność kontra łatwość utrzymania - każda decyzja podejmowana w inżynierii oprogramowania wiąże się z kompromisami. W Software Mistakes and Tradeoffs poznasz kosztowne błędy, które Tomasz Lelek i Jon Skeet napotkali w swojej imponującej karierze. Poznasz rzeczywiste scenariusze, w których słabe zrozumienie kompromisów prowadzi do poważnych problemów w przyszłości, dzięki czemu możesz zapobiec własnym błędom dzięki bardziej przemyślanemu podejściu do podejmowania decyzji.
Dowiesz się, w jaki sposób powielanie kodu wpływa na sprzężenie i szybkość ewolucji systemów oraz jak proste wymagania mogą mieć ukryte niuanse w odniesieniu do informacji o dacie i czasie. Odkryj, jak skutecznie zawęzić zakres optymalizacji zgodnie z zasadami 80/20 Pareto i zapewnić spójność w systemach rozproszonych. Wkrótce zbudujesz bazę wiedzy, która pochodzi tylko z wieloletniego doświadczenia.
Zakup książki drukowanej obejmuje bezpłatny eBook w formatach PDF, Kindle i ePub od Manning Publications.
O technologii.
Każdy etap projektu oprogramowania wiąże się z koniecznością dokonywania kompromisów. Kiedy balansujesz między szybkością, bezpieczeństwem, kosztami, czasem dostawy, funkcjami i nie tylko, rozsądne wybory projektowe mogą okazać się problematyczne w produkcji. Spostrzeżenia ekspertów i powiązane historie wojenne zawarte w tej książce pomogą ci dokonywać dobrych wyborów podczas projektowania i tworzenia aplikacji.
O książce.
Software Mistakes and Tradeoffs bada rzeczywiste scenariusze, w których podjęto niewłaściwe decyzje i pokazuje, co można było zrobić inaczej. Autorzy Tomasz Lelek i Jon Skeet dzielą się mądrością opartą na dziesięcioleciach doświadczenia w inżynierii oprogramowania, w tym kilkoma pouczającymi błędami. Docenisz konkretne wskazówki i praktyczne techniki, które towarzyszą każdemu przykładowi, a także wiecznie zielone wzorce, które zmienią sposób, w jaki podchodzisz do kolejnych projektów.
Co jest w środku.
Jak systematycznie myśleć o swoim oprogramowaniu.
Jak wybierać narzędzia, biblioteki i frameworki.
Jak ścisłe i luźne połączenie wpływa na koordynację zespołu.
Wymagania, które są precyzyjne, łatwe do wdrożenia i przetestowania.
O czytelniku.
Dla programistów i architektów średniego i wyższego szczebla, którzy podejmują decyzje dotyczące projektowania i wdrażania oprogramowania.
O autorze.
Tomasz Lelek na co dzień pracuje z szeroką gamą usług produkcyjnych, architektur i języków JVM. Inżynier Google i autor C# in Depth, Jon Skeet jest znany ze swojego praktycznego wkładu w Stack Overflow.
Spis treści.
1 Wprowadzenie.
2 Powielanie kodu nie zawsze jest złe: Powielanie kodu a elastyczność.
3 Wyjątki a inne wzorce obsługi błędów w kodzie.
4 Równoważenie elastyczności i złożoności.
5 Przedwczesna optymalizacja vs. optymalizacja gorącej ścieżki: Decyzje wpływające na wydajność kodu.
6 Prostota a koszty utrzymania interfejsu API.
7 Efektywna praca z danymi dotyczącymi daty i godziny.
8 Wykorzystanie lokalności danych i pamięci maszyn.
9 Biblioteki firm trzecich: Biblioteki, których używasz, stają się twoim kodem.
10 Spójność i atomowość w systemach rozproszonych.
11 Semantyka dostarczania w systemach rozproszonych.
12 Zarządzanie wersjonowaniem i kompatybilnością.
13 Nadążanie za trendami a koszty utrzymania kodu.