Я с трудом решаюсь, стоит ли мне использовать Poco в нашем продукте.
В настоящее время мы используем повышение, но повышение очень низкое. Я хотел бы использовать некоторые функции в Poco.
В настоящее время мне нужны только два класса: диспетчер задач и таймер, однако они зависят от пула потоков.
который использует Poco :: Thread поверх Boost :: Thread и т. д.
Я хотел бы удалить нашу текущую структуру управления задачами и использовать Poco, поскольку она намного лучше подходит.
Говоря об этом, я беспокоюсь о будущих последствиях этого и смешении объектов Poco и объектов Boost.
Я вижу выгоду в некоторых других пакетах Poco и, возможно, буду использовать их в будущем, но сейчас мне действительно нужен только хороший менеджер задач.
Вот так я вижу свои варианты
Poco:
Pro — я получаю хорошо проверенный рабочий менеджер задач без усилий.
Con — я буду вводить другую библиотеку базового уровня в модуль, смесь и
сопоставление может стать проблемой в будущем.
Увеличение:
За — я остаюсь с повышением, у нас нет других зависимостей.
Con — Это займет время, чтобы написать эквивалент Poco Task Manager / Timer, и это не будет
Пройдите стресс-тестирование сообщества / проверку кода. (также я заново изобретаю колесо)
Против — мы упускаем другие пакеты Poco, которые могли бы оказать большую помощь в дальнейшем, то есть xml, кеш, поддержка Unicode и т. Д.
Используйте Poco полностью и прекратите Boost
Pro — Мы можем использовать все функции Poco, написанные на более высоком уровне абстракции, мы можем быстро реализовать функции.
Con — Если нам понадобится что-то, что будет в Boost в будущем, мы не сможем его использовать.
Con — Это потребует много работы, чтобы переделать текущий код, который использует boost.
Я шел по пути смешивания их, когда я смотрел на реализацию, и они кажутся похожими, но проблема была поднята, и теперь я не уверен.
Я искал документацию по этому вопросу, но я не нашел ничего убедительного, я надеялся получить отклик сообщества на наиболее рекомендуемые действия.
Я не сомневаюсь, что больше инженеров захотят использовать boot с Poco, поэтому, возможно, когда они начнут искать, они увидят это.
Спасибо за ваше время.
В нашем проекте мы используем Poco, смешанный с boost, и комбинация работает очень хорошо. По моему мнению, boost имеет отличный набор низкоуровневых алгоритмов, тогда как Poco предлагает очень полезный набор высокоуровневых прикладных объектов. Там нет четкой линии, ограничивающей две библиотеки, но именно так мы их использовали. например повышение для сигналов / слотов, foreach и т. д., и Poco для многопоточности, HTTP-сервисов, преобразования Unicode / UTF8. Обе библиотеки хорошо работали для общего кода в OS X, Windows, Linux, iOS и Android.
Других решений пока нет …