Для тех, кто устал от бесконечных рефакторингов после каждого нового требования!
Большинство систем должны успешно работать годами, а не просто один раз. Эта книга — глубокое исследование принципов проектирования, которые делают это возможным. Авторы, включая соавтора классического SICP Дж. Дж. Сассмана, предлагают стратегии и аддитивный стиль программирования, позволяющий расширять системы путем добавления нового кода, а не переписывания старого. Изучите предикативное динамическое диспетчирование, работу с метаданными и другие техники для создания по-настоящему гибких и адаптивных программ. Незаменимо для senior-разработчиков и архитекторов, стремящихся победить хрупкость сложных систем.
Бывает так, что при написании программы вы попадаете в тупик. Возможно, это потому, что вы, как оказалось, не учли некоторые особенности исходной задачи. Однако до обидного часто дело в том, что на начальной стадии проектирования вы приняли какое-то решение, выбрали какую-то структуру данных или способ организации кода, который затем оказался слишком ограниченным, а теперь его трудно заменить. Эта книга служит мастер-классом по стратегиям организации программ, которые позволяют сохранить гибкость. В каждой главе можно видеть, как два эксперта демонстрируют тот или иной передовой метод, шаг за шагом разрабатывая работающую подсистему, объясняют на ходу стратегию своей работы и время от времени указывают на подводный камень или способ обойти то или иное ограничение. Издание предназначено для разработчиков, стремящихся создавать адаптивные системы, которые можно менять с минимальными усилиями.
Ghidra подходит для изучения внутреннего устройства программ и анализа исполняемых файлов. Книга поможет разобраться с основами реверс-инжиниринга и инструментами исследования программного кода.
Практические материалы посвящены дизассемблированию, декомпиляции и исследованию структуры бинарных файлов. Освоенные приемы пригодятся при анализе программ, поиске уязвимостей и изучении поведения программного обеспечения.
Издание будет полезно специалистам по информационной безопасности, исследователям ПО и разработчикам, интересующимся обратной разработкой. Материал подойдет как для первого знакомства с Ghidra, так и для расширения практических навыков.
Книга раскрывает подходы к разработке программных систем, способных адаптироваться к изменяющимся требованиям. Материал поможет лучше понять принципы гибкой архитектуры и долгосрочного развития программного обеспечения.
Особое внимание уделяется расширяемости кода и внесению изменений без масштабной переработки существующего проекта. Такой подход позволяет создавать поддерживаемые приложения и постепенно добавлять новые возможности.
Издание будет полезно разработчикам, интересующимся архитектурой ПО, проектированием больших систем и современными методами программирования. Примеры на Scheme помогают закрепить рассмотренные концепции на практике.