Использование сторонних библиотек / компонентов в производстве

StackOverflow https://stackoverflow.com/questions/22694

  •  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 любой ценой.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top