OberonCore
https://forum.oberoncore.ru/

Отладчик в BlackBox
https://forum.oberoncore.ru/viewtopic.php?f=1&t=6236
Страница 1 из 10

Автор:  budden [ Пятница, 02 Март, 2018 10:33 ]
Заголовок сообщения:  Отладчик в BlackBox

Модератор: Тема выделена из viewtopic.php?f=3&t=5809

Info21 писал(а):
Работаем над 1.7ш.

Хорошо. Отладчик будете включать туда?

Автор:  Сергей Оборотов [ Пятница, 02 Март, 2018 12:05 ]
Заголовок сообщения:  Re: Есть ли русификатор BlackBox 1.7 ?

budden писал(а):
Хорошо.
Помнится уже говорили о завершении. И вот опять... Хотя, так и надо, наверное.

Автор:  Info21 [ Пятница, 02 Март, 2018 22:05 ]
Заголовок сообщения:  Re: Есть ли русификатор BlackBox 1.7 ?

Отладчик включать не буду из принципа. Это разврат мозга на уровне импринтинга.

О завершении не говорилось. Говорилось, что на 1.7 делаются свои проекты -- это не школьная версия.

Кроме того, я никому ничего не должен.

Автор:  Сергей Оборотов [ Суббота, 03 Март, 2018 09:52 ]
Заголовок сообщения:  Re: Есть ли русификатор BlackBox 1.7 ?

Она и имелась в виду. Победа она одна на всех, не беспокойтесь так.

Автор:  Info21 [ Воскресенье, 04 Март, 2018 18:19 ]
Заголовок сообщения:  Re: Есть ли русификатор BlackBox 1.7 ?

Не люблю паразитов.

Автор:  budden [ Воскресенье, 04 Март, 2018 21:11 ]
Заголовок сообщения:  Re: Есть ли русификатор BlackBox 1.7 ?

Info21 писал(а):
Это разврат мозга на уровне импринтинга.

Чтобы диагностировать чужой мозг, нужна уверенность в корректности своего :) Может быть, в школе уместно умолчать про отладчик. И конечно, аскетизм имеет смысл. Но в профессиональном использовании человек без отладчика обладает, уж простите, пониженной конкурентоспособностью. А можно сказать и "ограниченно профпригоден".

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

Я не знаю, какова ваша мотивация отвержения отладчика, но мне известно такое изречение на эту тему: "если тебе нужен отладчик, значит, ты не понимаешь, как работает твой код".

С этим мнением есть две проблемы:

1. Подразумевается, что не понимать - это позорно.
2. Подразумевается, что код - мой.

Может быть, в школе это так. Но школа - это первый этап становления ИТ-профессионалов. А в индустрии расклад другой:

1. Код принципиально непостижим, его можно понять лишь местами и временами.
2. Код, скорее всего, не мой.
3. Иногда исходников вообще нет и, соответственно, нет даже объекта понимания.
4. Документация может не соответствовать действительности.
5. Чужой код может содержать ошибки.

Код постижим лишь локально, потому что в условиях работы профессионала кода просто-напросто слишком много, а время ограничено. Кроме того, ряд тонких ошибок (в т.ч. и в чужом коде, который я вызываю), может приводить к тому, что мой код работает не так, как он должен работать, исходя из его записи. Уже давно показано, что нет защиты от ошибок даже в простейших программах, типа сортировки массивов. Заявление кого-либо, что он может контролировать и "понимать" чужой код объёмом в сотни тысяч строк - это не более, чем безответственное бахвальство.

Поскольку документация и чужие модули содержат ошибки, а исходные тексты не всегда недоступны, алгоритм "прочитай код, прочитай документацию, пойми что не так и исправь", вообще говоря, не работает. Иногда может работать, но специалист должен быть готов к тому, что он не сработает. В этой ситуации остаётся изучать поведение живой программы, т.е. отладка.

И здесь отладчик является необходимым инструментом.

Есть ещё такое мнение: "можно отлаживаться логгированием или трассировкой, да и вообще отладку нужно заменять контрактами". На самом же деле, контракты нельзя применить, пока нет понимания, каковы они. В случае старого чужого кода это уже поздно. Отладка логгированием и трассировкой - это частные случаи отладки, их может делать отладчик, причём зачастую отладчик позволяет сделать то же самое на порядок-два удобнее. В конце-то концов вывод в лог реализуется через брекпойнт с действием "напечатай", но в отладчике его можно ставить без перезапуска и пересборки программы, а это важно.

Далее, некоторые виды ошибок почти невозможно локализовать без отладчика. Например, повреждение памяти, когда кто-то незаконно пишет в мой объект и портит его. Искать эту ошибку чтением исходников - обычно задача просто нереально сложная. Точки останова на записи в память позволяют найти эту ошибку быстро и зачастую это единственный способ вообще найти эту ошибку. Поскольку установка ограды на льва в пустыне путём модификации исходных текстов программы переносит точку повреждения на другой объект или на другое время. Лев телепортируется.

Далее, недавно я узнал об отладке процессоров. Оказывается, их вообще нельзя отлаживать печатью. Поскольку печать - это системный вызов, который кардинально меняет весь процесс работы. То же можно сказать и про оптимизированный код. Вставка печати приведёт к тому, что код скомпилируется по-другому. Ошибка в оптимизаторе ускользнёт.

Не хотел бы спорить об этом, но я чувствую, что уже пора писать статью. Слишком много встречаю людей, которые высокомерно фыркают на отладчики. Это какой-то массово распространённый миф.

Для самоконтроля вы можете задаться вопросом: какие были самые большие программы с самой маленькой долей вашего кода, которые вам приходилось править? У меня это была программа из 500000 строк на лиспе, где моего кода было 0. Я кое-что сумел исправить, и без отладчика мне пришлось бы ооочень туго.

Автор:  Сергей Оборотов [ Воскресенье, 04 Март, 2018 22:14 ]
Заголовок сообщения:  Re: Есть ли русификатор BlackBox 1.7 ?

budden писал(а):
5. Чужой код может содержать ошибки.

Нельзя объять необъятное.

Автор:  Comdiv [ Воскресенье, 04 Март, 2018 23:53 ]
Заголовок сообщения:  Re: Есть ли русификатор BlackBox 1.7 ?

Info21 писал(а):
Отладчик включать не буду из принципа. Это разврат мозга на уровне импринтинга.
Когда я учился в школе я видел, как некоторые ученики вместо того, чтобы подумать, бросались в пошаговую отладку, пытаясь понять, что же они сами натворили. Соглашусь, что в школе это не нужно.

Автор:  Comdiv [ Воскресенье, 04 Март, 2018 23:56 ]
Заголовок сообщения:  Re: Есть ли русификатор BlackBox 1.7 ?

budden писал(а):
Для самоконтроля вы можете задаться вопросом: какие были самые большие программы с самой маленькой долей вашего кода, которые вам приходилось править? У меня это была программа из 500000 строк на лиспе, где моего кода было 0. Я кое-что сумел исправить, и без отладчика мне пришлось бы ооочень туго.
Вы ведь неспроста решили отказаться от этого проекта?

Автор:  Comdiv [ Понедельник, 05 Март, 2018 00:09 ]
Заголовок сообщения:  Re: Есть ли русификатор BlackBox 1.7 ?

budden писал(а):
мне известно такое изречение на эту тему: "если тебе нужен отладчик, значит, ты не понимаешь, как работает твой код".
Подтверждаю, в мэйнстриме не понимать, как работает твой и чужой код - это норма. И это ужасно. Дело не ограничивается пошаговым отладчиком, он лишь часть общей картины.

Работа с пошаговым отладчиком противоположна свойству алгоритмов, которое называется массовость. Люди верят, что поняли код по 1-му или нескольким прогонам, в то время как алгоритм должен быть корректен для большого разнообразия входных данных, и затачивать своё понимание на конкретные условия в отладке - это процесс, обречённый для провал, если задача - корректный алгоритм.

Пошаговая отладка полезна для изучения обфусцированного кода. Если команда пишет обфусцированный код сама, без обфускатора, то пошаговый отладчик им необходим. Пытаться убедить в неправильности подхода, как правило, бесполезно.

Автор:  Comdiv [ Понедельник, 05 Март, 2018 00:17 ]
Заголовок сообщения:  Re: Есть ли русификатор BlackBox 1.7 ?

budden писал(а):
Далее, некоторые виды ошибок почти невозможно локализовать без отладчика. Например, повреждение памяти, когда кто-то незаконно пишет в мой объект и портит его. Искать эту ошибку чтением исходников - обычно задача просто нереально сложная.
Странное утверждение. Для поиска повреждения памяти используются специальные средства, и это не пошаговая отладка, что было бы крайне накладным. Даже в Си это делается достаточно неплохо.

Автор:  Info21 [ Понедельник, 05 Март, 2018 00:30 ]
Заголовок сообщения:  Re: Есть ли русификатор BlackBox 1.7 ?

Предлагаю выделить тему "Пошаговый отладчик в школьной сборке?"

Автор:  Сергей Оборотов [ Понедельник, 05 Март, 2018 01:53 ]
Заголовок сообщения:  Re: Есть ли русификатор BlackBox 1.7 ?

Comdiv писал(а):
budden писал(а):
Для самоконтроля вы можете задаться вопросом: какие были самые большие программы с самой маленькой долей вашего кода, которые вам приходилось править? У меня это была программа из 500000 строк на лиспе, где моего кода было 0. Я кое-что сумел исправить, и без отладчика мне пришлось бы ооочень туго.
Вы ведь неспроста решили отказаться от этого проекта?
Тоже любопытно.

Автор:  Kemet [ Понедельник, 05 Март, 2018 07:07 ]
Заголовок сообщения:  Re: Есть ли русификатор BlackBox 1.7 ?

Info21 писал(а):
Отладчик включать не буду из принципа. Это разврат мозга на уровне импринтинга.

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

Автор:  Info21 [ Понедельник, 05 Март, 2018 10:48 ]
Заголовок сообщения:  Re: Есть ли русификатор BlackBox 1.7 ?

Удаление из класса отладчика -- это методический фокус гораздо более примитивного уровня, чем тот, на котором тут философствуют контупероиды.

Публика глубоко (повторяю, глубоко) не понимает, что такое школа и школьники -- поэтому она не может проинтерпретировать ту фразу Вирта.

Ну и -- в школе отнюдь не чинят тонны кода.

Как не чиню их я -- просто выбрасываю гуано. Но это специфика профессии.

Автор:  Kemet [ Понедельник, 05 Март, 2018 13:20 ]
Заголовок сообщения:  Re: Есть ли русификатор BlackBox 1.7 ?

учить пользоваться инструментом нужно со школы. Учить отлаживать программы. Не на уровне: вот это, ребята отладчик, но он не нужен, но если хотите, вот тут нажмите пимпочку, сюда забейте текст, тут откроется вьюшка, здесь вылезет какая-то фиговина, ну в общем это сложно, лучше используйте Log.OutXXX ))).
Их нужно учить отлаживать программы. Они должны знать что такое отладка. Принципы и способы отладки. Их нужно сразу учить, чтобы сформировать понимание, когда нужно использовать отладчик, когда логирование, когда трассировку... а когда их комбиноровать.
Отладка, на самом деле, не простая штука, и чесм раньше будет заложен фундамент, тем лучше во всех смыслах.
Проблема в том, что преподы редко понимают, что такое отладка, поэтому и боязь всяких страшных слов типа пошаговый отладчик).
Ну и выше человек верно сказал. Есмли мы взялись за отладчик, отлаживать нужно именно тот бинарник, на котором воспроизводится ошибка, без изменений. Потому что внесение дополнительных переменных, вызовов, меняет картину. Бывает так, что проблема вообще не в этом исходном коде. Хороший пример здесь был с OO2C, когда кто-то скомпилировал алгоритм отрисовки линии, и он не работал как нужно, но внесение лишней переменной совершенно меняло картину. Правила Юниттестирования также требуют, чтобы тестируемый код и распространяемый код решения не отличались, а иначе не понятно, что же вы там тестировали))_ А поэтому пихать туда вывод, для отладки, а потом удалять, не правильный подход. Или не удалять или не пихать, но оставлять лишний код, не несущий смысловой нагрузки - моветон.

Автор:  Comdiv [ Понедельник, 05 Март, 2018 14:21 ]
Заголовок сообщения:  Re: Есть ли русификатор BlackBox 1.7 ?

Kemet писал(а):
учить пользоваться инструментом нужно со школы.
С какого перепугу? В информатике и так хватает бардака.
В школе нужно учить основам. Иначе, это всё равно что математику учить через работу с калькуляторами, а физику заменить изучением работы с промышленными приборами.

Недавно я слышал недовольство, что в университетах не учат работать с git. Это где-то оттуда же.

Автор:  Trurl [ Понедельник, 05 Март, 2018 15:31 ]
Заголовок сообщения:  Re: Есть ли русификатор BlackBox 1.7 ?

Учить нужно хорошему, плохому и сами научатся.

Автор:  Kemet [ Понедельник, 05 Март, 2018 16:18 ]
Заголовок сообщения:  Re: Есть ли русификатор BlackBox 1.7 ?

Comdiv писал(а):
Kemet писал(а):
учить пользоваться инструментом нужно со школы.
С какого перепугу? В информатике и так хватает бардака.
Перепуг там только у преподов может быть, учителя дышат ровно. Понятие Отладка программы, как инструмент, должно закладываться с первых шаког обучения программированию. Да я даже вспоминаю, давным давно, когда компьютеры были большими, типа Корвет или УКНЦ, и там стоял Бейсик, или в лучшем случае, Паскаль, нас учили пользоваться средствами отладки, хотя их там не великое множество, но было, halt ( с дампом, регистрами и девками), дамп памяти, регистры, впрочем и настоящий отладчик был, хексредактор)) ( хотя, ничего смешного, DESS был крутейшей вещью на тот период).
Все это нам показывали в школе, и учили пользоваться отладкой. И это вполне благодатно сказалось на нашем развитии.
Да и как не пользоваться отладкой, если постоянно что-то висло, и не скомпилировавшаяся или неверно работающая программа, могла спокойно скомпилироваться или заработать на следующем уроке))). Здесь без отладки никак, нужно понять, в чем проблема, в программе, в компиляторе или в Фодосе каком-нибудь.
Comdiv писал(а):
В школе нужно учить основам.

Это и есть основы.
Comdiv писал(а):
Иначе, это всё равно что математику учить через работу с калькуляторами, а физику заменить изучением работы с промышленными приборами.

А я художников учил пользованию ПК и программированию через рисование, в редакторе, а потом и программно. Это был единственный способ, используя понятную для них предметную область. Потому что вряд ли они написали бы программу для решения системы уровнений))) не их это тема. И они, в итоге, программировали лучше других курсов.
Comdiv писал(а):
Недавно я слышал недовольство, что в университетах не учат работать с git. Это где-то оттуда же.
Это не оттуда, но основы управления исходным кодом программисту нужно дать. Хотя-бы объяснить и постоянно напоминать, приучая.
А то приходят потом такие студиозусы и нихрена понять не можешь, что они столько лет в вузе делали и за что преподам зарплаты платят, раз мы потом этих студентов учим и переучиваем.

Автор:  Info21 [ Понедельник, 05 Март, 2018 20:15 ]
Заголовок сообщения:  Re: Есть ли русификатор BlackBox 1.7 ?

Trurl писал(а):
Учить нужно хорошему, плохому и сами научатся.
Золотые слова.

Пушкин, теорема Пифагора, Оберон.

Страница 1 из 10 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/