Overreacted

Адаптований до змін

2018 M12 12 • ☕️ 1 min read

Що таке хороший API?

Архітектура хорошого API має бути однозначною і добре запам’ятовуватися. Також вона має заохочувати створювати читабельний, правильний і ефективний код та допомагати розробникам «впасти в яму успіху».

Я вважаю ці аспекти дизайну «первинними», тому що це перша річ, на якій розробники бібліотек повинні сфокусуватися. Можливо з деякими з них тобі доведеться піти на компроміси, але принаймні завжди про них потрібно пам’ятати.

Однак, хіба, якщо ти не відправляєш марсохід на Марс, твій код скоріше за все з часом зміниться. Так як і код клієнтів твого API.

Найкращі розробники API, яких я знаю, не зупиняються на «первинних» аспектах таких як читабельність. Вони докладають стільки ж зусиль, якщо не більше, для того, що я називаю «вторинними» аспектами API дизайну: як код, який використовує твій API, еволюціонує з часом.

Маленькі зміни у вимогах можуть зламати навіть найбільш витончений код.

Хороші API передбачають це. Вони передбачають, що ви захочете перемістити фрагменти коду. Скопіювати і вставити якусь частину. Перейменувати її. Об’єднати окремі випадки в загальну багаторазову абстракцію (помічник). Розширити абстрактне рішення знову до особливих випадків. Додати свої костилі. Оптимізувати вузькі місця. Викинути частину і почати все спочатку. Зробити помилку. Переміщуватися між причиною та наслідком. Виправити баг. Переглянути виправлення.

Хороші API не тільки дозволяюсть тобі «впасти в яму успіху», але й залишитись у ній.

Вони адаптовані до змін.