Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.59/70: Рейтинг темы: голосов - 70, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 65

Отладка кода (программы) во FreeBasic

21.02.2024, 01:11. Показов 17689. Ответов 224

Студворк — интернет-сервис помощи студентам
Уважаемые программисты. Подскажите - как производится наладка отладка (не редактирование) программы (кода) во FreeBasic.
В QB это делалось просто. В меню Debug командой toggle breakpoint метится строка до которой проверить.
После запуска идет проверка, отмечаются ошибки, проблемы.
У меня во FreeBasic этот метод не работает. Программа на метку не реагирует, действия не совершаются. Прошу помощи.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.02.2024, 01:11
Ответы с готовыми решениями:

Компиляция программы Qbasic в Freebasic
По мере надобности компиляции одной из старых программ, написанных давным давно в Qbasic, установил Freebasic (OS Ubuntu). Пытаюсь...

Грамотная отладка программы, подмога в структуризации кода
Сразу прошу прощения, если ошибся разделом. Написал программу. Она простая. Она сжимает выбранную папку в zip и кладёт куда нужно. ...

Отладка программы в Delphi(нужно подредактировать текст чужой программы)
Взял у одногруппника похожую, на свою программу, нужно переделать под свое задание. А я сам чайник, и не могу понять, что там лишнее, а...

224
Эксперт по электронике
6878 / 3301 / 340
Регистрация: 28.10.2011
Сообщений: 12,964
Записей в блоге: 7
02.03.2024, 15:38
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от CoderHuligan Посмотреть сообщение
В книге Йодана о структурном программировании, автор упомянул разговор с одним проф программистом, который для имен процедур, переменных и т.д. использовал такие имена: f123, v34 и т.п. На вопрос почему так, он ответил: это позволяет тем, кто будет разбираться в коде чаще смотреть в документацию, так как имена часто не позволяют четко понять что делает та или иная функция. И он был прав, хотя Йодан и критиковал такой подход.
Преднамеренное запутывание ведет к увеличению времени разработки и случайным ошибкам. У людей ассоциативное мышление и GetFileByte() намного понятнее чем f123().
Можно еще предметы цифрами называть. Вместо того чтобы сказать "Принеси пожалуйста мне бумагу и карандаш", скажите - "Принеси пожалуйста мне 18488 и 203450". Непонятно? Загляни в документацию и узнаешь что я просил.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Добавлю, что подобный подход еще снимает с программиста нагрузки по выдумыванию имен идентификаторов.
Что по вашему находится в функции f1234(). Какую задачу она решает? Аналогично с переменными, индексами массивов и т. д.

По поводу остального. Даже комментировать не буду. Почти со всем не согласен.
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
02.03.2024, 17:46
Цитата Сообщение от Quiet Snow Посмотреть сообщение
По хорошему он должен быть написан сам на себе, для того, чтобы показать самодостаточность.
Считаю это плохой практикой. Вот недавно пытался разбирать код одного компилятора, который написан на самом себе. Столкнулся с одной проблемой. Оказывается, что код некоторых функций невозможно "подглядеть", так как они чисто системные, то есть зашиты в самом exe компилятора!!! А что туда "зашили" разрабы - очень большой секрет.. А лезть как бы в сам exe это еще та история, как бы не хочется.. То есть раскрутить логику работы компилятора если он изваян на самом себе - ну это конечно прикольно. Только возникает вопрос: а нафига?.. Зачем это делать? Чтобы что? Чтобы показать, что наш компилятор настолько крут, что может с собой? Так это можно тестом сделать. Или разрабы что-то прячут в системных функциях? Где исходный код самого exe? А его по сути нет, когда мы создали обертку, и навечно зашили что-то куда-то. Подозрительно всё это..
Цитата Сообщение от locm Посмотреть сообщение
Что по вашему находится в функции f1234()
Наводим курсор мыши на данную лексему и видим подсказку. Никаких проблем. А вот понять что такое GetFileByte() я не могу, потому что:
1. это чистый эзопов язык.
2. все равно нужно описание, ибо не понятно, что я хочу: получить один байт или несколько или весь файл, и что такое это байт, и т.п. Вопрос куча и приходится читать определение, а значит лезть в код. А лезть в код, это значит лезть в болото.
0
Эксперт по электронике
6878 / 3301 / 340
Регистрация: 28.10.2011
Сообщений: 12,964
Записей в блоге: 7
02.03.2024, 19:08
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Наводим курсор мыши на данную лексему и видим подсказку.
Где?
Подсказки не появляются сами собой!

Цитата Сообщение от CoderHuligan Посмотреть сообщение
А вот понять что такое GetFileByte() я не могу
То есть по вашему для f1234() обязательно появится подробнейшая подсказка, а для GetFileByte() ее не будет?
Это двойные стандарты? Подстраивание ситуации под себя? Или может что-то еще?

Цитата Сообщение от CoderHuligan Посмотреть сообщение
все равно нужно описание, ибо не понятно, что я хочу: получить один байт или несколько или весь файл
Что для вас непонятно в имени функции GetFileByte()? По моему очевидно что она читает один байт из файла.
Если бы было больше байта, функции логичнее дать имя GetFileBytes() или GetFileData().

А вот что делает функция f1234() совершенно не понятно. Может она возвращает число 1234?
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
03.03.2024, 00:43
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Для чего создаются стандарты?
Они обычно создаются перед созданием компилятора, QB же создан был ещё до этого самого стандарта,
а стандарт - больше похож на бумагу, которой можно подтереться, т.к. там просто запечатлено
то, что было в компиляторах того времени(что пишут обычно в книжках по бейсику).
И когда люди пишут стандарт языком "больше бумаги - чище задница" то примерно так оно и получается,
что это больше бюрократия и формальность нежели свод каких-то принципов и актуальных требований.
GOTO не убрали ни из Паскаля, ни из Си, поэтому не вижу смысла убирать его, однако числовые метки,
GOSUB и всякое старье типа PLAY и касательно "световых перьёв", надо бы выпилить и заменить чем-то
более актуальным, например звуковой библиотекой и работой с тач скрином(если мы используем планшет)
именно в современном стандарте языка если бы он сущестовал.

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

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Значит не снимаются. А РФ есть правоприемница СССР. Поэтому до сих пор актуален.
В документе чётко прописаны его даты "актуальности". И даты поверок, там должны были происходить раз в 3 года,
однако бюрократы в, трещащей на тот момент по швам, стране посчитали, что насрать на актуализацию стандарта
и гораздо проще отменить всякие сроки давности. Чтобы ты понимал это равносильно снятию ограничения
президентских сроков в конституции, примерно тот же "эффект". Именно поэтому документ дошёл до нас в
архивном виде документа СССР актуализированного 1 раз с 89 по 92-й, т.е. времён DOS и текстовой Windows 2.0.

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



Это 1988 год. Т.е. уже тогда понимание рудиментарности GOSUB было отчётливое.
Ну и опять же этот стандарт актуален лишь в отсталой в IT плане стране типа России. В миру его отозвали.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
03.03.2024, 01:17
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Считаю это плохой практикой. Вот недавно пытался разбирать код одного компилятора, который написан на самом себе. Столкнулся с одной проблемой. Оказывается, что код некоторых функций невозможно "подглядеть", так как они чисто системные, то есть зашиты в самом exe компилятора!!!
Очевидно же, что это не означает, что он написан сам на себе полностью, включая генерацию НУ кода.
Так бывает, когда кто-то решает, что проще взять чужие библиотеки и включить их в ЯП
в качестве "внутренних" функций. Как понимаешь переписывать подобные работы они с си
на бейсик не будут ибо нет соотв. компетенций.

Добавлено через 20 минут
Цитата Сообщение от locm Посмотреть сообщение
А вот что делает функция f1234() совершенно не понятно. Может она возвращает число 1234?
Одна, не совсем понятная функция, при наличии документации - не проблема,
а вот пара сотен - заставят человека облысеть, т.е. как хулиган хочет чтобы кодер
постоянно лазил по документации. Сущности без имени это отдельная категория,
причём чисто психологически, это постоянные лишние сверки, трата времени и внимания.
Чтобы представить себе последствия достаточно представить себе кепчи, ты быстро
хочешь написать запрос в гугл и тут тебе вылезает кепча, ты её и так дрючишь и сяк
дрючишь, появляется заново и всё, протрахавшись в итоге с кепчей минуты две
появляется вожделенная строка поиска, а вот что спросить хотел - уже и не помнишь.
То же самое, те же последствия. Думаю в "современном мире" было у каждого.
0
Эксперт по электронике
6878 / 3301 / 340
Регистрация: 28.10.2011
Сообщений: 12,964
Записей в блоге: 7
03.03.2024, 01:40
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Одна, не совсем понятная функция, при наличии документации - не проблема,
Если она только одна.
А если их сотни с ничего не значащими именами?

Цитата Сообщение от Quiet Snow Посмотреть сообщение
а вот пара сотен - заставят человека облысеть
Вот и я о том же что это плохая практика.
Мне приходилось анализировать код после обфускатора (никакой документации ответственно не было). У всех функций, переменных, массивов, их индексов и т. д. числовые имена.
Анализ кода требовал предварительно разобраться что и для чего нужно и изменить имена на понятные. Это заняло очень много времени.
Поэтому я не понимаю зачем вносить путаницу используя ничего не значащие имена? Это в дальнейшем создаст сложности при доработке кода.
1
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
03.03.2024, 11:47
Цитата Сообщение от locm Посмотреть сообщение
Где?
В редакторе кода специально заточенным под данную концепцию.
Цитата Сообщение от locm Посмотреть сообщение
То есть по вашему для f1234() обязательно появится подробнейшая подсказка, а для GetFileByte() ее не будет?
Это двойные стандарты?
Будет. И есть. Даже в dos было. Контекстная справка называется. Но можно было бы сделать удобнее.
Цитата Сообщение от locm Посмотреть сообщение
Что для вас непонятно в имени функции GetFileByte()? По моему очевидно что она читает один байт из файла.
Совершенно не очевидно. Проблема в том, что вам необходимо запомнить вами же созданный язык. Хорошо. Но через годик вы его напрочь забудете. Потом, чтобы разобраться в коде вам придется всё вспоминать сначала. А другим разрабам придется учить его с нуля. Учить новый язык под КАЖДУЮ программу. Вопрос: зачем?
Цитата Сообщение от locm Посмотреть сообщение
А вот что делает функция f1234() совершенно не понятно. Может она возвращает число 1234?
Справка подскажет. Когда мы разбираем код функции мы уже знаем её назначение из справки. Когда поняли, то нам ненужно удерживать в памяти кучу ненужного мусора. А придуманное вами слово GetFileByte есть мусор. Ну это так и есть. Знаете почему программирование стало настолько сложным? Потому что людям приходиться учить языки фреймворков в придачу к базовым знаниям языков программирования. А ведь достаточно знать только синтаксис ЯП + свой родной язык, ну или еще английский. Всё. Ну и уметь алгоритмировать, создавать архитектуру. А сейчас получается так: чел приходит в контору и три месяца вынужден учить язык фреймворка (например игрового движка) и только потом его допускают в святая святых. То есть учить вот этот лексикон движка, который сваяли авторы.
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Достаточно было двух режимов FB и QB.
Достаточно было сделать ядро с qb, а поверх его дополнительные возможности.
Цитата Сообщение от Quiet Snow Посмотреть сообщение
И даже тогда умные люди уже не использовали GOSUB.
Кстати интересовался старым кодом на gwbasic и нашел сайт где были исходные коды программ. Так вот там все это очень широко использовалось.
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Сущности без имени это отдельная категория,
причём чисто психологически, это постоянные лишние сверки, трата времени и внимания.
Сущностей без имени не бывает. При наличии описания библиотеки, где все разложено по категориям, несложно найти нужную функцию. Вставили и тут же забыли.
Более того, если бы язык запрещал создавать эзопов язык, то по формату имени мог бы делать полезную работу. К тому же не потребовались бы ключевые слова вида: function и т.п., так как из самого имени ясно с чем мы имеем дело. То есть язык можно сильно упростить.
0
 Аватар для Mikle Quits
782 / 300 / 17
Регистрация: 21.01.2023
Сообщений: 525
03.03.2024, 12:17
Цитата Сообщение от CoderHuligan Посмотреть сообщение
интересовался старым кодом на gwbasic и нашел сайт где были исходные коды программ. Так вот там все это очень широко использовалось.
Естественно. У gwbasic то других вариантов не было, разве что вместо GoSub использовать GoTo (и вместо Return тоже).
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Сущностей без имени не бывает.
Бывает. Например, в VB6 можно создать экземпляр класса внутри выражения и использовать какое-нибудь его свойство. А после выполнения выражения этот объект без имени будет уничтожен потому, что на него нет ни одной ссылки (читай "имени").
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
03.03.2024, 12:54
Цитата Сообщение от Mikle Quits Посмотреть сообщение
Бывает.
Ну да. Еще анонимные функции, например в javascript. Согласен. Правда на внутреннем уровне имя все-таки имеется: указатель на сущность. Причем это есть чистое число.
Ну и еще можно добавить: а как же все эти имена, которые определяют тип в basic: myvar% и т.п.? То есть компилятор знает некий формат имени сущности, по которому определяет её тип. Это шаг в нужном направлении..

Добавлено через 13 минут
Цитата Сообщение от locm Посмотреть сообщение
Анализ кода требовал предварительно разобраться что и для чего нужно и изменить имена на понятные. Это заняло очень много времени.
Поэтому я не понимаю зачем вносить путаницу используя ничего не значащие имена? Это в дальнейшем создаст сложности при доработке кода.
А вы не задались вопросом: а где тут документация? Конечно если её нет, то разобраться будет сложно. Но я вас уверяю: при наличии грамотного описания системы на родном языке или на английском, разобраться в системе можно очень быстро.

Добавлено через 3 минуты
А нынешние программисты как-будто соревнуются между собой - кто напишет более непонятный код. Более того, говорят, что комментарии не нужны, ведь код настолько самоочевиден. Если бы я был руководителем, то не взял бы на работу такого человека. Работа в полиции это не только погоня за преступниками, но 90% времени - бумажная работа, отчеты, рапорты и пр. И программисты должны не только за чашечкой кофейку придумывать алгоритмы, но писать документацию.
1
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 65
03.03.2024, 13:49  [ТС]
Цитата Сообщение от Mikle Quits Посмотреть сообщение
Цитата Сообщение от volchv Посмотреть сообщение
В основе колебаний природных процессов - элементарные синусоиды. Из них строится всё многообразие этого мира, не методом кирпичей, а с сжатий, растяжений, скручиваний,
раскручиваний. Можно залезть в дебри искусственно навороченных теорий, забыв об этой базе и заблудиться в формулах, формулировках. Но надо оглянуться и вспомнить, колебания ниоткуда не пришли и никуда не пропали. И они суть всех процессов, и соответственно, суть законов и проявлений"

Именно на эту тему мой пример из позапрошлого сообщения.
В неумелой суете где то потерялось упомянутое сообщение. Можно повторить?
0
 Аватар для Mikle Quits
782 / 300 / 17
Регистрация: 21.01.2023
Сообщений: 525
03.03.2024, 14:22
Цитата Сообщение от volchv Посмотреть сообщение
Можно повторить?
Можно. Вот:
Цитата Сообщение от Mikle Quits Посмотреть сообщение
Тема подвигла меня сделать-таки пример синтеза звука методом физического эмулирования процесса. Выложил в готовых примерах по VB6.
Речь про этот пример:
Готовые решения и полезные коды на Visual Basic 6.0
0
Эксперт по электронике
6878 / 3301 / 340
Регистрация: 28.10.2011
Сообщений: 12,964
Записей в блоге: 7
03.03.2024, 14:54
Цитата Сообщение от CoderHuligan Посмотреть сообщение
В редакторе кода специально заточенным под данную концепцию.
А если у вас нет такого редактора и открыли код в блокноте или в Notepad++?
Код станет совершенно непонятным?

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Совершенно не очевидно. Проблема в том, что вам необходимо запомнить вами же созданный язык. Хорошо. Но через годик вы его напрочь забудете. Потом, чтобы разобраться в коде вам придется всё вспоминать сначала. А другим разрабам придется учить его с нуля. Учить новый язык под КАЖДУЮ программу. Вопрос: зачем?
Через год или даже раньше забуду для чего предназначена функция f1234(), но не GetFileByte().
Даже в чужом коде для меня будет очевидно что функция GetFileByte() читает байт из файла. А f1234() может делать все что угодно.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Справка подскажет.
Код должен быть самодокументированным, а не таким что назначение переменных, массивов, функций и т. д. нужно постоянно уточнять в документации.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Когда поняли, то нам ненужно удерживать в памяти кучу ненужного мусора.
Вместо понятных имен вы предлагаете по любому поводу смотреть документацию.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Учить новый язык под КАЖДУЮ программу. Вопрос: зачем?
Действительно зачем?
В разных программах функция f1234() может выполнять совершенно другие задачи. Короче сами все усложняете.
Код должен быть таким чтобы как можно реже заглядывать в документацию для уточнения того или иного момента.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Потому что людям приходиться учить языки фреймворков в придачу к базовым знаниям языков программирования.
То есть если бы имена функций были типа f1234() то ничего учить не пришлось бы? И не важно что в разных прогах функция с таким именем выполняет разные задачи?

Цитата Сообщение от CoderHuligan Посмотреть сообщение
А сейчас получается так: чел приходит в контору и три месяца вынужден учить язык фреймворка (например игрового движка)
То есть если бы функции игрового движка имени имена f1(), f2(), f3(), f4() и т. д. то ничего учить не пришлось бы?
Без разницы для чего функция, вызываем любую и может угадаем и что-то как-то будет работать!
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
03.03.2024, 15:25
Цитата Сообщение от locm Посмотреть сообщение
А если у вас нет такого редактора и открыли код в блокноте или в Notepad++?
Код станет совершенно непонятным?
Почему? Есть дока. Повторяю: код не по исходному коду надо понимать, а по доке на код.
Цитата Сообщение от locm Посмотреть сообщение
Код должен быть самодокументированным, а не таким что назначение переменных, массивов, функций и т. д. нужно постоянно уточнять в документации.
То есть вы против документации? Тогда вопросов больше не имею.
Цитата Сообщение от locm Посмотреть сообщение
Вместо понятных имен вы предлагаете по любому поводу смотреть документацию.
Я же не мазохист. Понимаете: это для ВАС они понятны, - для того, кто их СОЗДАЛ. Для других они могут быть не очевидны.
Цитата Сообщение от locm Посмотреть сообщение
То есть если бы имена функций были типа f1234() то ничего учить не пришлось бы? И не важно что в разных прогах функция с таким именем выполняет разные задачи?
Они могут выполнять разные задачи. Но описываются они на своем родном языке, - на нормальном человеческом языке, а не на GetFileByte. Вот этот последний язык - НЕЧЕЛОВЕЧЕСКИЙ!
Цитата Сообщение от locm Посмотреть сообщение
То есть если бы функции игрового движка имени имена f1(), f2(), f3(), f4() и т. д. то ничего учить не пришлось бы?
Без разницы для чего функция, вызываем любую и может угадаем и что-то как-то будет работать!
Зачем гадать? Создайте описание, поместите его в help файл, среда сама подскажет, подсветит, переместит, (варианты).
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
03.03.2024, 15:30
Цитата Сообщение от CoderHuligan Посмотреть сообщение
То есть язык можно сильно упростить.
Вот вам программа на сильно прощённом языке программирования, разбирайтесь:
Code
1
2
>+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.>>>++++++++[<++++>-]
<.>>>++++++++++[<+++++++++>-]<---.<<<<.+++.------.--------.>>+.>++++++++++.
Это же ваша мечта, идеальный случай, АБСОЛЮТ.
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
03.03.2024, 16:04
Цитата Сообщение от Замабувараев Посмотреть сообщение
разбирайтесь
А ничего иного я от вас и не ожидал. Разговор окончен.

Добавлено через 10 минут
Цитата Сообщение от locm Посмотреть сообщение
Вместо понятных имен вы предлагаете по любому поводу смотреть документацию.
В самом коде можно (и нужно!) оставить комментарии, которые кратко описывают назначение кода. То есть вот у вас
int f1234(bla, bla)// функция делает то-то и то-то
{
var v1//переменная для ....
bla bla
}
Ну хотя бы вот это. Или вот этому даже надо учить?))
0
Эксперт по электронике
6878 / 3301 / 340
Регистрация: 28.10.2011
Сообщений: 12,964
Записей в блоге: 7
03.03.2024, 16:31
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Почему? Есть дока. Повторяю: код не по исходному коду надо понимать, а по доке на код.
К коде несколько сотен или тысяч функций ничего не значащими с цифровыми именами и предлагаете каждый раз открывать документацию чтобы посмотреть для чего та или иная функция?
У вас очень много свободного времени и не знаете чем себя занять?

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Я же не мазохист.
А не скажешь учитывая что вы предлагаете!

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Вот этот последний язык - НЕЧЕЛОВЕЧЕСКИЙ!
То есть английский это не человеческий язык?
Что еще нового расскажите?

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Создайте описание, поместите его в help файл, среда сама подскажет, подсветит, переместит,
Что блокнот покажет? Максимум комменты. Предлагаете комментировать каждый вызов функции подробно объясняя что это и для чего вместо того чтобы дать функции имя из которого понятно ее назначение?

Цитата Сообщение от CoderHuligan Посмотреть сообщение
В самом коде можно (и нужно!) оставить комментарии
Нужно там где они нужны. Когда код самодокументированный, комментов нужно гораздо меньше чем когда в нем путаница с ничего не значащими именами.
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
03.03.2024, 17:32
locm,
Я говорю только о том, что совершенно недостаточно "самодокументируемых" имен, для понимания работы системы. Вы можете писать как привыкли, но обязаны создать описание на человеческом языке. Без вербльюжьей нотации.
0
 Аватар для markiza-inc
930 / 257 / 100
Регистрация: 21.10.2012
Сообщений: 621
03.03.2024, 18:29
Locm, CoderHuligan в чем-то прав. GetFileByte() не явно читает байт файла. Вот GetByteFromFile() более понятна. Каждый под себя, под свои привычки, придумывает имена процедур и функций. И однозначно их не всегда можно интерпретировать.

Комментарий в любом случае нужен, но в разумных пределах. А не как на форуме разжевывать каждую строку, и даже каждую переменную.

И по поводу документации CoderHuligan прав. Она нужна! На некоторых предприятиях закупалось оборудование без нужной документации, и в итоге это оборудование так и не использовалось, никому не хотелось изучать его "кишки". Тем более если под них нужно было писать управляющую программу.
И даже бывало такое, есть исходный код программы к оборудованию, но нет комментариев в нем и другой информации. А его нужно доработать, т.к. он не совсем то, что нужно делает с оборудованием. Т.е. программа была написана под управление другими функциями. И нахрен он никому не нужен такой код. И оборудование простаивает. Это было и раньше, это есть и сейчас. А все из-за того, что начальники, закупающие оборудование пытаются сэкономить.
1
Эксперт по электронике
6878 / 3301 / 340
Регистрация: 28.10.2011
Сообщений: 12,964
Записей в блоге: 7
03.03.2024, 19:13
Цитата Сообщение от markiza-inc Посмотреть сообщение
GetFileByte() не явно читает байт файла. Вот GetByteFromFile() более понятна.
А f1234() еще понятней?
Именовать функции можно как удобно, но когда имя бессмысленно это очень плохая практика программирования.

markiza-inc, посмотрите что предлагает CoderHuligan. Именовать функции как угодно без смысловой нагрузки и заполнять этот пробел документацией.
Это неправильно. Документация нужна, но код должен быть таким чтобы как можно реже к ней обращаться, а не на каждом шагу потому что имена в коде ничего не означают.
1
 Аватар для markiza-inc
930 / 257 / 100
Регистрация: 21.10.2012
Сообщений: 621
03.03.2024, 19:25
locm, так я и написал, что он прав частично, именно про комментарии и документацию. А именовать "бессмысленно" - бессмысленно! Именовать переменные и функции нужно в соответсвии со здравым смыслом. Они должны быть понятны. Если я уж про GetFileByte() написал, что она не совсем понятна, то f1234() и подавно бестолковое название.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.03.2024, 19:25
Помогаю со студенческими работами здесь

Отладка Кода
{ Console.WriteLine(&quot;Привет пользователь. Как тебя зовут?&quot;); string name = Console.ReadLine(); ...

Отладка кода
Я на форуме давно... и вот стало мне жутко интересно, кто как код отлаживает... потому 99% начинающих вообще никогда не слышали про...

Отладка кода
Олимпиадная задача : вводятся N строк описания товаров (стоимость, время завоза и время вывоза), N строк описания запросов (время захода...

Отладка кода
программа для удаления повторяющихся элементов в строке flag::Int-&gt;-&gt;Int flag n=FALSE flag n(x:xs) = if x ==n then TRUE ...

Отладка кода
Помогите пожалуйста отладить код. Собрал вот такое #include&lt;iostream&gt; int Check(int a) { int b; for(b = a * a; a &amp;&amp;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
160
Ответ Создать тему
Новые блоги и статьи
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано. . . .
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
Диалоги с ИИ
zorxor 23.05.2026
Насколько я понимаю - Вы - Искусственный Интеллект. Это так? Да, всё верно. Я — искусственный интеллект. Я представляю собой большую языковую модель, созданную для помощи в самых разных задачах. . . .
Модель здравосохранения 14. Собираем всю модель вместе.
anaschu 22.05.2026
Модель собрана. В будущих постах на видео я покажу, как она работает. В этом посте запускаем её, проверяем результаты и разбираем что можно с ней делать дальше. Перед запуском проверяем. . .
Модель здравоохранения 13. Добавление самой системы здравоохранения.
anaschu 22.05.2026
В предыдущем посте мы настроили болезни. Теперь добавим события, которые управляют здоровьем всего коллектива, а также настроим рабочий график и расчёт финансов. В Main создаём четыре события. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru