170 похожих чатов

Весь мой проект состоит из таких кусков - где тут

место отладчику?

33 ответов

27 просмотров

Внешние сервисы, база. Код может работать правильно и без ошибок, контракт верен, тупо данные неправильные

Daniel-Podolsky Автор вопроса
Михаил Макарычев
Внешние сервисы, база. Код может работать правильн...

если это в принципе возможно - код в любом случае надо снабжать валидатором. где тут место отладчику?

Daniel Podolsky
если это в принципе возможно - код в любом случае ...

Часто надо понять, это внешний сервис не те данные отдаёт, или ты в бизнес-логике облажался

Михаил Макарычев
Часто надо понять, это внешний сервис не те данные...

да забей, этот спор не окончится каждый останется при своем мнении

Daniel-Podolsky Автор вопроса
Михаил Макарычев
Часто надо понять, это внешний сервис не те данные...

бизнес-логику в любом случае надо покрывать тестами если же у вас тесты проходят, а в реальности лажа - надо наращивать количество тестов по-любому, с дебагером, или без и где тут место дебагеру

Daniel Podolsky
если это в принципе возможно - код в любом случае ...

А кто сказал, что тот неожиданный json не валидный? Вот ждал ты там где-то 10 (и на этом значении у тебя логика построена), а по факту там 11

Daniel Podolsky
бизнес-логику в любом случае надо покрывать тестам...

Вот есть у меня сервис, который манипулирует только id складов. Он рассчитывает маршруты, например. То есть в базе лежат маршруты из айдишек. На ui склады выводятся с названием. Названия складов я получаю из внешнего сервиса. И этот внешний сервис ответил мне, что склад 1234567 называется "Тверь". А в реальности это не тверь. Как мне помогут тут тесты?

Михаил Макарычев
Вот есть у меня сервис, который манипулирует тольк...

Интеграционные тесты и мониторинг должны поймать эту проблему раньше разработчика

Alexey Palazhchenko
Интеграционные тесты и мониторинг должны поймать э...

Как? Кто-то накосячил в БД стороннего сервиса. Контракты соблюдены. Бизнес-логика отрабатывает правильно. Проблема только в выводе данных на UI

Daniel-Podolsky Автор вопроса
Михаил Макарычев
Вот есть у меня сервис, который манипулирует тольк...

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

Daniel Podolsky
на этот вопрос есть ответ вы начнете писать тесты...

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

Daniel-Podolsky Автор вопроса
Михаил Макарычев
Дело не в архитектуре. Это стандартный пример bff-...

а как вам дебагер поможет выловить неконсистентность в справочных данных? никак, правда?

Михаил Макарычев
Вот есть у меня сервис, который манипулирует тольк...

Никак. Можно пытаться бороться с этим через типы

Daniel Podolsky
а как вам дебагер поможет выловить неконсистентнос...

Он даст мне уверенность в том, что проблема в неправильных данных стороннего сервиса, а не в логике моего приложения. Да, он поможет мне это сделать уже после момента, когда эта бага случилась. Но тесты не помогут ни до, ни после

Dmitriy Sviridov
"Тверь" и "Москва" - это ж один тип

Все так. На самом деле этот подход в корне неверный. Надо ни название населённых пунктов использовать, а прямоугольники/окружности на поверхности. Потому что Москва большая и складов там может быть несколько.

Daniel-Podolsky Автор вопроса
Roman Timofeev
Все так. На самом деле этот подход в корне неверны...

и все равно справочник может оказаться неконсистентен

Михаил Макарычев
Он даст мне уверенность в том, что проблема в непр...

Логирование запросов/ответов стороннего сервиса на изи решает эту проблему.

Daniel Podolsky
и все равно справочник может оказаться неконсистен...

Это да. Ну ты тоже каждый кузнец своему счастью ))

Roman Timofeev
Все так. На самом деле этот подход в корне неверны...

Вы серьёзно? Есть реальные склады, у них есть названия и id. В ui выводятся именно склады. Мне нужно прийти к гендиректору и сказать, что ему запрещено давать названия складам, потому что я не хочу использовать дебагер?

Dmitry Matveev
Логирование запросов/ответов стороннего сервиса на...

У меня 50к рпс. Мне каждый запрос логировать? Если да, то как потом искать нужную запись?

Roman F
А как в дебагере 50к рпс просматривать?

Локально запускаешь сервис и дёргаешь ручку с нужными данными. Всё

Михаил Макарычев
У меня 50к рпс. Мне каждый запрос логировать? Если...

если вы поняли где баг, то найти нужный запрос не составит труда

Михаил Макарычев
Локально запускаешь сервис и дёргаешь ручку с нужн...

Блин, а мне никто не даст из локальной сети дёрнуть эндпоинт с прод данными

Dmitry Matveev
Какими данными? :) вам же их надо где то взять))

Я же говорил, что мы изначально исправляем багу на фронте. Там можно взять данные через f12

Daniel Podolsky
и все равно справочник может оказаться неконсистен...

Вообще, если у компании такой бардак с данными в собственном сервисе - наверное, не стоит там работать.

Roman Timofeev
Вообще, если у компании такой бардак с данными в с...

Кстати доля правды в этом есть. Я бывало увольнялся из-за бардака

Михаил Макарычев
Я же говорил, что мы изначально исправляем багу на...

Тогда вообще не понимаю, где тут нужен дебагер. Получается у вас сломан контракт между фронтом и беком.

Михаил Макарычев
Вот есть у меня сервис, который манипулирует тольк...

Откуда появляется знание что 1234567 - это не "Тверь"?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта