Пост

Дзен и искусство software engineering

Заголовок — отсылка к книге Роберта Пирсига “Дзен и искусство ухода за мотоциклом”.

Есть абстрактная аналогия: программирование — это перекладывание данных из одного места в другое. В этом смысле программа — это инструмент для наведения выбранного порядка в данных.

Но сама программа тоже состоит из множества инструментов: модулей, классов, функций, интерфейсов. Чтобы ими было удобно пользоваться, они должны лежать примерно как вещи на хорошем рабочем столе: там, где ожидаешь их найти, ну и чтобы они не мешали друг другу.

Поэтому значительная часть software engineering — это наведение порядка в инструментах, которыми мы обрабатываем данные. В хорошо построенной программе все скучно: устройство системы понятно, нужное находится быстро, а стоимость изменений минимальна. Это и есть инженерный дзен.