Использование сторонних библиотек / компонентов в производстве
-
09-06-2019 - |
Вопрос
При использовании сторонних библиотек / компонентов в производственных проектах строго ли вы относитесь к использованию только выпущенных версий указанных библиотек?
Когда вы рассматриваете возможность использования предварительной или бета-версии библиотеки (в dev?в процессе производства, при определенных обстоятельствах)?
Если вы столкнулись с ошибкой или недостатком библиотеки и уже решили использовать ее, применяете ли вы исправление к библиотеке или создаете обходной путь в своем коде?
Решение
Я большой поклонник того, чтобы не кодировать что-то, когда у кого-то другого есть версия, которую я не смог бы закодировать за разумный промежуток времени или которая потребовала бы от меня стать экспертом в чем-то, что в долгосрочной перспективе не имело бы значения.
Есть несколько компонентов и библиотек с открытым исходным кодом, которые я использовал в нашей производственной среде, таких как Quartz.NET, Log4Net, NLog, SharpFTPLibrary (сильно модифицированная) и другие.Quartz.NET был в стадии бета-тестирования, когда я впервые выпустил приложение, использующее его в производстве.Это была очень стабильная бета-версия, и у меня был исходный код, так что я мог отладить проблему, а их было несколько.Когда я сталкивался с ошибкой, я исправлял ее и сообщал о проблеме багтрекеру или автору.Я чувствую себя очень комфортно, используя бета-версию продукта, если мне доступен исходный код для отладки любых проблем или есть много последователей разработчиков, решающих любые проблемы.
Другие советы
Я и раньше использовал бета-версии библиотек в коммерческих проектах, но в основном во время разработки и когда поставщик, скорее всего, выпустит окончательную версию до того, как я закончу продукт.
Например, я разработал небольшое настольное приложение, используя Visual Studio 2005 Beta 2, потому что знал, что RTM-версия будет доступна до финального выпуска моего приложения.Также я использовал бета-версию драйвера FirebirdSQL ADO.NET при разработке другого проекта.
Что касается ошибок, я стараюсь публиковать полные отчеты об ошибках всякий раз, когда есть способ воспроизвести их, но в большинстве случаев вам приходится находить обходной путь, чтобы выпустить приложение как можно скорее.
- ДА.Если только в бета-версии нет функции, которая нам действительно нужна.
- Нет смысла использовать бета-версию в dev, если вы не уверены, что будете использовать ее в производстве.Это просто кажется напрасным занятием
- Я воспользуюсь пластырем.Зачем писать код для того, за что вы заплатили?
Нет смысла использовать бета-версию в dev, если вы не уверены, что будете использовать ее в производстве.Это просто кажется напрасным занятием
Хороший момент, я также рассматривал сценарий оценки предварительной версии в dev, но я предположил, что это портит путь dev -> test / qa -> prod.
Я воспользуюсь пластырем.Зачем писать код для того, за что вы заплатили?
Что, если это не коммерческая библиотека, а библиотека с открытым исходным кодом?Что делать, если патч, который будет применен, принадлежит не выпускающему объекту (напримерваш собственный патч)?
Я использую:
- Инфраструктура (элементы управления .NET WinForms)
- LeadTools (захват видео)
- Xtreme ToolkitPro (элементы управления MFC)
- Измерительная студия National Instruments (вычислительные библиотеки, построение графиков и DAQ)
Я обнаружил существенные ошибки в каждом из них, поэтому стараюсь максимально ограничить их использование.Infragisitcs довольно хороша сама по себе, а National Instruments, безусловно, лучшая, хотя и довольно ограниченная.Я бы избегал LeadTools любой ценой.