2009-12-28 2 views
2

Мне нужно найти лучший способ управлять моими функциями утилиты. В настоящее время функции вставляются из других проектов в решение, где они необходимы, поскольку они необходимы. Определенно не путь. Это огромная PITA! Особенно болезненно, когда эти функции меняются со временем по разным причинам.Как организовать библиотеки служебных функций?

Я думаю, что хочу создать проект «GenFunc» и разместить все мои утилиты общего назначения в этом проекте. Затем, когда мне нужно использовать функции, обратитесь к выводу GenFunc из моих других проектов. Это потребовало бы, чтобы меня дисциплинировали и прилагали усилия для создания всех общих функций в GenFunc, но это избавило меня от копирования и вставки кода все время.

Каковы недостатки моего предложенного класса функций?

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

Как вы справиться с этой ситуацией? У всех нас есть библиотеки утилиты, которые не являются специфичными для проекта, не так ли?

ответ

0

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

Это обеспечивает преимущества с точки зрения управления версиями. Команда, отвечающая за проект, который имеет ссылку на библиотеку, может решить как версию, которую они собираются кодировать, так и время любых обновлений. Они могут объединить желаемую версию библиотеки в свою ветвь по расписанию, которое они решат.

Это также будет работать в обратном порядке. У вас будет возможность объединить изменения, внесенные в библиотеку в рамках проекта, обратно в основную ветвь библиотеки, чтобы другие проекты могли иметь к ним доступ.

Вы найдете более подробную информацию (и некоторые другие варианты) в руководстве по шаблонам & Практики here.

3

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

Единственный недостаток, с которым я столкнулся, касается версий - если у вас есть разные проекты, которые используют разные версии, вы либо должны быть абсолютно совместимы во всех отношениях, либо строить/отправлять точную правильную версию с помощью каждый проект, который может раздражать.

0

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

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

В java, по крайней мере, вы также можете написать свой класс, а затем расширить его, если вам необходимо переопределить определенные методы.

Смежные вопросы