Перестать работать быстро или безопасный сбой?

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

Программа, как предполагается, говорит с основным продуктом (IP21) с одной стороны и действие как сервер, обрабатывая несколько клиентов, на другом.

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

Но я не соглашаюсь с моим коллегой на этой архитектуре. Он говорит, что я должен поместить реактор и несколько других компонентов, работающих в основном потоке в отдельном потоке. Основной поток должен быть максимально простым. Я сделал бы это так, чтобы программа не отказывала, если эта часть делает. Он говорит, что лучше иметь абсолютно нефункциональную программу, чем сильный катастрофический отказ.

Я говорю, что лучше перестать работать быстро. Если эта (критическая) часть катастрофических отказов программы там не является никакой причиной попытаться поддержать его. Кроме того, я полагаю, что это может доставить неприятности пользователю; Он заметит, что что-то неправильно, но если он посмотрит на список задач (наш продукт как некоторый диспетчер задач, который перечисляет задачи, которые, как предполагают, выполняли и позволять легко отслеживать разрушенную), то он не заметит разрушенную программу!

Я надеюсь, что можно помочь нам путем предоставления некоторых аргументов одной стороне или другому ;)

править: спасибо за Ваши ответы, но относительно чего мы не соглашаемся, о полноценности помещения реактора, и несколько других компонентов в отдельном потоке в случае серьезного программирования связали проблему (segfault/deadlock / <вставляют критическую проблему здесь>). Я думаю, что это было бы и опасно и бессмысленно иметь программу, работающую без этого потока.

6
задан f4. 5 August 2010 в 13:33
поделиться