Взагалі я уникаю винаходити колесо, якщо функціональність, яку я бажаю, або щось, що наближає її, існує в стандартній бібліотеці мови, якою я користуюся.
Однак, якщо мені доведеться включити сторонні бібліотеки, це виклик судження залежно від того, наскільки широко використовується та цінується бібліотека. Я маю на увазі, ми говоримо про Boost або Бобовий ударний інструмент String-Parsing Tools 1.0?
Навіть якщо бібліотека є загальновідомою та високо цінується у всій галузі, це все-таки стороння залежність . Програмісти, як правило, приділяють значну увагу достоїнствам використання коду, часто переглядаючи небезпеку залежностей. Проект із занадто великою кількістю сторонніх залежностей, ймовірно, розвалиться в довгостроковій перспективі, оскільки він повільно перетворюється на кошмар технічного обслуговування.
Тож використання існуючого коду добре - але залежності погані . На жаль, ці два твердження суперечать один одному, тому фокус намагається знайти правильний баланс. Ось чому потрібно визначити прийнятні залежності. Як я вже говорив, все, що є в Стандартній бібліотеці мови, швидше за все, є прийнятною залежністю. Переходячи звідти, бібліотеки, які високо оцінюються у всій галузі, також є загальноприйнятними (наприклад, Boost для C ++ або jQuery для Javascript) - але вони все ще менш бажані, ніж Стандартні бібліотеки, оскільки вони , як правило, менш стабільні, ніж стандартизовані бібліотеки .
Щодо бібліотек, які відносно невідомі, (наприклад, остання завантаження в SourceForge), це надзвичайно ризиковані залежності, і я б, як правило, рекомендував уникати таких у виробничому коді, якщо ви недостатньо знайомі з вихідним кодом, щоб підтримувати їх самостійно.
Тож насправді все це балансуючий акт. Але справа в тому, що просто сліпо говорячи "Кодекс повторно використовувати добре! Повторно винайди колесо погано!" - небезпечне ставлення. Переваги використання сторонніх кодів повинні бути зважені з недоліками введення залежностей.