Kemet писал(а):
Comdiv писал(а):
я имею ввиду valgrind
Дайте, дайте мне valgrind для Оберона, а лучше сразу два.
Ну вот Иван Денисов поднял отладчик BB до версии 1.7 и на этом форуме об этом есть от меня сообщение, которое "произвело фурор" (в смысле, его никто не заметил). Жаль только, что Иван не включил инструкцию для чайников на страницу загрузки - я написал в форуме, но получается, что программа отдельно, а инструкция отдельно.
Цитата:
И вообще, речь в теме заходила о статическом анализе кода, в противовес тестированию и отладке.
В Crossover, где мне довелось поработать, применяются всевозможные средства обезпечения качества. В нашем проекте применялись не все. Вот попытка сделать полный перечень:
- контроль версий
- рецензирование ( peer review )
- формализованный документооборот (JIRA и т.п.)
- модульное, регрессионное, интеграционное тестирование, тестирование UI
- контроль покрытия тестами
- статический анализ
- формализованные и автоматизированные процедуры подготовки релиза, CI
- динамические средства диагностики (например, спец.сборки с контролем работы с кучей)
В проекте, где я участвовал, использовалась отладка по Core (худший вариант), и ещё два (как минимум) отладчика. Были написаны разные методички по отладке.
Никому в здравом уме не пришло бы в голову сказать, что пошаговый отладчик не нужен
Напротив, была куплена и обновлялась довольно дорогая коммерческая система именно ради отладчика.
Если бы был какой-то один способ избавиться от всех ошибок, то им бы можно было и ограничиться. И это не так. Поэтому когда говорят
Цитата:
Да, показывалось. что аудит кода выгоднее раза в полтора-два, чем тестирование (по количеству найденных дефектов на час труда).
я просто не знаю, смеяться или плакать. Ну как можно так насиловать реальность? Есть общее качество (количество багов в программе, например), есть производительность труда разработчика, а есть ситуация, когда нужно исправить конкретную заковыристую багу. В этой ситуации аудит кода, который быстро найдёт 50 других багов, совершенно не в тему. Неужели же это не очевидно?
И кроме того, аудит кода - это ручной труд. Он делается каждый раз заново дорогостоящим специалистом. Однажды написанный тест запускается при каждой модификации программы (а живая программа всегда многократно модифицируется, хотя бы в процессе разработки) и защищает от регрессий.
И самое главное, нет никакого способа защититься от всех ошибок, как я уже писал только что.
Цитата:
Хорошо, мы договорились до того, что обучение программированию имеет много особенностей,
Мы договорились до того, что идея с мультиком может оказаться не столь хороша в контексте принятой методики преподавания (хотя ещё не факт, что хороша сама эта методика - мне просто лень её смотреть на данный момент). Но вопрос "а что делать, если я написал программу правильно, а она работает неправильно?" должен быть поднят сразу. И, если мы обзорно не раскрыли вопросы качества программ, то нельзя сказать, что в курсе раскрыта тема программирования. А если мы рассказали про качество сказками Вирта и фыркнули на отладчик, то мы нанесли детям вред. Здесь моя точка зрения не поменялась, и я просто скажу: я знаю, что я прав. Вас убедить мне было бы интересно (мне интересно пробовать свои зубы об стены религий, хотя зубы никогда не оказываются достаточно прочными). Но вы мне на эту тему точно ничего нового не скажете. Кстати, мне 44 года, а первую свою программу я написал ещё в 80-х, и с 3-го курса мехмата МГУ, который я окончил, я работал программистом