Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2002.09.09;
Скачать: [xml.tar.bz2];

Вниз

Безопасность - 2   Найти похожие ветки 

 
Malder   (2002-08-12 23:17) [0]

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

Ногами не пинать. Спать хочу.


 
Слесарь Матерящийся   (2002-08-12 23:25) [1]

Самый безопасный код -- который не выполняется. Unreachable code. :o)


 
Nikolay   (2002-08-12 23:29) [2]

Ага, чем больше живешь, тем больше пережил возможностей умереть... :+)

> Ногами не пинать. Спать хочу.


угу будем пинать руками :)


 
drpass   (2002-08-12 23:33) [3]

Нет, ты, конечно, можешь допустить какую-нибудь ошибку в обработчике исключения. Но вряд ли это будет хуже, чем в случае, когда это исключение вообще ничем не обрабатывается. Сделать код безопасным - не значит неоправданно его раздувать. Просто нужно выявить в нем потенциально опасные места, и позаботиться о том, чтобы крах в этом участке кода не привел к развалу всей программы.
Таким простым приемом, как, например, освобождение памяти в блоке try... finally, программу не испортишь :)


 
Юрий Зотов   (2002-08-12 23:54) [4]

> Malder © (12.08.02 23:17)

В том-то все и дело. Написать безопасное 2+2 сможет каждый, а вот написать что-то посложнее, но тоже безопасное - это уже надо знать и понимать. И еще надо уметь сделать правильные оценки и провести правильную границу между достаточной безопасностью и проверками всего и вся подряд.

А насчет большого кода... Каждый код состоит из блоков (модулей, процедур, методов, обработчиков...) - то есть, из кусочков. Надо уметь свести вероятность ошибки в каждом куске к оптимальному минимуму, да еще и наладить их правильное взаимодействие, когда любая ошибка в любом куске четко проявится в нем же, или в другом месте - но только не останется скрытой.

В том-то весь фокус и есть.


 
Oleg_Gashev   (2002-08-12 23:56) [5]

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


 
Anatoly Podgoretsky   (2002-08-13 00:01) [6]

Структируй программу, приближай блоки к черному ящику и жить будет проще. Вероятность ошибок уменьшится, а находить их будет легче.


 
vuk   (2002-08-13 00:37) [7]

>Только не забывайте, что и в exception бывают подводные камни,
>приводящии к другому исключению.
У-у-у... Там расставлены весьма неочевидные такие грабли... Связаны с возможной утечкой памяти в блоке finally. Подробнее здесь: http://www.delphikingdom.com/asp/answer.asp?IDAnswer=10239


 
Malder   (2002-08-13 17:40) [8]

Во. Я ж говорил.


 
vuk   (2002-08-13 17:56) [9]

>Но, чем больше кода в программе, тем больше потенциальных
>ошибок, тем код менее безопасен.
Выход есть - не писать программ. Совсем. Кто ничего не делает - гарантированно не ошибается. :o)


 
Игорь Шевченко   (2002-08-13 17:59) [10]

Однако пишут ведь...Windows вот написали...там кода не много, а очень много. И работает ведь, подлая :-)


 
kull   (2002-08-13 18:36) [11]

По законам теории вероятности чем больше кода тем менее надежна система.
т.к. код в большинстве своем выполняется последовательно, то надежности кусков кода перемножаются.

2 куска кода с надежностью 0.95 (т.е. вероятность налажать 5%) упадут с вероятностью 1-(0.95^2) = 0.0975

а вот цепочка из 14 таких же кусков упадет с вероятностью ~50%

Дело не в том чтоб совсем не писать, а просто делать это по возможности проще.


 
iZEN   (2002-08-14 10:20) [12]

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



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2002.09.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.007 c
1-27027
alex-worker@e-mail.ru
2002-08-27 12:54
2002.09.09
Как измененить


1-26936
kerkonst
2002-08-27 12:14
2002.09.09
Управление битами


1-27076
ruslan_as
2002-08-28 14:01
2002.09.09
Как узнать TabOrder текущего элемента


4-27278
wman
2002-07-08 10:33
2002.09.09
Ограничение процессорного времени


14-27162
Alx2
2002-08-13 14:17
2002.09.09
Прическа для кода





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский