Здравствуйте, kaa.python, Вы писали:
KP>Буду добавлять логи и тесты.
Ну как я и говорил: принтфы. Прогресс, однако.
KP>Но это нужно будет сделать один раз, я с ситуацией как ты описал сталкиваюсь реже раза в год. Потому что тесты.
Скорее проект уровня прошивки для дверного звонка.
KP>А у сектанта с тестами такой необходимости просто нет
В мире его фантазий
Здравствуйте, kaa.python, Вы писали:
vsb>>Не понимаю я тебя. Ты предлагаешь мне патчить все библиотеки, которые я использую, чтобы там были логи? Нет там нужных логов сейчас. И в большинстве библиотек нет. В том же спринге. Включаешь trace всякий бред логгируется, а что надо — не логгируется.
KP>Так, я тебя тоже перестал понимать, значит мы про разное думаем. Зачем тебе логи из сторонних библиотек?
Ну вот конкретная ситуация. Был в проекте apache wicket 1.5.7. Это не последняя версия. Обновил я его до 1.5.17. И у меня всё сломалось, в логах ClassCastException из String в Float из кишков wicket, моего кода в стектрейсе вообще нет. И что мне предлагается делать? Естественно т.к. моего кода в стектрейсе нет, то и моих логов по определению быть не может.
Поставил брякпоинт на этот ClassCastException, внимательно изучил исходники wicket-а и нашёл причину, надо было при конструировании в конструктор передавать тип. Раньше работало без этого, они потом код переписали и перестало работать.
А так в тех самых 90% случаев мне и логи никакие не нужны. Я на стектрейс смотрю, открываю код и понимаю причину ошибки. Если бы в стектрейс ещё логгировались все локальные переменные каждого фрейма вместе с их членами до какой-то глубины, загадок бы вообще не осталось.
Здравствуйте, nekocoder, Вы писали:
KP>>Но это нужно будет сделать один раз, я с ситуацией как ты описал сталкиваюсь реже раза в год. Потому что тесты. N>Скорее проект уровня прошивки для дверного звонка.
Если посмотреть глобально, то есть два типа проектов: копролит мамонта с нулевым покрытием тестами и логами где ни попадя, а так же современные проекты где и много тестов и есть логи к месту и ко времени. Судя по твоим утверждениям в этой теме (ну и по другим заметкам на форуме типа этого
) ты обычно работаешь и любишь работать с проектами класса "копролит мамонта" и, да, надо признать, там без отладчика очень и очень сложно, им пользоваться нужно. Но есть и другой тип проекта, где и разработчики квалифицированные и менеджмент понимает что время затраченное на написание тестов — это не потеря времени, а его экономия в ближайшем будущем. Так вот во втором типе проектов никакой необходимости в отладчике нет и все новые проекты (а тут мы говорим про Раст и значит тяжелого наследия характерного для той же кодовой базы С++ нет по определению) просто необходимо изначально писать правильно. Разработка ПО как дисциплина развивается, новые тенденции и методологии позволяют писать код дешевле и более качественно.
KP>>А у сектанта с тестами такой необходимости просто нет N>В мире его фантазий
Так что, ты, конечно, можешь думать про фантазии, сложность дверного звонка или еще пытаться как-то не менее нелепо меня поддеть... но на деле ты просто демонстрируешь ограниченность своего мышления и опыта
Здравствуйте, kaa.python, Вы писали:
KP>ты обычно работаешь и любишь работать с проектами класса "копролит мамонта"
Абсолютно верно, и это сознательный выбор. Люблю старые проекты на которых держится бизнес. Одна из причин, кстати — всякие фанатики новых технологий и аджайла предпочитают держаться от них подальше.
KP>Разработка ПО как дисциплина развивается, новые тенденции и методологии позволяют писать код дешевле и более качественно.
Нет, разработка ПО деградирует. На эту тему Джонатан Блоу хорошо высказывался.
KP>Так что, ты, конечно, можешь думать про фантазии, сложность дверного звонка или еще пытаться как-то не менее нелепо меня поддеть... но на деле ты просто демонстрируешь ограниченность своего мышления и опыта
Что же еще делать, если ты выдаешь исключительно лозунги в духе функциональщиков или линуксоидов. "Отладчик нинужен! Тесты рулят! Я скозал!". Над этим можно только постебаться.
А по теме: если в проекте не логгируется присвоение каждой переменной и вызов каждой функции, то отладчик понадобится рано или поздно (ну, или придется прогрессивно втыкать принтфы, а потому их удалять).
И, внезапно, наличие отладчика не мешает писать тесты. Почему-то ты эти вещи противопоставляешь.
Здравствуйте, kaa.python, Вы писали:
_>>Чтобы помочь медитирующему достичь нирваны — в расте исключения заменили на коды ошибок и стека вызовов нет. Стек в общем-то можно собрать, но это делается заранее и в рукопашную сторонними крэйтами, которыми не все проекты спешат пользоваться. _>>Исключения тяжеловесные говорили они... KP>В Go тоже самое, всё нормально, я за почти 4 года программирования на нем ни разу отладчик не запускал за ненадобностью .
Нуу вообще говоря в Go есть исключения. Более того, они там, насколько я помню, даже больше соответствуют этому слову (во всяком случае с их помощью не получится делать банальную обработку ошибок как в C++ или Java).
Здравствуйте, nekocoder, Вы писали:
N>А по теме: если в проекте не логгируется присвоение каждой переменной и вызов каждой функции, то отладчик понадобится рано или поздно (ну, или придется прогрессивно втыкать принтфы, а потому их удалять).
Нуу кстати применять "принтфы" всё равно приходится в некоторых областях — там где реалтаймые приложения и их остановка отладчиком испортит весь процесс. Например при программирование МК это повседневная практика...
Здравствуйте, Слава, Вы писали:
С>Человек, про которого я пишу, является сотрудником JetBrains и одним из основных разработчиков rust-плагина. Если уж и собирать деньги на rust-ide, то я не думаю, что найдутся другие исполнители, кроме как в JB.
JetBrains собирает донаты?