KP>>>Научиться писать без отладчика. Это самое лучшее что в принципе можно сделать любому программисту, который ещё этого не умеет. Отладчик не нужен и скорее вреден. vsb>Не представляю, как некоторые баги находить без отладчика. Это потребует значительно бОльшего времени. Например вчера эксепшн падал где-то в глубинах викета. Это такая библиотека большая. Поставил брякпоинт на эксепшн, помедитировал на стектрейс, поразглядывал значения переменных и вкурил причину бага. Без отладчика? Ну, видимо, пришлось бы скачивать исходники викета, пару дней пытаться их собрать и интегрировать в своё проект, понавставлять туда логов и через недельку может и нашел бы причину бага. Т.е. разница 10 минут против недели.
Ключевое — в верхней цитате. НАУЧИТЬСЯ писать.
Когда пишешь код МАЛЕНЬКИМИ порциями, когда у тебя методы в 3-4-5 строчек,
когда для каждого метода тут же пишешь тест — отладчик становится практически не нужен. vsb>Но, конечно, проблема того, что некоторые разработчики увлекаются отладчиком, существует. Но считаю, что это не повод отказываться от отладчика, по крайней мере в реальном мире. В учебном заведении — пожалуйста. А нам тут валуе деливерить надо, а не идеализмом страдать. А то денег не заплатят.
Да, в реально мире возникают ситуации, когда без отладчика — очень сложно.
Когда я только осваивал С++ еще на Турбо С++ 2.0, у меня была такая ситуация.
В среде все работало прекрасно хоть в дебаге, хоть в релизе.
А без среды — падало.
Пришлось в НЕЗАВИСИМОМ отладчике ТурбоДебаггере на уровне команд отследить — нашел хитрую утечку памяти...
И ты прав, в учебном заведении приходится железной рукой заставлять писать малыми порциями. И безжалостно НЕ принимать код, если он написан не по правилам.
Хотя работает.
Ибо большинство студентов пытаются написать некий универсальный всемогутер, для которого задание является частным случаем...
А потом в отладчике пробуют заставить его работать.
С чем воюю постоянно.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, LaptevVV, Вы писали:
LVV>Ибо большинство студентов пытаются написать некий универсальный всемогутер, для которого задание является частным случаем... LVV>А потом в отладчике пробуют заставить его работать. LVV>С чем воюю постоянно.
Это правильно. Я только к 30 годам начал осознавать, что надо решать ту проблему, которая перед тобой стоит, а не ту проблему, которую ты рисуешь в своём воображении.
LVV>>Ибо большинство студентов пытаются написать некий универсальный всемогутер, для которого задание является частным случаем... LVV>>А потом в отладчике пробуют заставить его работать. LVV>>С чем воюю постоянно. vsb>Это правильно. Я только к 30 годам начал осознавать, что надо решать ту проблему, которая перед тобой стоит, а не ту проблему, которую ты рисуешь в своём воображении.
Видимо, это характерно для всех программистов по молодости: заниматься ненужными обобщениями на пустом месте.
И я такой же был...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
LS>>я умею и без отладчика. LS>>но некоторые вещи удобнее делать в отладчике.
KP>Умеешь, верю, но есть куда еще стремиться. При наличии интеграционных тестов и TDD подхода, хороших систем логирования и грамотного дизайна необходимости в отладчике просто нет.
я тут собрался простой, но полезный графический движок писать на расте, я честно говоря затрудняюсь с прикручиванием к этому тестов.
но вообще да, судя по всему без шансов.
даже если у меня будет отладка на винде, то после того, как я на PS4 это как-то запущу, ее точно не станет.
Здравствуйте, vsb, Вы писали:
vsb>Но, конечно, проблема того, что некоторые разработчики увлекаются отладчиком, существует. Но считаю, что это не повод отказываться от отладчика, по крайней мере в реальном мире. В учебном заведении — пожалуйста. А нам тут валуе деливерить надо, а не идеализмом страдать. А то денег не заплатят.
Лаптева вообще слушать не надо, он от коммерческой разработки далёк.
С>Лаптева вообще слушать не надо, он от коммерческой разработки далёк.
Не, она буквально в соседнем подъезде обитает...
1. Мои студенты-выпускники практически все связаны с коммерческой разработкой.
И преподают у нас. Так что встречаемся каждую неделю.
2. Ты не поверишь, меня с марта-месяца московский заказчик уговаривал заключить договор на разработку.
Но я отбрыкался...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, LaptevVV, Вы писали:
LVV>2. Ты не поверишь, меня с марта-месяца московский заказчик уговаривал заключить договор на разработку. LVV>Но я отбрыкался...
Ок, дополню: одной из особенностей коммерческой разработки является сторонний код, который менять нельзя. И тут нужен отладчик.
LVV>>2. Ты не поверишь, меня с марта-месяца московский заказчик уговаривал заключить договор на разработку. LVV>>Но я отбрыкался... С>Ок, дополню: одной из особенностей коммерческой разработки является сторонний код, который менять нельзя. И тут нужен отладчик.
А наши-то мужики не знают!
Все как-то своим обходятся...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
KP>>Вот ответь на один вопрос, пожалуйста. После того как исключение было отловлено и справлено, появился ли в продукте тест, покрывающий этот случай и похожие, которые пришла в голову по результатам исправления проблемы?
vsb>Лол, в этом продукте нет тестов и никогда не будет (:
Здравствуйте, Masterspline, Вы писали:
KP>>>Вот ответь на один вопрос, пожалуйста. После того как исключение было отловлено и справлено, появился ли в продукте тест, покрывающий этот случай и похожие, которые пришла в голову по результатам исправления проблемы?
vsb>>Лол, в этом продукте нет тестов и никогда не будет (:
M>Вся суть Rust-разработки в одной фразе!
Я не на расте, я тут со своей свиной джавой в калашный ряд влез, извиняйте.
KP>Без отладчика ты бы имел логи, которые дают понимание того, что происходит. Так же ты имел бы стек вывозов твоего исключения, над которым вполне можно помедитировать.
Чтобы помочь медитирующему достичь нирваны — в расте исключения заменили на коды ошибок и стека вызовов нет. Стек в общем-то можно собрать, но это делается заранее и в рукопашную сторонними крэйтами, которыми не все проекты спешат пользоваться.
Здравствуйте, nekocoder, Вы писали:
N>Здравствуйте, kaa.python, Вы писали:
KP>>Без отладчика ты бы имел логи, которые дают понимание того, что происходит.
N>Сектанство уровня TDD.
Здравствуйте, LuciferSaratov, Вы писали:
LS>я тут собрался простой, но полезный графический движок писать на расте, я честно говоря затрудняюсь с прикручиванием к этому тестов.
Моки + тесты. Разве что обращения к системным вызовам относительно хреово тестами покрываются и не всегда очевидно где это надо делать, а где лучше не делать.
LS>но вообще да, судя по всему без шансов. LS>даже если у меня будет отладка на винде, то после того, как я на PS4 это как-то запущу, ее точно не станет.
Именно. И как там исправлять и отлаживать проблемы, если ты изначально на отладчик заточен?
Здравствуйте, hi_octane, Вы писали:
KP>>Без отладчика ты бы имел логи, которые дают понимание того, что происходит. Так же ты имел бы стек вывозов твоего исключения, над которым вполне можно помедитировать. _>Чтобы помочь медитирующему достичь нирваны — в расте исключения заменили на коды ошибок и стека вызовов нет. Стек в общем-то можно собрать, но это делается заранее и в рукопашную сторонними крэйтами, которыми не все проекты спешат пользоваться.
_>Исключения тяжеловесные говорили они...
В Go тоже самое, всё нормально, я за почти 4 года программирования на нем ни разу отладчик не запускал за ненадобностью .
Здравствуйте, vsb, Вы писали:
vsb>Не понимаю я тебя. Ты предлагаешь мне патчить все библиотеки, которые я использую, чтобы там были логи? Нет там нужных логов сейчас. И в большинстве библиотек нет. В том же спринге. Включаешь trace всякий бред логгируется, а что надо — не логгируется.
Так, я тебя тоже перестал понимать, значит мы про разное думаем. Зачем тебе логи из сторонних библиотек? В 99.8% случаев они работают как и и положено работать и никакой необходимости в них лезть нет. У меня был забег со Спрингом на МФУ длиной в полтора года. Отладчика там небыло по определению, но как привыкаешь к логам (само собой своим, а не Спринга), то всё нормально и потом понимаешь что так даже быстрее и надёжнее. В твоём приложении их должно быть достаточно для полноценного исследования ситуации и часто они тебя спасают, так как ни на машину клиента подебажить, если это десктоп, так и на продакшн сервер с отладчиком ты не полезешь. Ну а тесты это уже как идеология разработки, дабы обезьяней работы по поиску регрессий не делать и ничего не забыть.
Здравствуйте, nekocoder, Вы писали:
N>Здравствуйте, kaa.python, Вы писали:
KP>>Ну не всем же ретроградами быть
N>Назло ретроградам отморожу себе уши буду отлаживать с помощью принтфов и пристального взгляда.
Хорошая попытка, но мимо. Тесты + логи обеспечивают высокое качество и скорость разработки, регрессии сведены у минимуму. А что тебе есть сказать со своим отладчиком на каждый чих?
Здравствуйте, kaa.python, Вы писали:
KP>Хорошая попытка, но мимо. Тесты + логи обеспечивают высокое качество и скорость разработки, регрессии сведены у минимуму.
Тесты проходят, в логах ничего нужного нет, программа работает не так как надо, что делать будешь? Понятно что, принтфы втыкать.
KP>А что тебе есть сказать со своим отладчиком на каждый чих?
А с отладчиком у меня есть возможность изучать выполнение программы гораздо эффективнее, чем у сектанта с принтфами.
Здравствуйте, nekocoder, Вы писали:
N>Тесты проходят, в логах ничего нужного нет, программа работает не так как надо, что делать будешь? Понятно что, принтфы втыкать.
Буду добавлять логи и тесты. Но это нужно будет сделать один раз, я с ситуацией как ты описал сталкиваюсь реже раза в год. Потому что тесты. Но, да, ретрограду не понять
N>А с отладчиком у меня есть возможность изучать выполнение программы гораздо эффективнее, чем у сектанта с принтфами.
А у сектанта с тестами такой необходимости просто нет