Предисловие...........................................................................................................................17
Введение ...............................................................................................................................19
Глава 1. Чистый код................................................................................................................24
Глава 2. Формулирование аксиом.............................................................................................30
Глава 3. Анемичные модели.....................................................................................................39
Глава 4. Одержимость элементарными типами...........................................................................59
Глава 5. Изменяемость.............................................................................................................75
Глава б. Декларативный код.....................................................................................................90
Глава 7. Присвоение имен........................................................................................................109
Глава 8. Комментарии...............................................................................................................132
Глава 9. Стандарты...................................................................................................................143
Глава 10. Сложность.................................................................................................................153
Глава 11. Раздувальщики..........................................................................................................168
Глава 12. Принцип YAGNI..........................................................................................................182
Глава 13. Принцип быстрого провала.........................................................................................192
Глава 14. Операторы if..............................................................................................................203
Глава 15. Что не так с null..........................................................................................................235
Глава 16. Преждевременная оптимизация...................................................................................249
Глава 17. Связанность...............................................................................................................266
Глава 18. Глобальные сущности.................................................................................................299
Глава 19. Иерархии...................................................................................................................307
Глава 20. Тестирование.............................................................................................................329
Глава 21. Технический долг.......................................................................................................351
Глава 22. Исключения...............................................................................................................358
Глава 23. Метапрограммирование...............................................................................................371
Глава 24. Типы..........................................................................................................................381
Глава 25. Безопасность..............................................................................................................388
Глоссарий.................................................................................................................................396
Об авторе.................................................................................................................................413
Иллюстрация на обложке...........................................................................................................414
Для инженеров-разработчиков и архитекторов, имеющих дело с большим объемом сложного кода, важно эффективно его масштабировать и обслуживать. Автор Максимилиано Контьери выходит за рамки концепции чистого кода, показывая, как искать возможности улучшения и оценивать их влияние на код готового программного продукта. Когда речь идет о надежности и развитии, эти методы обеспечивают преимущества, которые со временем окупаются.
Проверенные рецепты на JavaScript, PHP, Python, Java и других языках программирования помогут масштабировать и поддерживать большие системы. В каждом разделе рассматриваются такие фундаментальные понятия, как читаемость кода, связанность, тестируемость, безопасность и расширяемость, а также запахи кода и соответствующие рецепты их устранения.