LINUX.ORG.RU

POCO vs GCC

 ,


0

1

Предстоит перелопатить говнопроект, написанный с помощью этой библиотеки для ARMHF архитектуры.

как то все «в блокноте» писал раньше небольшое, потом через gcc собирал, хотя вряд ли для армки можно что то архисложное написать (ffmpeg + ffserver удалось «в блокноте» втащить в своей проект)

Есть смысл выкидывать это поделие или лучше с ним разбираться? Проблемы говнопроекта сами по себе многогранны, хотя и используются доступы в БД и HTTP, многопоточность очевидно, может что то еще (XML и JSON точно понадобятся)

В задаче есть ограничение на ресурсы как по памяти, так и высоконагруженное цпу

★★★

Последнее исправление: wolverin (всего исправлений: 2)

Да кто ж знает

yoghurt ★★★★★
()

говнопроект

как то все «в блокноте» писал раньше

Не стоит разбрасываться так словами, если опыта написания кода не так много.

используются доступы в БД и HTTP, многопоточность очевидно, может что то еще (XML и JSON точно понадобятся)

Т.е. то что делается через POCO в проекте? И как ты собираешься со всем этим работать? Написать свои кучки из говна и палок? Ты уверен, что сделаешь это лучше, чем 150 программистов развивающих библиотеку на протяжении многих лет?

Есть смысл выкидывать это поделие или лучше с ним разбираться?

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

есть ограничение на ресурсы как по памяти, так и высоконагруженное цпу

Профилировка в помощь.

POCO vs GCC

Мандарины vs Шурупы

AlexVR ★★★★★
()

выкидывать это поделие или лучше с ним разбираться

Какое именно? POCO или говнопроект? Чтобы выкидывать POCO нужно сначала найти альтернативу.

Проблемы говнопроекта сами по себе многогранны

Одна из проблем это видимо разработчик(и).

Насколько я помню POCO очень даже приятная библиотека, простая и вразумиельная. Мне вот кажется это последнее к чему можно было бы докопаться в каком-нибудь «говнопроекте».

no-such-file ★★★★★
()
Ответ на: комментарий от AlexVR

Не стоит разбрасываться так словами

Так это он о своём проекте

grem ★★★★★
()
Ответ на: комментарий от AlexVR

И как ты собираешься со всем этим работать?

большую часть функционала просто выкинуть и/или перенести его в один, например, заменить работу с БД+MQTT, только на MQTT

Есть смысл разобраться в проекте

с ним почеловече не разобрался сам «создатель» сего чуда

wolverin ★★★
() автор топика
Последнее исправление: wolverin (всего исправлений: 1)
Ответ на: комментарий от no-such-file

Чтобы выкидывать POCO нужно сначала найти альтернативу

boost не? тем более полуштатная вещь )

wolverin ★★★
() автор топика
Ответ на: комментарий от AlexVR

Ты уверен, что сделаешь это лучше, чем 150 программистов развивающих библиотеку на протяжении многих лет?

интересное утверждение, вот ffserver 20 лет разрабатывали, потом 100500 программистов поняли, что это говно и выпилили его )) хотя не знаю почему, у меня вроде это поделие как то работает.

wolverin ★★★
() автор топика
Ответ на: комментарий от no-such-file

Не знаю росо в том виноват или нет, но в целом это нестабильная работа с зависанием, что говорить если «разработчик» через сутки делает ребут своего поделия, чтобы с утечками не разбираться

wolverin ★★★
() автор топика
Ответ на: комментарий от wolverin

Не знаю росо в том виноват или нет

Ну давай порассуждаем. Что более вероятно является проблемой: общепризнанная библиотека которую пилят сотни людей на протяжении многих лет, или говнокод каких-то васянов?

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от no-such-file

Я ж уже привел пример про сотни лет и людей.

В любом случае чем проще система, тем она стабильней.

В сравнении бууста и росо судя по Гуглу не в пользу последнего по отзывам.

wolverin ★★★
() автор топика

Вместо poco может проще взять Qt?

rumgot ★★★★★
()
Ответ на: комментарий от wolverin

Не знаю росо в том виноват или нет, но в целом это нестабильная работа с зависанием, что говорить если «разработчик» через сутки делает ребут своего поделия, чтобы с утечками не разбираться

И при чём тут POCO? Всё что ты описал, говорит о некорректности вашего кода. А в этом абзаце есть уже две задачи:

  1. Выявить почему зависает.
  2. Выявить причины утечки памяти.

Так что:

  • Включаем -Wall -Wextra -Wpedantic и исправляем все варнинги.
  • Запускаем через valgrind и ищем утечки памяти.
  • Добавляем санитайзеры.
  • Натравливаем clang-tidy, cpplint, cppcheck и т.п.
  • Правило «трёх, пяти, нуля»:
    • избавляем код от всех явных new/delete, заменяя на std::unique_ptr / std::shared_ptr / std::vector / ...
    • «один класс явно управляет одним ресурсом».
  • Добавляем логирование.

Всё что ты описываешь говорит о необходимости решения проблем, а не смены библиотеки или переписывания кода.

AlexVR ★★★★★
()
Ответ на: комментарий от no-such-file

Насколько я помню POCO очень даже приятная библиотека, простая и вразумиельная

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

Lrrr ★★★★★
()
Ответ на: комментарий от Lrrr

там сплошное ООП с паттернами

Именно.

сейчас от такого в крестовых проектах уши вянут

Ну это проблемы тех, у кого вянут.

no-such-file ★★★★★
()
Ответ на: комментарий от wolverin

привел пример про сотни лет и людей

Теперь подумай, сколько этому одному примеру есть контрпримеров, когда говном оказывался код в васянском проекте. Вероятности событий сам посчитаешь?

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Ну это проблемы тех, у кого вянут.

у меня судя по размеру половина проекта (ту часть что надо добавить в чужой проект) будет на Сях (ffmpeg/ffserver + paho - да думаю выбросить и вариант С++ пахо и использовать только С-ую часть, поскольку мс важны), что актуально и для утверждения ниже

избавляем код от всех явных new/delete

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

возникает тогда вопрос - а нафига вообще писать на плюсах - вариантов то попроще завались

wolverin ★★★
() автор топика
Последнее исправление: wolverin (всего исправлений: 1)
Ответ на: комментарий от wolverin

нафига вообще писать на плюсах - вариантов то попроще завались

Ну ты это спроси у тех, кто выбрал кресты для проекта.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Они выбраны для максимальной производительности, а не для максимальной скорости разработки )

wolverin ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.