Писать своё решение или взять готовую библиотеку или сервис?
- Как выбрать библиотеку?
- Когда стоит писать своё?
Готовое берут, когда задача не ядро продукта и хорошо решена другими (авторизация, платежи, очереди, PDF): экономия времени огромна. Своё пишут, когда это конкурентное преимущество, готовые решения не подходят по требованиям или зависимость дороже собственной простой реализации. Библиотеку оценивают: поддерживается ли (релизы, issues), лицензия, популярность, качество документации, размер и транзитивные зависимости, безопасность, лёгкость замены.
- Каждая зависимость — код, за который вы отвечаете: обновления, уязвимости
- Тонкая обёртка над внешним сервисом упрощает замену
- Десять строк своего кода иногда лучше библиотеки на десять тысяч строк
А ещё Платёжи, криптографию и авторизацию самим не пишут
Подробно
Чек-лист библиотеки:
- последний релиз и активность;
- лицензия совместима с продуктом;
- открытые уязвимости;
- число и вес зависимостей;
- API удобно и стабильно;
- что делать, если проект забросят.
Свой код оправдан: уникальная логика продукта, особые требования к производительности или данным, очень маленькая задача.
Что хотят услышать
- Ядро продукта против типовой задачи.
- Критерии выбора библиотеки.
- Стоимость зависимости.
- Не писать самим критичное для безопасности.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✓Готовое — для типовых задач, своё — для ядра продукта или особых требований
- ✗Всегда писать своё — так надёжнее и нет внешних зависимостей
- ✗Брать самую популярную библиотеку, не глядя на поддержку и лицензию
- ✗Писать своё для авторизации и криптографии, библиотеки — для остального
Разбор темы
- Технические решения — варианты, проверка и цена ошибки
Как предлагать решение команде, разрешать спор проверкой, решать, сколько времени тратить на выбор, когда писать своё, а когда брать готовое, и как рассказать о решении на собеседовании.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.