Замечательная книга полная практических примеров. Читать каждому. Выдержки:
- автоматизируйте стандарт кодирования
- будьте предусмотрительны (по долгам надо платить, особенно, по техническим)
- магии не существует
- ваш заказчик говорит не то, что думает
- взаимодействие между процессами влияет на время отклика
- выучить язык - значит понять его культуру
- дайте проекту голос (оповещения обо всех процессах)
- две ошибки могут взаимокомпенсировать друг друга (и это ад отладки)
- делайте невидимое видимым
- делайте ревью кода
- ваш код будут читать
- заботьтесь о коде
- не забывайте изучать гуманитарные науки
- изучайте другие языки программирования и парадигмы
- изучайте иностранные языки
- изучайте алгоритмы и структуры данных, инструменты, ОС
- инкапсуляция - наше все
- комментируйте лишь то, что не ясно из кода
- используйте консоль
- установка и деплой как можно раньше
- DRY
- не работайте сверхурочно
- нет ничего более постоянного, чем временное
- изобретать велосипед полезно у себя дома
- одна голова хорошо, а две лучше - практикуйте парное программирование
- если что-то не получается - отойдите от клавиатуры
- пишите тесты
- программировать надо на языке предметной области
Это замечательная книга, которую необходимо читать каждому программисту в самом начале карьеры. Книга не взывает к какому-то одному языку программирования, а учит более абстрактным вещам, которые можно применять независимо от какого-то конкретного языка. Также много внимания уделяется общим вещам: необходимости документирования, написанию тестов, построению процессов разработки, ...
Выдержки:
- Пишите код на основе интерфейса, а не реализации
- Не документируйте плохой код - перепишите его
- Используйте метафоры
- Используйте эвристики
- Бог скрывается в мелочах
- Лучшее - враг хорошего
- Боритесь со сложностью (Главный Технический Императив Разработки ПО)
- Программируйте в терминах предметной области
- Разделяйте программный код на уровни абстракции
Методы оценки кода на наличие ошибок:
- тестирование
- обзоры
Всему свое место и все оказывается на своих местах
Этапы разработки ПО:
- Определение процесса разработки
- Управление процессом разработки
- Описание целевого программного продукта
- Проектирование продукта
- Разработка продукта
- Тестирование частей продукта
- Интеграция частей продукта
- Сопровождение
Основные принципы XP-разработки:
- пересмотр кода;
- тестирование;
- проектирование;
- простота;
- архитектура;
- интеграционное тестирование;
- небольшие итерации;
Внешние качественные характеристики ПО:
- Корректность
- практичность
- эффективность
- надежность
- целостность
- адаптируемость
- правильность
- живучесть
Внутренние качественные характеристики ПО:
- удобство сопровождения
- гибкость
- портируемость
- возможность повторного использования
- удобочитаемость
- тестируемость
Рефакторить надо с умом
- Если в программу нужно добавить функциональность, но код для этого не структурирован должным образом, сначала нужно произвести рефакторинг
- Проводя рефакторинг, всегда нужно полагаться на тесты время потраченное на создание тестов полностью себя окупает
- При проведении рефакторинга программа модифицируется небольшими частями
- После каждой модификации выполняется проверка работоспособности
При разработке любой крупной системы справедливы правила:
- решаем проблемы по мере поступления
- каждый раз выбираем наиболее простое и надежное решение
Книга позволяет разобраться мимнимальным образом в основах дизайна. Довольно приятна для чтения, всегда останется актуальной, поскольку учит довольно базовым вещам + довольно интересное чтиво
Первая половина книги довольно стоящая, читается с интересом, можно найти немало интересного. Вторая, по большей части, много повторяет первую. Много примеров, которые будут полезны начинающим программистам.
Весьма неплохая книга о том, как построены процессы тестирования в Google.
Отличнейшая книга, которая позволяет довольно просто начать осваивать функциональное программирование. В книге приводится много хороших и полезных примеров. Имея фундамент этой книге гораздо проще пробираться через более сложные понятия, касающиеся ФП.
- "Широко известно, что стоимость программного обеспечения по большей части состоит не из затрат на изначальную разработку, а на сопровождение, поддержание работоспособности, внесении изменений и развитии системы"
- "Три принципа проектирования программных систем: простота, удобство эксплуатации и возможность развития"
Это одна из лучших книг. Для меня она стоит в одном ряду с "Совершенным кодом" Макконелла, "Чистой архитектурой" Мартина и "Паттернами разработки" Банды четырех. Местами книга говорит о вполне очевидных вещах вроде Ubiqutous Language, но затем на этом фундаменте строятся более интересные и важные концепции. Здесь приводится описание довольно универсального подхода к разработке корпоративных приложений. Это позволяет разрабатывать приложения, которые гораздо проще поддерживать и развивать со временем. Книга обязательна к прочтению всем, кто считает себя Senior-ом.
Книга рассказывает об основных проблемах, с которыми приходится сталкиваться при разработке приложений на микросервисной архитектуре. И хотя книга не всегда дает конкретные инструменты для решения возникающий проблем и вопросов, она во многом дает понять как следует мыслить и на какие проблемы стоит обращать свое внимание.
Очень хорошая книга, в которой рассматривается множество типовых решений, объясняется как необходимо мыслить при проектировании систем, что учитывать и как доносить свои мысли в процессе интервью. Определенно рекомендую к прочтению