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 rodzaju trudności jest dużo: programowanie samo w sobie jest trudnym zagadnieniem, a tworzenie funkcjonalnych aplikacji na ogół wymaga współdziałania wielu osób. Powoduje to, że kod budujący aplikację rozszerza swoją złożoność, staje się niezrozumiały i bardzo skomplikowany w utrzymaniu. Na szczęście te problemy zostały dostrzeżone i aktualnie mamy mnóstwo sposobów ich rozwiązywania.
Ta książka jest dedykowana dla doświadczonych programistów, którzy chcą zdobyć lub pogłębić wiedzę o metodologiach i prawidłowych praktykach tworzenia złożonego oprogramowania. Stanowi ciekawie napisany zbiór heurystyk i technik ułożonych w kolejności używania podczas rozwijania projektu programistycznego. Omówiono tu pomiędzy innymi listy kontrolne, TDD, rozdzielenie poleceń i zapytań, Git, złożoność cyklomatyczną, przejrzystość referencyjną, wycinki pionowe, refaktoryzację zastanego kodu czy programowanie rodzaju outside-in. Pokazano też, jak utrzymać właściwe tempo pracy podczas dodawania funkcjonalności, jak rozwiązywać problemy optymalizacji, enkapsulacji, a także 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:
Celem nie jest pisanie kodu. Celem jest poręczne oprogramowanie!