Нас стало в 3 раза больше!
... ну и что, что с 9 до 31, а не со 100 до 300 подписчиков, в три же раза :)
Спасибо всем, кто подписался за 3 дня моей мини-рекламы канала🥰
Постараюсь подкидывать вам интересности🙂
Сегодня вечером выложу саммари статейки про ИИ и долгосрочную поддерживаемость его кода.
Со всех сторон очень много новостей, какой ИИ прекрасный, а мой аналитический мозг не может не исследовать вторую сторону медали. Поэтому, если мне будут попадаться новости о том, где ИИ не такой прекрасный буду делиться с вами :)
... ну и что, что с 9 до 31, а не со 100 до 300 подписчиков, в три же раза :)
Спасибо всем, кто подписался за 3 дня моей мини-рекламы канала
Постараюсь подкидывать вам интересности
Сегодня вечером выложу саммари статейки про ИИ и долгосрочную поддерживаемость его кода.
Со всех сторон очень много новостей, какой ИИ прекрасный, а мой аналитический мозг не может не исследовать вторую сторону медали. Поэтому, если мне будут попадаться новости о том, где ИИ не такой прекрасный буду делиться с вами :)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4⚡1🤣1
ИИ и поддержание кода в долгосрочной перспективе
Исследователи из Университета Сунь Ятсена и Alibaba Group представили SWE-CI - бенчмарк*, позволяющий оценить, насколько модель способна писать код, поддерживаемый в долгосрочной перспективе.
*Бенчмарк - стандартизированный тест или набор задач (датасет), используемый для объективной оценки и сравнения производительности, точности, скорости и возможностей моделей ИИ.
Зачем?
Существующие бенчмарки направлены на оценку того, что ИИ генерирует работающий "в моменте" код. Но в условиях реальной разработки - код надо не просто написать, а еще развивать и поддерживать. Поэтому и решили создать бенчмарк, оценивающий насколько код ИИ работоспособен в долгосрочной перспективе.
Исходные данные
Исследователи прошлись по Python-репозиториям на Github, выбирая по критериям: активно поддерживается не менее трех лет, набрал более 500 звезд, содержит конфиги, зависимости и наборы юнит-тестов, распространяется под разрешительной лицензией (такие как MIT или Apache-2.0).
Затем, оставив только основную ветку, выделили такие кусочки истории, в которых зависимости кода неизменны. Начальная точка такого кусочка - "база" с которой стартовал ИИ, конечная - "эталон" к которому он должен был прийти.
После проверили корректность отработки тестов и выбрали топ-100 кусочков истории из 68 репозиториев, в которых присутствует более длинная история, большее число коммитов и у которых было значительное число изменений (сравнивали по запуску тестов). В среднем, кусочек истории состоял из 233 дней и 71 последовательного коммита + в каждом кусочке не менее 500 строк измененного кода (без учета тестов).
Как?
ИИ должен был превратить "базовую" кодовую базу в "эталонную", путем итераций разработки.
Для итераций использовалось 2 ИИ агента - Архитектор и Программист.
Тесты, релевантные эталонной базе, запускались на базовой версии. Архитектор должен был проанализировать ошибки упавших тестов и сформировать список требований Программисту, причем этот список требований формировался на естественном языке. Также допустимо было формулировать не более 5 требований за раз, поэтому Архитектор должен был выбирать наиболее критичные.
Программист реализовывал требования Архитектора.
Оценка "поддерживаемости" кода
Для оценки "поддерживаемости", т.е. корректности работы кода в будущем, сравнивалось, сколько юнит-тестов из исходного их количества выполнилось успешно после очередной итерации доработки кода.
При этом более поздним итерациям доработок давался больший "вес", чтобы как раз и выделить модели, чей код в будущем работал менее корректно.
Итог
См. график выше. По оси Y - модель, которую тестировали, по оси X - доля нулевых регрессий от всех итераций доработки (нулевая регрессия - ни один старый тест не сломался после доработки кода).
15 из 18 моделей показали результат ниже 37% - т.е. доля таких доработок, при котором тесты, что должны были работать, не сломаны, ниже 37%.
Однако 2 модели Claude показали очень неплохие результаты в 51 и 76 процентов.
Также попробовали варьировать метрику, дающую больший вес итерациям, и выяснили, что модели MiniMax, DeepSeek и GPT склонны к долгосрочным улучшениям, Kimi и GLM - к более быстрым, но менее поддерживаемым результатам. Qwen, Doubao и Claude оставались стабильными при разных значениях метрики.
Также внутри одного "семейства" более новые версии модели давали лучшие результаты.
- - - - - - -
Такие вот дела. Всё еще осторожнее с генерацией кода с ИИ - в долгосрок они пока умеют не очень :) Но совершенствуются!
Оригинал статьи можно скачать тут + переведенная от меня в первом комментарии. Осторожно, там немного математики :)
Исследователи из Университета Сунь Ятсена и Alibaba Group представили SWE-CI - бенчмарк*, позволяющий оценить, насколько модель способна писать код, поддерживаемый в долгосрочной перспективе.
*Бенчмарк - стандартизированный тест или набор задач (датасет), используемый для объективной оценки и сравнения производительности, точности, скорости и возможностей моделей ИИ.
Для ленивых - кратко :)
Китайцы заставили ИИ поиграть в долгосрочное развитие кода - сделав ИИ-Архитектора, который выдает требования на естественном языке, и ИИ-программиста, который их исполняет. Ну что бы прям как вживую!😏
А затем начали измерять, сколько работающих юнитов упадет после очередной итерации доработок.
15 из 18 моделей смогли не ухудшить код в 37% случаев и менее.
А если интересны подробности, читай дальше :)
Зачем?
Существующие бенчмарки направлены на оценку того, что ИИ генерирует работающий "в моменте" код. Но в условиях реальной разработки - код надо не просто написать, а еще развивать и поддерживать. Поэтому и решили создать бенчмарк, оценивающий насколько код ИИ работоспособен в долгосрочной перспективе.
Исходные данные
Исследователи прошлись по Python-репозиториям на Github, выбирая по критериям: активно поддерживается не менее трех лет, набрал более 500 звезд, содержит конфиги, зависимости и наборы юнит-тестов, распространяется под разрешительной лицензией (такие как MIT или Apache-2.0).
Затем, оставив только основную ветку, выделили такие кусочки истории, в которых зависимости кода неизменны. Начальная точка такого кусочка - "база" с которой стартовал ИИ, конечная - "эталон" к которому он должен был прийти.
После проверили корректность отработки тестов и выбрали топ-100 кусочков истории из 68 репозиториев, в которых присутствует более длинная история, большее число коммитов и у которых было значительное число изменений (сравнивали по запуску тестов). В среднем, кусочек истории состоял из 233 дней и 71 последовательного коммита + в каждом кусочке не менее 500 строк измененного кода (без учета тестов).
Как?
ИИ должен был превратить "базовую" кодовую базу в "эталонную", путем итераций разработки.
Для итераций использовалось 2 ИИ агента - Архитектор и Программист.
Тесты, релевантные эталонной базе, запускались на базовой версии. Архитектор должен был проанализировать ошибки упавших тестов и сформировать список требований Программисту, причем этот список требований формировался на естественном языке. Также допустимо было формулировать не более 5 требований за раз, поэтому Архитектор должен был выбирать наиболее критичные.
Программист реализовывал требования Архитектора.
Оценка "поддерживаемости" кода
Для оценки "поддерживаемости", т.е. корректности работы кода в будущем, сравнивалось, сколько юнит-тестов из исходного их количества выполнилось успешно после очередной итерации доработки кода.
При этом более поздним итерациям доработок давался больший "вес", чтобы как раз и выделить модели, чей код в будущем работал менее корректно.
Итог
См. график выше. По оси Y - модель, которую тестировали, по оси X - доля нулевых регрессий от всех итераций доработки (нулевая регрессия - ни один старый тест не сломался после доработки кода).
15 из 18 моделей показали результат ниже 37% - т.е. доля таких доработок, при котором тесты, что должны были работать, не сломаны, ниже 37%.
Однако 2 модели Claude показали очень неплохие результаты в 51 и 76 процентов.
Также попробовали варьировать метрику, дающую больший вес итерациям, и выяснили, что модели MiniMax, DeepSeek и GPT склонны к долгосрочным улучшениям, Kimi и GLM - к более быстрым, но менее поддерживаемым результатам. Qwen, Doubao и Claude оставались стабильными при разных значениях метрики.
Также внутри одного "семейства" более новые версии модели давали лучшие результаты.
- - - - - - -
Такие вот дела. Всё еще осторожнее с генерацией кода с ИИ - в долгосрок они пока умеют не очень :) Но совершенствуются!
Оригинал статьи можно скачать тут + переведенная от меня в первом комментарии. Осторожно, там немного математики :)
Please open Telegram to view this post
VIEW IN TELEGRAM
👏4👍1😁1
Forwarded from 43; Tech
Deep Dive in Problem Solving 🔍
Иногда в работе аналитика самое сложное – не написать требования, а понять, почему заказчик пришел именно с таким запросом.
На одной из конференций, наш системный аналитик Анастасия Кайнова рассказала, как опыт работы в техподдержке научил её быстро разбираться в сложных инцидентах и находить настоящие причины проблем.
Главная мысль проста: любая система – это граф из узлов и связей, и проблемы можно искать по понятному алгоритму.
Мы превратили доклад в короткую серию карточек. Внутри – простой алгоритм, который помогает находить проблему даже в очень сложных системах.
▶️ Полное выступление можно посмотреть по ссылке
💬 Больше материалов и мыслей автора – в её Telegram-канале
Иногда в работе аналитика самое сложное – не написать требования, а понять, почему заказчик пришел именно с таким запросом.
На одной из конференций, наш системный аналитик Анастасия Кайнова рассказала, как опыт работы в техподдержке научил её быстро разбираться в сложных инцидентах и находить настоящие причины проблем.
Главная мысль проста: любая система – это граф из узлов и связей, и проблемы можно искать по понятному алгоритму.
Мы превратили доклад в короткую серию карточек. Внутри – простой алгоритм, который помогает находить проблему даже в очень сложных системах.
▶️ Полное выступление можно посмотреть по ссылке
💬 Больше материалов и мыслей автора – в её Telegram-канале
👍2🔥1👏1
ИИ-сериальчик на вечер
Всем пятничное🙂
Рабочая неделя закончилась, значит, можно и сериальчики посмотреть.
Очень давно стали модными вертикальные сериальчики формата reels, но в них снимались люди. Теперь их генерируют в ИИ! (и продают за сто тыщ мильенов уроки по их созданию)
Один такой меня зацепил, на злобу дня, так сказать. Рекомендасьон сериальчика про мессенджеры! Тут все: Инста, Телеграм, Ватсапп, Макс... и даже Роскомнадзор с Аськой :)
Юмор неплохой, картинка приятная, ностальгию вызывает. Кидаю вам вторую серию, как самую затравочную, остальное в первом комментарии)
Всем пятничное
Рабочая неделя закончилась, значит, можно и сериальчики посмотреть.
Очень давно стали модными вертикальные сериальчики формата reels, но в них снимались люди. Теперь их генерируют в ИИ! (и продают за сто тыщ мильенов уроки по их созданию)
Один такой меня зацепил, на злобу дня, так сказать. Рекомендасьон сериальчика про мессенджеры! Тут все: Инста, Телеграм, Ватсапп, Макс... и даже Роскомнадзор с Аськой :)
Юмор неплохой, картинка приятная, ностальгию вызывает. Кидаю вам вторую серию, как самую затравочную, остальное в первом комментарии)
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2😁2
Объявляю у себя на канале неделю техподдержечных кейсов! 🙃
Да, не самое смешное, что могло бы быть, но надо же тут полезный какой-то для аналитиков контент выкладывать, чтобы они подписывались🙂
хотя ставлю на то, что именно аналитики на этой неделе не совсем поймут, зачем им что-то такое
Да, не самое смешное, что могло бы быть, но надо же тут полезный какой-то для аналитиков контент выкладывать, чтобы они подписывались
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🤔1👀1
Техподдержечное #1
Или как решать проблемы методом обезьянки
Вообще, пока что, самый прекрасный инструмент, что мне попадался. Все самое прекрасное почему-то всегда линуксовое и консольное🫥
Да-да, аналитик и тестировать. Просто без этого инструмента я буду через три недели как без рук, т.к. не смогу доказывать, кто не прав.
И есть у нас 2 кафки. Своя и чужая. И чужая с поиском по ней нужна больше, т.к. часто она - единственный источник правды на тему, чья подсистема виновата в проблемах обработки.
Запускаем команду на поиск, смысл которой:
На своей кафке все прекрасно.
На чужой...
Ага. На вход скормили время 14:30 и 14:40, но по этому времени кафка не смогла найти оффсеты сообщений. Казалось бы, ну нет там сообщений за это время, отстань, противная. Но нюанс в том, что я сначала убедилась, что сообщение есть, а потом пошла его искать.
Как я развлекалась в течение следующего часа:
1️⃣ Решила все же проверить таймстемпы на адекватность.
Для этого запустила такой же поиск, но с другой машины, с которой проблем никогда не было. И оно... работает!
Оукееей, с таймстемпами все хорошо.
Тут, конечно, любой нормальный сетевик, шарящий за кафки, просек бы фишку. Но я не сетевик. И не шарю за кафки. Так что тычемся дальше.
2️⃣ Нашла, как включать дебаг на kcat.
Включила. Ничего особо не поняла🥲
3️⃣ Решила оставить запрос как есть, но поменять топик, по которому идет поиск.
И... оно начало работать и... зависло.
Сменила топик еще раз. Не работает.
И еще раз... заработало🥲
4️⃣ Теперь включаем дебаг на работающем топике, а потом на неработающем!
И вот он, метод обезьянки - я ничего не понимаю в логе, но могу глазками сравнить позитивный и негативный случаи, буквально посимвольно, чтобы обнаружить, где всё пошло не по плану.
5️⃣ Нашла. Понятнее не стало.
6️⃣ Отчаялась и начала писать ИИ, чтобы скормить ему обезличенный лог.
7️⃣ Получила, что команда в целом нерабочая, т.к. kcat, оказывается, может принять на вход только один таймстемп. Вздохнула.
8️⃣ Уверила ИИ, что команда рабочая. Попросила посмотреть на лог, а не бежать впереди паровоза.
9️⃣ ИИ решил, что проблема в недоступности брокера. Предложил попинговать тот, что указан в логе.
Брокер из лога пинговался. Да и до этого я пинговала несколько брокеров. Но дело в том, что на этой кафке брокеров было под 60 штук.
По итогу - я пропинговала все брокеры этой кафки, чтобы понять, что часть из них почему-то находятся в другой подсети, недоступной с моей машины, но доступной с машины из п.1. И именно на этих нескольких брокерах и сидит мой топик.
Какие выводы из этой увлекательной (увлекательной же?..) истории можно сделать:
Последний вывод - в такие моменты я понимаю важность насмотренности, о которой часто говорят на собесах. Ну где, как не в реальных проектах мотать на ус нюансы инженерных решений!Или почему 8 брокеров из 60 в другой подсети НУ ПОЧЕМУ 💯
Тут снова только вздохнуть. Админь.
Или как решать проблемы методом обезьянки
Задача: протестировать поиск по топику Kafka с использованием kcat.
Вообще, пока что, самый прекрасный инструмент, что мне попадался. Все самое прекрасное почему-то всегда линуксовое и консольное
Да-да, аналитик и тестировать. Просто без этого инструмента я буду через три недели как без рук, т.к. не смогу доказывать, кто не прав.
И есть у нас 2 кафки. Своя и чужая. И чужая с поиском по ней нужна больше, т.к. часто она - единственный источник правды на тему, чья подсистема виновата в проблемах обработки.
Запускаем команду на поиск, смысл которой:
Найди мне сообщение в промежутке с 14:30 до 14:40 с вхождением строки "ромашка"
На своей кафке все прекрасно.
На чужой...
ERROR: offsets_for_times failed: Local: Timed out
Ага. На вход скормили время 14:30 и 14:40, но по этому времени кафка не смогла найти оффсеты сообщений. Казалось бы, ну нет там сообщений за это время, отстань, противная. Но нюанс в том, что я сначала убедилась, что сообщение есть, а потом пошла его искать.
Как я развлекалась в течение следующего часа:
Для этого запустила такой же поиск, но с другой машины, с которой проблем никогда не было. И оно... работает!
Оукееей, с таймстемпами все хорошо.
Тут, конечно, любой нормальный сетевик, шарящий за кафки, просек бы фишку. Но я не сетевик. И не шарю за кафки. Так что тычемся дальше.
Включила. Ничего особо не поняла
И... оно начало работать и... зависло.
Сменила топик еще раз. Не работает.
И еще раз... заработало
И вот он, метод обезьянки - я ничего не понимаю в логе, но могу глазками сравнить позитивный и негативный случаи, буквально посимвольно, чтобы обнаружить, где всё пошло не по плану.
Брокер из лога пинговался. Да и до этого я пинговала несколько брокеров. Но дело в том, что на этой кафке брокеров было под 60 штук.
По итогу - я пропинговала все брокеры этой кафки, чтобы понять, что часть из них почему-то находятся в другой подсети, недоступной с моей машины, но доступной с машины из п.1. И именно на этих нескольких брокерах и сидит мой топик.
Какие выводы из этой увлекательной (увлекательной же?..) истории можно сделать:
1️⃣ Если что-то не работает - накидай любых гипотез, почему. Желательно таких, которые ты можешь проверить.2️⃣ Найди инструмент, с помощью которого можно понять, что не работает внутри исследуемого компонента. В моем случае - как включить дебаг.3️⃣ Если что-то, что ты изучаешь, ругается на переменную Х (у меня - таймстемп) - проверь адекватность этой переменной. Если с ней все в порядке - меняй соседние переменные. Но только по одной. Если найдешь рабочий кейс - иди к п.44️⃣ Даже если ты ничего не понимаешь, но можешь хоть что-то сравнить глазами (как логи для позитивного и негативного кейса) - сравни. Даже если там написана абракадабра - шанс найти идею не нулевой.
Последний вывод - в такие моменты я понимаю важность насмотренности, о которой часто говорят на собесах. Ну где, как не в реальных проектах мотать на ус нюансы инженерных решений!
Тут снова только вздохнуть. Админь.
Please open Telegram to view this post
VIEW IN TELEGRAM
😱3🔥1😁1🤝1
Техподдержечное #2
Или как выгодно себя показать благодаря лени соседа
Приходит ко мне фронтендер и говорит - на меня тут багу повесили, а я что-то хз, что с ней делать, я не понимаю, при чем тут фронт.
Так-то я сама вообще в другой компании работаю, и тем более хз, но... как не поковыряться-то😏
Бэкендеры уже всё посмотрели. Проблема не на их стороне. До них даже запрос не доходит! И не на стороне тех, кто инфраструктуру настраивал.
Кто у нас остался? Фронт? А, он ничего не делает с этой ссылкой, только в метод передает? Не суть. Все же остальные не виноваты🙂
Эта задача чуть более простая с точки зрения исследования, чем вчерашняя. Очевидно, что есть какая-то проверка на "ссылочность" строкового содержимого. Только вот интересно, она - просто какая-то регулярка или там что похитрее?
1️⃣ Если строка уходит без ошибок, а строка со ссылкой падает в ошибку - надо понять, в какой момент то, что находится в строке, становится ссылкой.
Для этого начинаем постепенно вводить в форму что-то, что будет "приближаться" к ссылке, например:
⏩ "https"
⏩ "https:"
⏩ "https://"
⏩ "https://www"
... и так далее.
У нас ссылкой стало такое:
2️⃣ Как только обнаружили - проверяем, а можно ли как-то изменить "ссылку" так, чтобы она стала перестала вызывать ошибку.
Т.е. менять ее компоненты - протокол или домен.
В нашем случае оказалось, что отвергаются все ссылки, с доменом != домену стенда.
Ссылки с доменом стенда спокойно проходят, несмотря на то, что они тоже ссылки🤡
Чувствуете, как запахло настройками от безопасников?🙂 🙂 🙂
Выводы тут достаточно простые:
А фронтендер на следующий день выглядел очень умным в глазах менеджеров.
Иногда стремление разобрать даже то, что напрямую к тебе не относится, может принести интересные результаты.
Или как выгодно себя показать благодаря лени соседа
Приходит ко мне фронтендер и говорит - на меня тут багу повесили, а я что-то хз, что с ней делать, я не понимаю, при чем тут фронт.
Так-то я сама вообще в другой компании работаю, и тем более хз, но... как не поковыряться-то
Задача: с тестового стенда уходит форма, в которой один из параметров - строка, в ней по смыслу должны быть ссылка. Там всё ок.
С предпродового стенда форма падает в ошибку после отправки (возвращается неуспешный http-код), если указать ссылку ссылкой, а если вместо ссылки ввести строку, то всё ок.
Бэкендеры уже всё посмотрели. Проблема не на их стороне. До них даже запрос не доходит! И не на стороне тех, кто инфраструктуру настраивал.
Кто у нас остался? Фронт? А, он ничего не делает с этой ссылкой, только в метод передает? Не суть. Все же остальные не виноваты
Эта задача чуть более простая с точки зрения исследования, чем вчерашняя. Очевидно, что есть какая-то проверка на "ссылочность" строкового содержимого. Только вот интересно, она - просто какая-то регулярка или там что похитрее?
Для этого начинаем постепенно вводить в форму что-то, что будет "приближаться" к ссылке, например:
... и так далее.
У нас ссылкой стало такое:
<протокол>://www.<домен>.<а тут уже что угодно>Т.е. менять ее компоненты - протокол или домен.
В нашем случае оказалось, что отвергаются все ссылки, с доменом != домену стенда.
Ссылки с доменом стенда спокойно проходят, несмотря на то, что они тоже ссылки
Чувствуете, как запахло настройками от безопасников?
Выводы тут достаточно простые:
1️⃣ Если у вас на одном стенде "все работает", а на соседнем - "нет", то проблема почти наверняка в разности стендов. Начиная от того, что просто нечаянно разные ветки кода на них оказались, заканчивая проблемами с железом.
Что-то легче находится, что-то проще, но подумать надо в первую очередь об этом.2️⃣ Если у вас строка, и "просто строка" работает, а "сложно строка" - нет, значит, надо, шаг за шагом, буква за буквой понять, в какой момент одно превращается в другое.3️⃣ Выявив точный вид того, что вызывает проблему, можно попробовать этот вид всяко поизменять. Но тоже по одной части за раз! Так можно сделать проблему более узкой.
А фронтендер на следующий день выглядел очень умным в глазах менеджеров.
Иногда стремление разобрать даже то, что напрямую к тебе не относится, может принести интересные результаты.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3🔥2👍1
Техподдержечное #3
Или как иногда просто доказать "невозможное"
Сидим мы, никого не трогаем, и тут в чатики врывается заказчик:
Тут еще было очень похоже на вчерашнюю историю. На тесте работает, на проде нет.
Я очень не хотела вовлекаться в поиск решения. Уже не работала на проекте, да и он порядком меня вымотал в свое время.
На второй день появились новые вводные от заказчика:
🔘 В тот момент у меня в голове фоном пронеслось: а есть ли у нашего прода доступ по сети во внешний мир?... 😮
Т.к. и подсказки, и рассылки, зависят от внешних сервисов вне нашей инфраструктуры.
Но как так может быть, нет, там же все в Яндекс Облаке, и прод, и тест, а на тесте все ок.
И вообще я не сетевик. Не может же из Яндекс Облака для теста быть доступ вовне, а для прода нет?
Программисты исследовали. Второй день заканчивался, а ничего не понятно. Менеджер на взводе.
🔘 И тут я все-таки решаю высказать предположение про сеть. Правда тихонько и только программисту 😅
Оказалось, у нас на машинах прода нетни-ху-.. ничего, чтобы сделать http-запросик руками. Даже банального curl.
Но в итоге мы сделали просто...
Чтобы обнаружить, что с теста пинг идет, а с прода нет. И вообще во внешний мир запросы с прода не уходят.
Выводы не сильно замысловатые:
Отдельный, конечно, вопрос, где у вас логи и мониторинги. Не будем о грустном.
Иногда - какой проект, такой, кхм, и мониторинг с логами🤍
Или как иногда просто доказать "невозможное"
Сидим мы, никого не трогаем, и тут в чатики врывается заказчик:
У нас на проде не работают рассылки! Мы не информируем клиентах о новых заявках на закупку! А они могли бы подать коммерческое предложение!!!
Тут еще было очень похоже на вчерашнюю историю. На тесте работает, на проде нет.
Я очень не хотела вовлекаться в поиск решения. Уже не работала на проекте, да и он порядком меня вымотал в свое время.
На второй день появились новые вводные от заказчика:
У нас теперь еще и не работают подсказки адресов в интерфейсе!
(ну это когда вы вводите "моск", а дружелюбный интерфейс вам "Москва? Московская область?")
Т.к. и подсказки, и рассылки, зависят от внешних сервисов вне нашей инфраструктуры.
Но как так может быть, нет, там же все в Яндекс Облаке, и прод, и тест, а на тесте все ок.
И вообще я не сетевик. Не может же из Яндекс Облака для теста быть доступ вовне, а для прода нет?
Программисты исследовали. Второй день заканчивался, а ничего не понятно. Менеджер на взводе.
Оказалось, у нас на машинах прода нет
Но в итоге мы сделали просто...
ping 8.8.8.8 // да-да, пинг гугла
Чтобы обнаружить, что с теста пинг идет, а с прода нет. И вообще во внешний мир запросы с прода не уходят.
Выводы не сильно замысловатые:
1️⃣ Если проблем несколько, но у них есть какая-то общая часть, возможно, проблема в ней.
Даже если это выглядит ооочень странным на фоне остального.2️⃣ Иногда самыми простыми инструментами проблему можно выявить очень легко. А ещё мы очень склонны усложнять, если проблема выглядит нетривиальной
Отдельный, конечно, вопрос, где у вас логи и мониторинги. Не будем о грустном.
Иногда - какой проект, такой, кхм, и мониторинг с логами
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6👨💻1
Техподдержечное #4
Или как мы почти поверили в мистику
Одна из моих любимых историй. Хоть я и не сделала ничего для ее раскрытия🙂
Тот же проект, что из истории вчера. Тот же заказчик врывается в чатики с фоточкой, приведенной выше.
❓
Ну... То, что в коде фронта и бэка нет ничего про смерть, в целом, очевидно. И доказуемо.
Но тогда... Что это, епрст, такое🤡
В целом ответ оказался не сложный, но неожиданный.
У клиента в браузере стоял автоматический Google-переводчик. Он цеплялся за аббревиатуры на латинице на странице и пытался ее перевести.
А если вы даже сейчас откроете его, выберете исходным языком английский, а финальным - русский, и попросите его перевести "Итого к оплате"... Попробуйте. Будет забавно :)
Так много вопросов, так мало ответов🙂 И работает до сих пор, хотя этой истории, кажется, уже года 3 точно.
По классике, выводы:
😅
Или как мы почти поверили в мистику
Одна из моих любимых историй. Хоть я и не сделала ничего для ее раскрытия
Тот же проект, что из истории вчера. Тот же заказчик врывается в чатики с фоточкой, приведенной выше.
У нас клиент видит фразу про смерть!!! Это что такое!!!
Ну... То, что в коде фронта и бэка нет ничего про смерть, в целом, очевидно. И доказуемо.
Но тогда... Что это, епрст, такое
В целом ответ оказался не сложный, но неожиданный.
А если вы даже сейчас откроете его, выберете исходным языком английский, а финальным - русский, и попросите его перевести "Итого к оплате"... Попробуйте. Будет забавно :)
Так много вопросов, так мало ответов
По классике, выводы:
Если вы уверены, что в вашем коде чего-то нет, ищите что-то внешнее, что может преобразовывать информацию.Однако, у меня из огромного количества случаев этот - единственный, когда виноват не свой собственный код
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣3👻1🙈1
18 апреля, в субботу, пройдёт онлайн-конференция Аналитический марафон #17 по теме
"Технологии и коммуникации в работе системного аналитика"
Точные дата и время: 18.04.2026, суббота, 10:00-17:00
Некоторые темы докладов:
Полная программа, а также регистрация и билеты доступны по ссылке
И еще мои подписчики могут воспользоваться промокодом
AK20_AM17 на 20% скидки (тип билета - Полный доступ)! Please open Telegram to view this post
VIEW IN TELEGRAM
analyst-marathon.timepad.ru
Аналитический Марафон#17. Технологии в работе системного аналитика / События на TimePad.ru
❤1🔥1