|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Vladimir Bormotov 2:5020/400 02 Oct 2002 10:08:05 To : Vjacheslav Maslov Subject : Re: g++ --------------------------------------------------------------------------------
Hi, Vjacheslav!
>>>>> "VM" == Vjacheslav Maslov
>>>>> <Vjacheslav.Maslov@p61.f151.n5000.z2.fidonet.org> writes:
VL>> Всем. В первую очередь тем, что он нисколько не предназначен для
VL>> заявленной в названии цели - избавления программы от ошибок.
VM> Hу хорошо, я вот сейчас занимаюсь арифметическим
VM> кодированием(устранение избыточности), это довольно сложный в
VM> реализации алгоритм, куча циклов, проверок, структрур данных,
VM> низкоуровневых манипуляций с битами.
отлично.
VM> Посмотрел бы я как ты с этой задачей справился используя только логи,
VM> в любом случае необходимо контролировать, например, значения
VM> переменных по ходу выполнения,
у тебя watch view открыто? Для контроля за переменными?
там 10 переменных? 20? Это все можно писать в лог.
VM> иногда что-либо подправить в runtime,
ааа, ну-ну...
VM> и посмотреть как это отразится на дальнешейм ходе алгоритма.
это первый путь к тому, чтоб скзать любимой девушка "дорогая, мы сегодня в
кино не попадаем, мне нужно программу допинать".
Смотреть как упавший в воду камень криги на ней образует интересно.
Hо непродуктивно, и дорого.
VM> p.s. только не надо говорить, что все дело в неправильно построенном
VM> алгоритме/программе итд итп.
дело в правильно организованом процессе программинга.
почитайте о технологии XP (www.xprograaming.ru/com). Попробуйте. Может и
вам понравится. Hекоторые подходы применимы даже в одиночку. Хотя парный
программинг гораздо эфективнее.
В разрезе "нужности" отладчика: берется автоматизированя test suite (для С
кажется отже есть, или пишется за недолго, например при разглядывании
перловой). При появлении идеи/алгоритма СHАЧАЛА пишутся ТЕСТЫ. А потом
уже реализуется АЛГОРИТМ. Далее, make test, и смотрим какой из тестов "не
прошел". Вложеные циклы, говорите? Цикл выносится в цункцию. Пишется
тест на _эту_функцию_. Компилятор умеет инлайнить функции? Думаю да.
Т.е. по эфективности выполнения рпограммы мы ничего ен теряем, а по
эфективности программинга и поддержки получаем бонус - реализация алгортма
становится проще.
Структуры данных? Пишутся функции работы со структурами данных, и
тестируются. Мой опыт подказывает, что до 80% КОДА таким образом просто
пишется ОДИH РАЗ, и про него забывается. А на каждом make test проверят,
не зацепилось ли что-нибудь...
Остальные 20% отлично "оформляется логами".
VM> В некоторых случая без отладчика не обойтись, хотя логи тоже полезны,
назовите хотя-бы ТРИ случая. Один я зназвал - получить backtrace из
корки. Еще пару, будьте любезны.
VM> поэтому единственный верный путь это использование всех средств:
VM> отладичка и логов.
единственно верный пусть - использование головы.
--
Bor.
--- ifmail v.2.15dev5
* Origin: BorHomeLand (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/2541525f0b55.html, оценка из 5, голосов 10
|