Что-то не так с головой
От: HrorH  
Дата: 06.02.12 09:44
Оценка: +1 -1 :))) :)
Программист постоянно делает баги. Это считается нормальным.
Причем не только баги-описки, но баги в самой логике работы программы.
Зачастую оказывается, что используемая модель некорректна даже в теории, при этом на практике она может даже более-менее успешно работать за счет каких-нибудь хакерских методов.

А что если предположить, что баг не должно быть вообще? Почему человек не может думать без ошибок? В чем причина ошибок?

Мне кажется, основная причина в том, что разработка происходит стихийно, каждый пишет, что ему придет в голову.

1) Не формулируется математическая модель предметной области, не доказываются необходимые теоремы. Возможно не везде это требуется, но в нетривиальных случаях без этого не обойтись.
2) Не учитываются свойства системы, о которых надо помнить при проектировании каждой операции (например, это могут быть такие свойства, как безопасность, одновременный доступ к ресурсам, блокировки, какие-то инварианты предметной области)
3) Не осуществляется полный анализ всех возможных вариантов. Такой анализ вообще возможен только в случае, когда у нас есть нечто хотя бы напоминающее абстрактную* математическую модель, в противном случае количество вариантов будет слишком большим для такого анализа. Например, нужен анализ всех вариантов одновременных операций при доступе нескольких пользователей к иерархии ресурсов.

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

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

*Под абстракцией понимается выделение существенного.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.