Ну, за независимость!

топ 100 блогов tonsky21.11.2015 Управлять зависимостями трудно. Сам факт того, что такое понятие существует, уже намекает, что там есть с чем повозиться (простите мне чересчур мягкую формулировку, я сдерживаюсь изо всех сил). Поэтому один из важных принципов разработки — не тащить зависимости. В институте учат, что переиспользование кода — главная благодетель (и эта мантра наделала ужас сколько вреда). Так вот, переиспользование кода из сторонней библиотеки — тот случай, когда копипаста лучше переиспользования. Бывают библиотеки, большие и сложные, дающие бонус только целиком. Зато он существенный, и без него никак. Тяжелая алгоритмика. Новые качества. Тогда — конечно. А всякие утилитки, функции на десять строчек, удобные оберточки над платформой — задумайтесь, выдохните, и не тащите. Скопируйте одну функцию, если правда удобно. Я уж не говорю про случаи, когда быстрее сделать, чем искать, какая библиотека это уже делает (может это форма социализации такая, использовать чужой код, даже тривиальный? Или неуверенность в себе?). Особо остро выделяются свалки, где много разного, а раз много, значит каждый релиз что-то да сломают. Вообще, жалко, что так мало у нас ценят законченные вещи. Доделанные до конца, с фиксированым скоупом, а значит стабильные, не меняющиеся.

Есть еще конфликты версий, но с этим проще. Следуйте принципу: в своем приложении творите что душе угодно, тащите сколько угодно хлама, если времени не жалко потом его обновлять. Но если делаете библиотеку — у нее не должно быть зависимостей. От слова совсем. Полностью самодостаточный код, зависит только от платформы. Да, несправедливо по отношению к авторам библиотек — не вкусить им плодов прогресса и удобства опенсорсных АПИ (гг). Но эта жертва сэкономит непропорционально много времени всем остальным. Если подумать не о себе, а о потенциальных заинтересованных в библиотеке коллегах, понятно, что у них в приложении организационные вопросы уже как-то решены — логирование, коммуникация, хранение стейта, управление подсистемами, event loop. Если автор библиотеки пытается что-то из этого заиспользовать в библиотеке (упростить жизнь себе? помочь пользователям?), очевидно, он будет только мешать. Крепитесь, это не так уж страшно.

Оставить комментарий

Архив записей в блогах:
Супчика не желаете?) ...
*SMS  ( Save My Sole )  - Cпасите Мою Душу! Срочно! Требуется: для праздничного стола приготовить шампиньоны. Я знаю лишь рецепт начинить шампиньоны творожной массой, сверху присыпать панировочными сухарями - и на 15 минут в духовку. Рецепт хороший, ...
Не только танками едины и подарком для вооруженных сил может быть даже такая мелочь как видеоролик, мотивирующая и поднимающая боевой дух. Все прекрасно знают о том как три дня назад видео от украинского youtube-канала "The People's Project" посвященное ВВС Турции "ВПС Туреччини ...
Две модели дизайна Элмера Рауша из г. Брасстауна в Северной Каролине, ветерана войны во Вьетнаме, сотрудничающего с CRKT по программе "Забудьте о войне". Которая предусматривает передачу части чистой прибыли (10%) от продажи этих изделий  в различные фонды поддержки ветеранов. ...
                                 Информационная пропаганда на Украине набирает все большие обороты. После новостей о запрете аккредитаций всех российских СМИ, со стороны министерства информационной политики Украины последовали не менее решительные меры. Как заявил министр информа ...