> Ну можно еще:
> 1. Обложить try-except-ом и аккуратно все ловить и обрабатывать
> 2. Если оно в core dump-ит, то вынести в отдельный процесс эти рарчики, и следить за ним снаружиТам SIGILL вылазит. Можно сделать обработку сигнала, но она всё равно должна заканчиваться exit. По крайней мере, насколько я понял из чтения документации. Т.е. в лучшем случае можно перед носом пользователя подвесить на несколько секунд сообщение вида, "Хьюстон, у нас проблема", но не более того. Игнорировать же такой сигнал я бы не стал - неизвестно, чем это может закончится.
> параллельно всему этому, и вы его reset чтобы не разбираться и не заморачиваться с аккуратным параллельным программированием.
Нет, просто банальная перестраховка. Так-то да, если там вылетит исключение, то bie по идее должен остаться nullptr, и reset действительно лишний. Уберу потом.
> Стесняюсь спросить - а почему переписать с нуля это-вот-все оказалось проще, чем инкрементально развивать? Неужели сложность крышу проломила?
Нет, просто предыдущая версия была кривовата изначально. Я сопоставил объём работы по переписыванию всего этого дела кусками, с возможным поиском ошибок (а они возникнут неизбежно), с полным переписыванием и понял, что оно то на то и выйдет. Плюсом, предыдущая версия была, мягко говоря, не очень предназначена для встраивания нового функционала. Опять же из-за кривоватой изначальной структуры. А хотелось кое-чего добавить. Дизайн кривоватый был, потому что когда проект начинался - я не очень представлял, что в конечном итоге хочу получить. В плане конкретного функционала. К третей версии же уже сложилось общее понимание, что от программы хочу я, чего хотят пользователя, и как это всё можно реализовать с учётом моей компетенции в программировании.
> 1. Вы демонстрируете свой код другим разработчикам, и они впитывают (до какой-то степени, естественно) ваши паттерны поведения. И паттерн - "пройдусь дебаггером и так сойдет" - он вреден. Как и паттерн - "юзер сам виноват что мой код у него падает - это опенсорс, я сделаль, берите-что-дают-а-то-и-эти-кончатся"
Я всё понимаю, ключевой вопрос тут во времени. Ну и в самой архитектуре проекта - я не очень вижу, где там можно всунуть серьёзные юнит-тесты. Те, что писал я, занимали максимум 10-20 строчек кода, и накидать их можно и так, на коленке за 10 минут в случае возникновения необходимости. Что называется "по месту".
> 2. Вы демонстрируете свой код потенциальным коллегам и работодателям (да, люди читают гитхабчики других людей!) И паттерны поведения, как технического так и личностного, могут ограничить ваши карьерные перспективы.
Расскажу коротко, кто я и что я, тогда может быть станет понятней, почему оно всё так, как есть. Образование моё - морская академия. После чего я работал сначала третьим, потом вторым помощником капитана. С морем, так получилось, завязал в 2017 году. Примерно в это же время занялся программированием. Но не с целью каких-то карьерных перспектив, а потому что понадобилось обрабатывать большое количество цифр. Что, скажем, в каком-нибудь офисном пакете делать в принципе можно, но, мягко говоря, не очень удобно. Курсов никаких не заканчивал, всё исключительно самообразованием. Данная программа появилась давно, гораздо раньше, чем попала в публичный доступ. Просто в один день перестала нормально работать штатная, которая прилагалась к одной библиотеке, и я на коленке за неделю сварганил замену. Под ту конкретную библиотеку. Ну и опять же, чтобы вы несколько представляли круг моих интересов: http://samlib.ru/editors/b/bobylew_j_w/society.shtml