Wielu zdolnych programistów uczestniczy w nieefektywnych, źle prowadzonych projektach. Inni muszą utrzymywać kod, który właściwie nigdy nie powinien ujrzeć światła dziennego. Źródeł tego typu trudności jest niemało: programowanie samo w sobie jest nieprzystępnym zagadnieniem, a tworzenie praktycznych aplikacji na ogół wymaga współdziałania wielu osób. Sprawia to, że kod tworzący aplikację powiększa swoją złożoność, staje się niezrozumiały i szczególnie trudny w utrzymaniu. Na szczęście te problemy zostały dostrzeżone i obecnie mamy mnóstwo sposobów ich rozwiązywania.
Ta książka jest asygnowana dla doświadczonych programistów, którzy chcą zdobyć albo pogłębić wiedzę o metodologiach i prawidłowych praktykach tworzenia złożonego oprogramowania. Stanowi interesująco napisany zbiór heurystyk i technik ułożonych w kolejności użytkowania podczas rozwijania projektu programistycznego. Omówiono tu pomiędzy innymi listy kontrolne, TDD, rozdzielenie poleceń i zapytań, Git, złożoność cyklomatyczną, krystaliczność referencyjną, wycinki pionowe, refaktoryzację zastanego kodu czy programowanie typu outside-in. Pokazano na dodatek, jak utrzymać właściwe tempo pracy w trakcie dodawania funkcjonalności, jak rozwiązywać problemy optymalizacji, enkapsulacji i projektowania API i testów jednostkowych. Poszczególne zagadnienia zostały zilustrowane kodem przykładowego projektu napisanego w C#, zrozumiałego dla każdego, kto zna dowolny język zorientowany obiektowo.
Dzięki książce zrozumiesz, jak:
- wybierać sprawdzone procesy
- tworzyć listy kontrolne ułatwiające polepszenie wyników
- unikać "paraliżu analitycznego"
- przeciwdziałać degradacji kodu i niepotrzebnej złożoności
- stosować ulepszone techniki modyfikacji kodu i rozwiązywania problemów
- skuteczniej godzić kryteria sprawności i bezpieczeństwa
Celem nie jest pisanie kodu. Celem jest ergonomiczne oprogramowanie!