LINUX.ORG.RU

Самодостаточноть vs. Велосипедостроение

 , ,


0

3

Бывает ситуация: пишешь некий код. И вдруг возникает необходимость реализовать некий функционал (чётко описанный в ТЗ). Этот функционал присутствует в некой библиотеке. Но он (фунционал) может не соответствовать требованиям, например:

  • «Библиотека» на самом деле является фреймворком и содержит кучу другого «не нужного» функционала.
  • Требуемый функционал реализован не полностью.
  • Код/API библиотеки ужасны.
  • Проблемы с лицензией.
  • etc

И тут начинаются раздумия: написать своё? А вдруг это будет Велосипедостроение? А может лучше тогда частично переписать/дописать библиотеку? А если не выйдет - это же огромная трата времени. Лучше написать свое, и поддерживать проще (Самодостаточность) и никаких проблем с лицензией/кодом. Снова Велосипедостроение?...

Сталкиваетесь ли вы с подобными проблемами? Как обычно их решаете?

С этим сталкиваются студенты. Остальные при формировании ТЗ присутствуют. Если нет - ставить перед фактом.

ziemin ★★ ()
Ответ на: комментарий от ziemin

С этим сталкиваются студенты.

То есть на момент офрмления ТЗ всё практически готово и остаётся только код «по чертежу» написать?

KennyMinigun ★★★★★ ()
Ответ на: комментарий от KennyMinigun

ТЗ оформляется не молниеносно. Время погуглить есть. Можно пробежать глазами варианты (я не только о библиотеках) и внести коррективы.

ziemin ★★ ()
Ответ на: комментарий от KennyMinigun

Да что за фобия такая - Велосипедостроение? :) Никто лучше тебя не сделает, НО если возникают такие вопросы

А если не выйдет?

то лучше задуматься стоит ли вообще браться. Ну а вообще в каждом конкретно случае по-разному решаются такие проблемки.

mau5 ()

обожаю писать велосипеды. Правда, часто недооцениваю сложность.

true_admin ★★★★★ ()

Если реализация своего велосипеда дешевле починки чужого, то выбор очевиден, не? Только адекватная оценка сложности приходит с опытом, хе-хе.

baverman ★★★ ()

Не знаю, как кто, а я, например, велосипедить никогда не боялся.

Признаюсь даже: однажды, в далёкой молодости навелосипедил даже пяток функций из стандартной либы math в unix-е, потому что не разобрался, как её правильно линковать при сборке. Сначала получил по шее от шефа за раздолбайство, а потом (потестировали оба варианта, и оказалось, что мои функции почти не уступают по производительности и точности стандартным) скупую похвалу от него же. :)

Так что на мой убогий взгляд велосипедостроение — это не так уж и плохо. Конечно, бывают исключения и немало.

Сейчас велосипедю гораздо реже, но удобных случаев не упускаю. :)

DeVliegendeHollander ★★ ()

Главное — не доходить до безосновательной боязни велосипедостроения всегда и всюду, не нужно этого делать. Не нужно боятся своих решений, очень хорошая способность развивающегося разработчика, вовремя плевать на библиотечных адептом — и идти вперед — мы должны создавать, а не приспосабливаться.

anonymous ()

А вдруг это будет Велосипедостроение?

Вы так говорите, как будто это что то плохое...

У меня свои потоки ввода/вывода, свои вектора (в декартовом пространстве), про массивы и средства визуализации и речи нету... коллеги этим с удовольствием пользуются;-)

AIv ★★★★★ ()

Современное программирование на 100% состоит из применения готовых решений. Если ты навелосипедил хоть строчку кода, ты пионер, и тебе не место в профессии.

anonymous ()
Ответ на: комментарий от AIv

У меня свои потоки ввода/вывода, свои вектора (в декартовом пространстве), про массивы и средства визуализации и речи нету... коллеги этим с удовольствием пользуются

Просто у вас недостаточно велосепидорская контора. Каждый из коллег должен был сделать свою собственную, уникальную реализацию того же самого, и пользоваться только ей. Во имя самостийности.

с удовольствием

Насчет удовольствия не факт. Вполне вероятно, что многие из коллег тебя тихонечко ненавидят.

Manhunt ★★★★★ ()
Последнее исправление: Manhunt (всего исправлений: 1)
Ответ на: комментарий от Manhunt

Да ент, просто все эти вещи заточены под наши задачи, используют принятые у нас форматы данных и т.д. Вьюверы например работают значительно быстрее, чем вьюверы других рабочих групп.

Насчет удовольствия не факт. Вполне вероятно, что многие из коллег тебя тихонечко ненавидят.

Я спрошу;-)

AIv ★★★★★ ()
Ответ на: комментарий от toney

Кто, на чьи деньги и в каком объеме будет искать в твоем форке уязвимости, чинить баги, развивать? Наличие «лишней» функциональности в либе тебя вообще волновать не должно, вместо этого нужно смотреть на наличие крупных пользователей, на качество кода, на допустимость лицензии...

Manhunt ★★★★★ ()

а откуда боязнь фреймворков, если только ты не для микроконтроллера код пишешь? Тут уже вопрос: «вам шашечки или ехать»?

EugeneBas ★★ ()
Последнее исправление: EugeneBas (всего исправлений: 1)

«Библиотека» на самом деле является фреймворком и содержит кучу другого «не нужного» функционала.

Ути-пути.

Требуемый функционал реализован не полностью.

Ну тогда библиотека и не подходит. Требуемый функционал либо реализован, либо не реализован.

Код/API библиотеки ужасны.

Напиши няшную обёртку, это довольно легко и быстро.

Проблемы с лицензией.

Опенсорсные библиотеки сейчас 99% нужного функционала реализуют. Закрытые лицензии только у очень уж специфических библиотек, там действительно нужно либо писать сугубо под свои нужды, либо покупать, что уж.

Сталкиваетесь ли вы с подобными проблемами? Как обычно их решаете?

Сравниваем затраты на велосипединг и на внедрение и осваивание сторонней библиотеки.

schizoid ★★★ ()
Ответ на: комментарий от anonymous

XML/JSON/YAML/INI

Вот кстати во всех проектах, где я работал, INI-парсер - всегда свой :) В отличие от остальных форматов.

schizoid ★★★ ()

Если ты делаешь что-то похожее, но умеющее делать нечто, что готовое решение не умеет, то почему ты называешь это велосипедом, а не ноу-хау? Собственно вопрос и нужно так ставить: нужно ли проекту ноу-хау? Если проект не технологический, то скорее всего нет. Как тебе уже правильно предсказывают, обычно задачи в таких проектах подгоняются под инструменты. Если проект технологический, то не сделав value added, не сделаешь бизнеса. Такие дела.

dizza ★★★★★ ()

На работе просто использую нормальные инструменты, они покрывают почти все задачи. Если не покрывают и вообще нигде такого нет, тогда пишу.

А дома, для своих проектов пишу все на минимальном базисе. Стараюсь сделать лучше чем где-бы то ни было, все равно риски минимальны

vertexua ★★★★☆ ()

Все уже давно написано. Хочешь не хочешь, а будешь делать велосипед. Ненужный функционал можно попытаться вырезать. Если проблемы с лицензией, то писать нужно свое с нуля, так как иначе будет нарушение авторских прав. Хочешь, не хочешь, а будешь нарушать чьи-то права, запатентованные по нормам международного права. Все тут уголовники, под законом ходят.

asidorchenko ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.