С заделом на будущее
2018 M12 12 • ☕️ 1 min read
Originally written in: English • Русский (авторский перевод)
Translated by readers into: Bahasa Indonesia • Deutsch • Español • Français • Polski • Português do Brasil • Türkçe • Български • Українська • العربية • فارسی • 简体中文 • 繁體中文
View all translated posts
Чем отличается хороший API от классного? Действительно хороший API трудно найти, легко потерять и невозможно забыть ну вы поняли.
Читаемость, производительность, минимум подводных камней — про такие вещи думаешь в первую очередь. Я поэтому называю их дизайном «первого порядка». Без них тяжело. Иногда приходится чем-то жертвовать, но это делаешь осознанно.
Однако, код — это живой артефакт и вечный черновик. Как правило, он не пишется однажды, а постоянно дописывается и переписывается разными людьми. Никогда не знаешь, что в итоге получится.
Я заметил, что лучших API-дизайнеров, с которыми мне повезло пообщаться, объединяет одна черта. Они уделяют должное внимание дизайну «первого порядка», но на этом не останавливаются. Вместо этого они погружаются с головой в дизайн «второго порядка»: как именно код, использующий этот API, будет меняться со временем.
Самая элегантная абстракция может рассыпаться от одного нового требования. Классные API прогнутся, но не треснут. Они готовы к тому, что ты будешь двигать код, что-то переименовывать, абстрагировать повторяющуюся логику, развинчивать плохую абстракцию в копипасту, добавлять хак или переписывать глючный модуль.
Классные API работают не только сегодня, но и шесть месяцев спустя. Они придуманы с заделом на будущее.