Чего мне не хватает в FreePascal

Любые обсуждения, не нарушающие правил форума.

Модератор: Модераторы

Re: Чего мне не хватает в FreePascal

Сообщение GrayEddy » 23.05.2011 22:23:57

Как сказать - отладчик иногда и позарез нужен для логики чужого кода.
На сегодняшней работе поддерживаю приложения, созданные бывшим коллегой, на код без бутылки не взглянешь в некоторых местах, вообще изврат, так что приходится ставить точки останова и трассировать некоторые места, ну и смотрим стек вызовов, чтобы дошло.
GrayEddy
постоялец
 
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Re: Чего мне не хватает в FreePascal

Сообщение kipar » 24.05.2011 11:41:54

hinst писал(а):Те, кто убеждены, что отлаживать без отладчика труднее - вы просто привыкли к отладчику.

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

Когда отладчика нет (скажем, код для микроконтроллеров или, как ни печально, код на freepascal), то остается или пичкать код функциями вывода в лог, или искать ошибку логически. Или есть еще какие-то методы отладки?
Иногда (например для понимания временной последовательности происходящих событий) вывод в лог удобнее, так как не нарушает "естественный ход вещей". Но во многих случаях отладчик удобнее хотя бы тем, что не надо перекомпилировать программу для проверки очередной гипотезы.
kipar
новенький
 
Сообщения: 78
Зарегистрирован: 04.03.2010 12:15:54

Re: Чего мне не хватает в FreePascal

Сообщение dedm0zaj » 03.11.2012 19:36:17

а вот в blackbox отладчик отсутствует и не просто так.

вот что грит сам вирт:
«... Нет другого, более сильного стимула для аккуратного программирования, чем отсутствие отладчика.
Столь широко распространенное смещение акцента от языков программирования в сторону сред программирования (в особенности отладчиков), которое произошло за последнее десятилетие, является весьма прискорбным фактом и крайне вредно в смысле обучения программированию.
... В частности, находящийся в ядре сборщик мусора представляет собой программу, которую просто нельзя отладить, независимо от того, есть отладчик или нет. Добиться его корректности можно только путем четкого и аккуратного проектирования.
... отладчики лечат только следствие, а не саму болезнь.»

и ещё пишут:
"Альтернативой наивному подходу (т.е программированию с отладчиком) являются систематические методы, в которых программа выводится из требуемых пред- и постусловий. Такое проектирование опирается на систематическую верификацию (доказательство, проверку) логических свойств программы, которые должны удовлетворяться в ключевых точках программы (пред- и постусловия для процедур, инварианты циклов и т.п.). Тогда и «отладка» в идеале сводится к устранению синтаксических ошибок и мелких описок"

взято отсюда http://www.inr.ac.ru/~info21/blackbox/d ... _otlad.htm
dedm0zaj
постоялец
 
Сообщения: 108
Зарегистрирован: 05.10.2012 19:55:20

Re: Чего мне не хватает в FreePascal

Сообщение alexey38 » 04.11.2012 04:08:23

dedm0zaj писал(а):а вот в blackbox отладчик отсутствует и не просто так.
вот что грит сам вирт:
«... Нет другого, более сильного стимула для аккуратного программирования, чем отсутствие отладчика.

Безусловно, что отладчик, как средство поиска, выявления и устранения ошибок - штука довольно вредная. Я сам использую отладчик в среднем от раз в месяц, до раз в неделю, и в 90% случаев не для поиска ошибок. По моим наблюдениям, программеры, использующие отладчик ещедневно пишут го...но-код.

Но использование отладчика для целей понимания и изучения, как работает код, как работает некая внешняя функция и т.п. Это резко упрощает и снижает трудозатраты, т.к. не нужно ради исследования писать кучу временного кода, чтобы эмпирическим методом получить то, что видно в отладчике.
Альтернативой отладчику является качественная документация, которую к сожалению не пишут разработчики. Да и поиск в инете, последнее время, стал сложнее, чем был лет 3-5 назад, т.к. форумы и прочие сайты забиты мусором.

В плане использования отладчика желательно использовать некую методологию, но не встречал хорошей книжки на эту тему, где бы говорилось и обосновывалось что нужно делать отладчиком, а что вредно делать отладчиком. В своей практике я сам пришел к некому стилю использования отладчика.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: Чего мне не хватает в FreePascal

Сообщение Сквозняк » 06.11.2012 01:53:23

Реально не хватает букв для русских имён без транслитовых шепелявостей. Подсадили англосаксы мир на алфавит мёртвого языка - сами не смогли создать свой, нормальный, и всем остальным из-за этого теперь страдать. Для латыни он может и хорош, а для живых языков кака какая-то - всего 26 знаков, пятая часть которых служит в качестве пятого колеса для телеги. Научить бы компилятор понимать русские буквы из IBM 866 кодировки :roll:
Сквозняк
энтузиаст
 
Сообщения: 1123
Зарегистрирован: 29.06.2006 22:08:32

Re: Чего мне не хватает в FreePascal

Сообщение SSerge » 06.11.2012 05:20:16

Сквозняк писал(а):Реально не хватает букв для русских имён без транслитовых шепелявостей.


Сквозняк, специально для вас создан "язык программирования 1С". Вообще это на самом деле клон Visual Basica, но в особо извращенной форме. :mrgreen: Окунитесь в стихию родного языка. :D И зацените, какая это дичь несусветная на практике.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Чего мне не хватает в FreePascal

Сообщение stikriz » 06.11.2012 06:52:08

alexey38 писал(а):Безусловно, что отладчик, как средство поиска, выявления и устранения ошибок - штука довольно вредная.

Эти слова можно было бы воспринимать серьезно, если бы у FreePascal был бы великолепный отладчик, но Вы бы им не пользовались. А сейчас, когда это сделано не очень, звучит как дешевое оправдание. Напомнило ветку в форуме Scala, мол, у нас вдумчивые пользователи:-) А все потому, что интерфейсно Scala - унылое г-но по сравнению с другими системами.
SSerge писал(а):Вообще это на самом деле клон Visual Basica, но в особо извращенной форме.

Всегда интересно почитать мысли ребенка ничего не понимающего, не знающего, но имеющего абсолютно верное мнение о мире :-)
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47

Re: Чего мне не хватает в FreePascal

Сообщение SSerge » 06.11.2012 08:22:03

stikriz писал(а):Всегда интересно почитать мысли ребенка ничего не понимающего, не знающего, но имеющего абсолютно верное мнение о мире

Что имеете против этой формулировки? По синтаксису - классический бейсик без нумерации строк, близкий к visual/vba; гордитесь и дальше своим пониманием мира, оно у вас единственное правильное.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Чего мне не хватает в FreePascal

Сообщение Сквозняк » 06.11.2012 13:01:43

SSerge писал(а):
Сквозняк писал(а):Реально не хватает букв для русских имён без транслитовых шепелявостей.


Сквозняк, специально для вас создан "язык программирования 1С". Вообще это на самом деле клон Visual Basica, но в особо извращенной форме. :mrgreen: Окунитесь в стихию родного языка. :D И зацените, какая это дичь несусветная на практике.


Если тебе не наравится русский язык, то можешь общаться на англоязычном форуме и не испытывать дикой ломки от чтении кириллицы. 1С узкоспециализированный язык, паскаль он заменить не может.
Сквозняк
энтузиаст
 
Сообщения: 1123
Зарегистрирован: 29.06.2006 22:08:32

Re: Чего мне не хватает в FreePascal

Сообщение qivi » 06.11.2012 13:04:40

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


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

О нет!... Не чужды толерантность,
И уваженье, и почёт...
Напротив! Я за многоликость,
Культур и разных языков.

Но вопреки моих укладов,
На перекор прямой душе,
И наполняя гневом сердце...
На свете всё же есть «ОНО»!

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

«ОНО», теперь в масштабах мира,
Подобно раку во плоти,
Стирает подлинные нити,
Иной, не варварской, души.

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

Я заклинаю, будь ты проклят!
Гори в аду где порождён!
Наречье падшего отродья,
Язык что Англицким зовём!
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Чего мне не хватает в FreePascal

Сообщение alexey38 » 06.11.2012 13:43:59

stikriz писал(а):alexey38 писал(а):
Безусловно, что отладчик, как средство поиска, выявления и устранения ошибок - штука довольно вредная.
Эти слова можно было бы воспринимать серьезно, если бы у FreePascal был бы великолепный отладчик, но Вы бы им не пользовались. А сейчас, когда это сделано не очень, звучит как дешевое оправдание.


На FPC или Лазаре я вообще не пользуюсь отладчиком, т.к. существующий слишком плохой. Но я описал свой опыт использования отладчика Дельфи. Можно добавить, что в 90% случаях именно при отладке используешь отладчик, как средство визуализации места возникновения исключения с просмотром Call Stack, т.е. без пошаговой отладки. Остальные 10% - это когда делаешь от 1 до 20 шагов, больше шагать не нужно, да и обычно хватает 2-5 шагов.

В основном отладчик - это способ изучения, а не способ выявления ошибок. И тут отладчик ФПС и Лазаря - это неполноценный инструмент.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: Чего мне не хватает в FreePascal

Сообщение vada » 06.11.2012 15:38:12

Без отладчика можно обходиться. Для этого есть юнит-тесты. 90% косяков можно выгрести на них, а 10% логами (контрольная печать). Что я сейчас и делаю, т.к. после каких-то обновлений хрюши дебагер перестал работать. Говорит что, например, "Инструкция по адресу тра-ля-ля обратилась к памяти по адресу 0х00000008. Память не может быть "read".
Код: Выделить всё
Команда GDB:
"-stack-list-arguments 1 0 9"
не возвратила никакого результата.

Процесс GDB больше не выполняется.

И дальше "Надейтесь на лучшее".
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Чего мне не хватает в FreePascal

Сообщение stikriz » 06.11.2012 19:53:00

alexey38 писал(а):Можно добавить, что в 90% случаях именно при отладке используешь отладчик, как средство визуализации места возникновения исключения с просмотром Call Stack, т.е. без пошаговой отладки.

Вообще, все понятно, и я согласен. Просто, очень странно читать текст, наподобие, как же нам всем отладчик мешает писать хороший код :-) Мне, например, отладчик не мешает. А логи я использую, в основном, чтобы не мучить конечного пользователя на предмет, мол, что же там какое сообщение было на экране? Проще сказать, мол, дружок, пришли мне файлик.
SSerge писал(а):Что имеете против этой формулировки?

Что такое клон? Клон - это не подобие. Это вполне определенный термин. Вот, FireBird - клон InterBase, т.к. на основе его исходников. У языка 1C милион недостатков, но только не то, что на нем можно, но не обязательно, кстати, писать по русски. И оно никакое не клон бейсика. И даже близко не похож. Когда-то давно в школах не было компьютеров, но такой предмет - информатика - был. Так вот, там я в первый раз увидел синтаксис чего-то очень похожего на язык 1С. Вообще, прежде чем высказывать мнение, нужно иметь знания. Так можно дойти до того, что обезьяна - клон человека :-)
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47

Re: Чего мне не хватает в FreePascal

Сообщение alexey38 » 06.11.2012 21:19:48

stikriz писал(а):Вообще, все понятно, и я согласен. Просто, очень странно читать текст, наподобие, как же нам всем отладчик мешает писать хороший код Мне, например, отладчик не мешает. А логи я использую, в основном, чтобы не мучить конечного пользователя на предмет, мол, что же там какое сообщение было на экране? Проще сказать, мол, дружок, пришли мне файлик.


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

Моя практика говорит, что примерно 80% программеров, с которыми я пересекался, были именно такими горе-программерами, для которых отладчик - это бич. Так как таких челов, только отсутствие интерактивных инструментов заставляет вначале думать, а уже потом кодить. Такие лучше всего программили во времена перфокарт, их лень заставляла думать, т.к. перенабивать перфокарты было очень нужно и трудоемко.

Добавлено спустя 12 минут 27 секунд:
vada писал(а):Без отладчика можно обходиться. Для этого есть юнит-тесты. 90% косяков можно выгрести на них, а 10% логами (контрольная печать).


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

Поэтому в реальной ситуации, в которой мне приходится работать, статистика примерно следующая:
- 70% ошибок выявляется путем обдумывания функционала и просмотра кода (особенно секций интерфейса);
- 20-25% - выявляют логи;
- оставшиеся 5-10% - это на отладчик, который и выступает в роли ручного юнит-теста бизнес-логики, когда через отладчик приходится понимать, как работает бизнес-логика. То есть отладчик используется не для исправления ошибок, а для обучения задаче.

Юнит-тесты завязаны на базовый функционал библиотек, написаны давно и практически ничего не дают, т.к. библиотека уже отлажены.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: Чего мне не хватает в FreePascal

Сообщение Padre_Mortius » 06.11.2012 22:14:35

- 70% ошибок выявляется путем обдумывания функционала и просмотра кода (особенно секций интерфейса);
- 20-25% - выявляют логи;
- оставшиеся 5-10% - это на отладчик, который и выступает в роли ручного юнит-теста бизнес-логики, когда через отладчик приходится понимать, как работает бизнес-логика.

Это вы про свой код такое говорите?
Unit-тесты дают достаточно много, если код пишется правильно. Если код написан коряво, то unit-тесты вообще ничего не дадут.
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Пред.След.

Вернуться в Потрепаться

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24

Рейтинг@Mail.ru