📚 Software Design for Flexibility: How to Avoid Programming Yourself into a Corner ✍️ Авторы: Chris Hanson, Gerald Jay Sussman (2021) Стратегии постро…
✍️ Авторы: Chris Hanson, Gerald Jay Sussman (2021)
Стратегии построения крупных систем, которые можно легко адаптировать к новым задачам с минимальными изменениями в коде.
Ограниченные сроки часто заставляют программистов писать код, который хорошо работает только для узкой задачи, не оставляя возможностей для развития. Но лучшие системы - это те, которые можно эволюционировать: их можно адаптировать к новым ситуациям за счёт добавления кода, а не изменения уже существующего. Авторы описывают техники, которые они считают эффективными - опираясь на более чем 100 лет совокупного опыта программирования, - чтобы помочь разработчикам избежать ситуаций, когда система заходит в тупик и перестаёт быть гибкой.
Авторы рассматривают способы повышения гибкости систем за счёт:
• Организации систем через комбинаторы - создание модульных компонентов, которые можно свободно комбинировать, начиная от маленьких функций и заканчивая целыми арифметическими системами, используя стандартизированные интерфейсы.
• Обогащения данных независимыми слоями аннотаций, например, добавлением единиц измерения или информации о происхождении данных.
• Объединения независимых фрагментов неполной информации с помощью механизмов унификации или распространения данных.
• Разделения управляющей логики и предметной области через использование доменных моделей, правил, сопоставления с образцом (pattern matching), систем распространения данных и обратного поиска с учётом зависимостей.
• Расширения возможностей языка программирования с помощью динамически расширяемых интерпретаторов и средств выполнения кода.
👉 @bfbook