Библиотеки и когда их использовать - сложное решение.
С одной стороны, вы хорошо протестировали, почти стандартные вещи (в моей области, например, FFTW попадает в эту категорию, или что-то вроде libsndfile), которые, как правило, признаны просто работающими, и были стандартными вещами в течение последних 20 лет, которые все используют.
С другой стороны, у вас есть случайные вещи из github, без набора тестов и только с одним сопровождающим, обычно зачем?
Кислотный тест для меня - это, во-первых, вписывается ли библиотека в мою архитектуру (иногда, если вы знаете, что хотите использовать определенную библиотеку, вы в конечном итоге разрабатываете ее), и я думаю, что я собираюсь завершить отладку чьего-либо другого кода библиотеки ? Хороший прокси для второго вопроса: «Есть ли автоматизированный набор тестов и какова документация?».
Небольшая отладка не является серьезной проблемой, но с этого момента код библиотеки начинает сравниваться с моим собственным размером кода с точки зрения обслуживания (особенно если мои исправления по какой-то причине не могут быть переданы в апстрим).
Я также хотел бы провести различие между библиотеками и фреймворками, при том, что различие иногда бывает не таким четким, фреймворки в моем (маленьком ядре, DSP тяжелом) мире, как правило, являются проблемой в заднице, особенно если вы пытаетесь объединить больше один или сделать что-то немного за пределами строк, библиотеки иногда полезны. Я знаю, что это заметно по-другому на сцене веб-разработчика.
В конце концов, это решение, которое приходит по вкусу и опыту, и даже опытный человек иногда выбирает плохо, по крайней мере, с библиотекой, вы всегда можете вырвать его и написать свою собственную реализацию, если она слишком раздражает.
Решения, Решения ....