testerplus (26.07.2010 14:06 - 27.07.2010 21:21, просмотров: 107) ответил Shura на :-))))) На самом деле я про причины не зря спросил. В 99% случаев это ошибки самого программиста, приводящие к записи ахинеи. Что потом они и лечат троированием, семенированием и прочими заплатками.
Не надо мне рассказывать о причинах ошибок в ПО. Но к криволапости и прямоизвильности программиста (которые, несомненно, на первом месте) я бы еще добавил несколько причин (это помимо внешних, которые я уже описал): 1. Не забываем про косяки компилятора
2. Не снимаем ответственности со схемотехников (давайте без холиваров, но и за ними грешки есть: и по обеспечению питания, и по разводке и т.д.)
3. То же касается монтажников.
4. Не забываем о неграмотной постановке задачи.
5. Ну, собственно, уже знаем о неведении некоторых программистов насчет того, что реальные устройства (и память, и АЦП, и даже транзистор) несколько отличаются от идеальных моделей.
6. Извечная проблема всех эелементов памяти: endurance и data retention time
7. Вредоносные действия юзера.
8. Агрессивная среда эксплуатации.
9. Механические воздействия, при которых теряются контакты даже в местах пайки или портятся детали.
и т.д.и т.п.
Когда в конце 90х я утроился на первую официальную работу, тамошние опытные инженеры тоже надо мной смеялись: и насчет потери данных в EEPROM, и что нельзя WDT сбрасывать где попало, и что нельзя повторно использовать паянные детали и т.д. Прошло больше 10 лет, и я зарабатываю деньги (в общем, неплохие) по этим темам. А они там, наверное, до сих пор смеются. Последний раз слышал о них года два назад: они занимались - не поверите! - разработкой дистанционного управления светом в помещении.
(Редактированно: подчистил переход на личности; убрал ссылку на параллельную ветку из п.1)