Мы находимся в ситуации, посредством чего у нас есть 4 разработчика с небольшим количеством свободного времени на наших руках (говорящий приблизительно 3-4 недели).
Через нашу кодовую базу, для различных проектов, существует много типов платформы-y кода, который переписывается для каждого нового проекта, который мы запускаем. Так как у нас есть некоторое свободное время на наших руках, я нахожусь в процессе создания "стандартного" набора библиотек, как которые все проекты могут снова использовать, такие:
Хотя эти 2 выше полагались бы на библиотеки, такие как Библиотека Предприятия, каждый новый проект запишет свои собственные обертки вокруг этого, и т.д., таким образом, мы консолидируем все, что они кодируют.
Я ищу предположения на стандартных библиотеках, что Вы создали внутренний, который совместно используется через многие проекты.
Чтобы дать Вам некоторый контекст, мы создаем LOB внутренние приложения и общедоступные веб-сайты - т.е. мы не фирма по разработке программного обеспечения, продавая термоусадочную пленку, таким образом, мы не должны наполнять как модуль лицензирования.
Любые мысли очень ценились бы - наши разработчики очень хотят писать некоторый код, и я очень любил бы давать им что-то, чтобы сделать, который принесет пользу организации в конечном счете.
Удачи
Некоторые из основных вещей, которые мы делаем:
Надеюсь, что это поможет
Хорошо, самое главное, не изобретайте велосипед!
Кроме того, взгляните на Инверсию контрольных контейнеров, я рекомендую Castle Windsor.
Они должны быть точкой входа в API (обычная библиотека, но думайте о ней как об API).
Сосредоточьтесь на абстрагировании всех библиотек, которые вы используете внутри своего API, поэтому, если вы больше не хотите использовать Log4Net или Castle Windsor, вы можете, написав хорошо структурированные абстракции и сосредоточившись на слабо связанных шаблонах проектирования.
Думайте об API как о доменах и модульных абстракциях, которые внутренне используют другие распространенные API, такие как общая библиотека доступа к данным.
Я бы начал с супер гибкой общей библиотеки DAL, которая позволяет очень легко получить доступ к любому типу данных и нескольким носителям данных.
Я бы использовал Fluent nHibernate для реляционной БД, и у меня были бы все вызовы методов в реализации LINQ для доступа к данным, поскольку это функция языка C#.
Использование LINQ для запроса БД, индексов, файлов, xml и т. д.
Вот одна вещь, которая может занять всех разработчиков на месяц:
Теперь, если система не была написана с использованием TDD, есть шанс, что она будет очень монолитной и потребует значительного рефакторинга для внедрения тестовых поверхностей. Надеюсь, в конце вы получите более модульную, менее тесно связанную и более тестируемую систему.
Мое отношение таково, что почти никогда не следует писать стандартные библиотеки. Вместо этого следует рефакторить существующий, рабочий код, чтобы убрать дублирование и улучшить удобство использования и простоту тестирования.
Результат будет очень похож на "стандартную библиотеку", за исключением того, что вы будете знать, что она работает (вы же перепроверили свои модульные тесты после каждого изменения, верно?), и вы будете знать, что она будет использоваться, поскольку она уже использовалась. В противном случае вы рискуете создать замечательную стандартную библиотеку, которая не используется и не работает, когда она используется.
При выполнении предыдущего задания возник небольшой простой, пока компания решала, какой должна быть следующая версия. Было несколько вещей, которые мы сделали, которые помогли
Другие вещи, которые я бы сделал сейчас, могут быть
HTH