Long time no see, yooooo 😎
Завязка
Не считая предыдущего поста, я не светился почти три месяца, и на это есть причина.
Одна из двух больших целей на этот год - это покупка квартиры. Не сказать, что я мечтал о ней или мне это было критически необходимо, скорее наоборот думал, что квартира станет обузой, так как у меня нет и не было планов задерживаться в каком либо месте. Но мое мнение поменялось на 180 градусов, когда я услышал аргумент про то, что своя квартира - это отличная возможность жить стабильно за копейки, а возможности я люблю. Если жить не супер роскошно, то зачастую съем - это половина(а то и больше) расходов за месяц, то есть время, которые мы можем провести за счет накопленный возрастает вдвое, что потрясающе.
Ну и конечно ипотека в 6% ощущается как подарок при ставке в ~20%, поэтому я решил действовать... И через пол года начал🙃
Превозмогание
Я не ожидал, но это оказалось действительно сложной задачей. Столько решений как в предыдущие 5 месяцев, я не принимал за последние пару лет, от выбора города, где купить квартиру, до выбора цвета обоев. К тому же я хотел как можно быстрее закончить процесс заселения и вернуть тот уровень комфорта, который был на предыдущем месте. Все это полностью парализовало мою работу за последний месяц, буквально все активности пошли под нож.
Если кто-то тоже планирует впервые купить себе квартиру, то задавайте вопросы, постараюсь ответить.
Есть конечно и второй минус - пока ипотека не выплачена, я ограничен РФ и работой на компании с аккредитацией до полного погашения. Все это довольно значительно, поэтому я скорей всего буду выплачивать ипотеку как можно быстрее(многоработничество🤔 ), хоть это и не особо выгодно с текущей инфляцией.
Счастливый конец
И все же It's done😎 и я постепенно собираюсь возвращаться в ритм, который был в конце 2024, так как ВУ сама себя не найдет и ютуб падпищеков не накинет.
Кста, если есть кто из Калининграда, отзовитесь, а то в Ростове было пару интересных сообществ, а тут не понятно.
Еще я написал кучу постов на LinkedIn за последние несколько месяцев, так что буду благодарен за реакции, комменты. Один из них даже набрал 6к охвата:
Ноль
Раз
Два
Три
Четыре
Пять
Шесть
Семь
Восемь
Девять
Десять
Завязка
Не считая предыдущего поста, я не светился почти три месяца, и на это есть причина.
Одна из двух больших целей на этот год - это покупка квартиры. Не сказать, что я мечтал о ней или мне это было критически необходимо, скорее наоборот думал, что квартира станет обузой, так как у меня нет и не было планов задерживаться в каком либо месте. Но мое мнение поменялось на 180 градусов, когда я услышал аргумент про то, что своя квартира - это отличная возможность жить стабильно за копейки, а возможности я люблю. Если жить не супер роскошно, то зачастую съем - это половина(а то и больше) расходов за месяц, то есть время, которые мы можем провести за счет накопленный возрастает вдвое, что потрясающе.
Чиллить без работы целый год?
Почему бы и да!
Ну и конечно ипотека в 6% ощущается как подарок при ставке в ~20%, поэтому я решил действовать... И через пол года начал🙃
Превозмогание
Я не ожидал, но это оказалось действительно сложной задачей. Столько решений как в предыдущие 5 месяцев, я не принимал за последние пару лет, от выбора города, где купить квартиру, до выбора цвета обоев. К тому же я хотел как можно быстрее закончить процесс заселения и вернуть тот уровень комфорта, который был на предыдущем месте. Все это полностью парализовало мою работу за последний месяц, буквально все активности пошли под нож.
Если кто-то тоже планирует впервые купить себе квартиру, то задавайте вопросы, постараюсь ответить.
Есть конечно и второй минус - пока ипотека не выплачена, я ограничен РФ и работой на компании с аккредитацией до полного погашения. Все это довольно значительно, поэтому я скорей всего буду выплачивать ипотеку как можно быстрее(многоработничество
Счастливый конец
И все же It's done
Кста, если есть кто из Калининграда, отзовитесь, а то в Ростове было пару интересных сообществ, а тут не понятно.
Еще я написал кучу постов на LinkedIn за последние несколько месяцев, так что буду благодарен за реакции, комменты. Один из них даже набрал 6к охвата:
Ноль
Раз
Два
Три
Четыре
Пять
Шесть
Семь
Восемь
Девять
Десять
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥13👍6
Ради эксперимента бахнул только что около 50 откликов на hh с 4+ лет опыта, с условиями удаленка и 300к, посмотрим какая будет конверсия в приглашение на первый созвон.
Из интересного🤔
• Много вакансий гибрид или офис.
• Так же довольно много вакансий для челов с нулем опыта или < 3 лет.
• В целом вакансий реально мало, я хотел откликнутся на 100, но их тупо нет😔
• Если в вакансии есть вилка, то в 90% - это копейки.
Результаты через 1-2 недели кину. Мой предикт - 2 приглашения🙃
Из интересного
• Много вакансий гибрид или офис.
• Так же довольно много вакансий для челов с нулем опыта или < 3 лет.
• В целом вакансий реально мало, я хотел откликнутся на 100, но их тупо нет
• Если в вакансии есть вилка, то в 90% - это копейки.
Результаты через 1-2 недели кину. Мой предикт - 2 приглашения
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍17❤5🔥3😁2
Делаете ли вы небольшие заметки в течении дня? Если да, то где?
Anonymous Poll
8%
Notion
6%
Google Keep
6%
Apple Notes
23%
Telegram "Saved Massages"
0%
Evernote
28%
Obsidian
6%
Да, но в другом приложении (обязательно напиши в каком в комментах)
23%
Нет, не делаю
underground dev
Ради эксперимента бахнул только что около 50 откликов на hh с 4+ лет опыта, с условиями удаленка и 300к, посмотрим какая будет конверсия в приглашение на первый созвон. Из интересного🤔 • Много вакансий гибрид или офис. • Так же довольно много вакансий для…
Все, подвожу итоги🤓
По самим цифрам могу сказать, что результат ожидаемый🚬 ощущается, что довольно мало компаний сейчас ищут людей, особенно на 300к+, к тому же лето. Мой предикт был почти правильным, подал бы я еще в ozon, тогда точно было бы два собеса). Подожду октября-ноября закину еще откликов, посмотрим, что будет.
Собес кстати был в Альфу, я уже на нем побывал. Делал код ревью почти на полтора часа, довольно прикольно, без топ 100 вопросов.
Ну и hh конечно помойка еще та, как будто там половина вакансий вообще не действующих, на 4-5 вакансий мне вообще сразу отказ прилетел, хотя откликался я в 12 часов ночи. Хотя главный фактор - это конечно куча "полезных" фич, по типу оценки знаний с помощью тестов(хахаха) или автоотклики и автоподнятие резюме, сами проблему создали, сами её решили, сами наградили себя медалькой🤡 Очевидно все это делается, чтобы скосить немного бабок с инвесторов, а то акции бьют все анти рекорды, оно и понятно почему.
Думаю, что через месяц, проведу еще эксперимент - пооткликаюсь на более нишевых площадках, в тг и посмотрю какая там будет конверсия.
PS: я там добавил карту канала в описание(понял, что теги фигня) и обновил пост-знакомство, можете посмотреть/перечитать🙈
11 - в архиве
16 - отказов
17 - ожидание
2 компании написали, 1 собес
По самим цифрам могу сказать, что результат ожидаемый
Собес кстати был в Альфу, я уже на нем побывал. Делал код ревью почти на полтора часа, довольно прикольно, без топ 100 вопросов.
Ну и hh конечно помойка еще та, как будто там половина вакансий вообще не действующих, на 4-5 вакансий мне вообще сразу отказ прилетел, хотя откликался я в 12 часов ночи. Хотя главный фактор - это конечно куча "полезных" фич, по типу оценки знаний с помощью тестов(хахаха) или автоотклики и автоподнятие резюме, сами проблему создали, сами её решили, сами наградили себя медалькой
Думаю, что через месяц, проведу еще эксперимент - пооткликаюсь на более нишевых площадках, в тг и посмотрю какая там будет конверсия.
PS: я там добавил карту канала в описание(понял, что теги фигня) и обновил пост-знакомство, можете посмотреть/перечитать
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍16❤3😁3🤯3🔥2
Как говорил в предыдущем посте, я побывал на собесе в Alfabank.
Это был нормальный собес на полтора часа с разбором кода, который был очень похож на задачу с озона, только объемней.
Забегая на перед, я его не прошел, но получил фидбэк. Выложу его по позже, так как там есть пара забавных моментов, а вы пока смотрите сам собес.
https://youtu.be/QcYXkWahr5g
Кстати, вы бы лучше реакции ставили так, как голосовали😏
ЗЫ: Я запорол немного качество видео, так что лучше смотрите с компа, соре
Это был нормальный собес на полтора часа с разбором кода, который был очень похож на задачу с озона, только объемней.
Забегая на перед, я его не прошел, но получил фидбэк. Выложу его по позже, так как там есть пара забавных моментов, а вы пока смотрите сам собес.
https://youtu.be/QcYXkWahr5g
Кстати, вы бы лучше реакции ставили так, как голосовали
ЗЫ: Я запорол немного качество видео, так что лучше смотрите с компа, соре
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Техническое собеседование в Alfabank | Senior Developer | Команда кэшбека
Актуальную информацию по собеседованиям и другие материалы, вы всегда можете найти в ТГ: https://t.me/undergrounddev_v1
7👍44🔥11
И так по поводу фидбэка c Альфы😏
Для начала хочу сказать, что мне его не дали и тупо заигнорили в личке, классика.
Но знаете... у меня был отпуск и я подумал почему бы не заставить поработать других пока я отдыхаю🙂 хотя бы немного. Так как сам рекрутер не ответил, я подумал написать на hr почту, её я не нашел на сайте. Дальше пошел в LinkedIn поискать кого то начальника отдела или типа того, но не нашел этого рекрутера. В итоге пришлось писать в VK, на их HR аккаунт.
И вуаля, через полтора часа мне все же отвечают на мое сообщение в телеграмме🥲 Сначала общим "Продолжили общаться с другим кандидатом", но после того, как я написал, что мне вообще собеседующий обещал фидбэк, скинули сам фидбэк.
Какой вывод с этого можно сделать? Если вы считаете, что нормально прошли собес, но вас игнорят с фидбэком, а он вам интересен - можно писать кому-то повыше и спрашивать "А игнор кандидатов - это часть вашего HR бренда?" только более формально. Так как большие компании обычно заботятся о бренде, вероятно они что-то да сделают.
Давайте же взглянем на этот фидбэк🤔
В этом фидбэке, хорошо все. Даже не знаю с чего начать, может с того, что все время собеседования я потратил на разбор ошибок и времени больше не было; или с того, что пути к проектам были указаны парой строк комментариев из 250 строк кода, что превращается скорее в тест на внимательность, чем на знания; а может с того, что я вскользь упомянул, что у классов не хватает интерфейсов; ну и на последок упомянутая мной надобность асинхронной обработки нотификации, статистики(кликхаус), кэш - конечно же не архитектура👍 . Ну давайте опустим все эти не технические вопросы, может фидбэк вообще шаблонный. Я хочу поднять другую тему.
Главный вопрос, который у меня возник "А с какого я вообще должен реализовывать именно Чистую архитектуру? Какие есть предпосылки к этому?"
То что я вижу в большинстве проектов под понятием "Чистая архитектура" - использование DI, локализация зависимости и оборачивание её в интерфейс, а так же раскидывания всего по проектам Api, BusinessLogic, Infrastracture и тп.
Но разве это плохо? Скорее нет, хотя меня иногда меня забавляет высокая озабоченность решением о, том что в какой проект засунуть, как будто если разместить все в одном, то что-то кардинально изменится, это просто удобство, важны лишь реальные зависимости между классами(не говоря о проектах с тестами, дистрибуции сборок и тп). НО зачем всему этому давать такое громкое название как "Читая архитектура" мне не понятно, если вместо этого можно говорить более конкретно.
Что я имею ввиду? Если вы используете инверсию зависимости, то так и говорите; если в используете rich объекты вместо анемичных, то так и говорите; если вы избавляетесь от сайд-эффектов в бизнес логике, то так и говорите. Все это намного более конкретные термины.
Для начала хочу сказать, что мне его не дали и тупо заигнорили в личке, классика.
Но знаете... у меня был отпуск и я подумал почему бы не заставить поработать других пока я отдыхаю
И вуаля, через полтора часа мне все же отвечают на мое сообщение в телеграмме
Какой вывод с этого можно сделать? Если вы считаете, что нормально прошли собес, но вас игнорят с фидбэком, а он вам интересен - можно писать кому-то повыше и спрашивать "А игнор кандидатов - это часть вашего HR бренда?" только более формально. Так как большие компании обычно заботятся о бренде, вероятно они что-то да сделают.
Давайте же взглянем на этот фидбэк
К сожалению кандидат увидел явные и бросающееся в глаза ошибки в коде, при этом кандидат не увидел проблемы связанные с архитектурой приложения (нарушен подход чистой архитектуры на всех слоях приложения), поэтому весь пласт вопросов связанный с проектированием приложения не удалось задать.
В этом фидбэке, хорошо все. Даже не знаю с чего начать, может с того, что все время собеседования я потратил на разбор ошибок и времени больше не было; или с того, что пути к проектам были указаны парой строк комментариев из 250 строк кода, что превращается скорее в тест на внимательность, чем на знания; а может с того, что я вскользь упомянул, что у классов не хватает интерфейсов; ну и на последок упомянутая мной надобность асинхронной обработки нотификации, статистики(кликхаус), кэш - конечно же не архитектура
Главный вопрос, который у меня возник "А с какого я вообще должен реализовывать именно Чистую архитектуру? Какие есть предпосылки к этому?"
То что я вижу в большинстве проектов под понятием "Чистая архитектура" - использование DI, локализация зависимости и оборачивание её в интерфейс, а так же раскидывания всего по проектам Api, BusinessLogic, Infrastracture и тп.
Но разве это плохо? Скорее нет, хотя меня иногда меня забавляет высокая озабоченность решением о, том что в какой проект засунуть, как будто если разместить все в одном, то что-то кардинально изменится, это просто удобство, важны лишь реальные зависимости между классами(не говоря о проектах с тестами, дистрибуции сборок и тп). НО зачем всему этому давать такое громкое название как "Читая архитектура" мне не понятно, если вместо этого можно говорить более конкретно.
Что я имею ввиду? Если вы используете инверсию зависимости, то так и говорите; если в используете rich объекты вместо анемичных, то так и говорите; если вы избавляетесь от сайд-эффектов в бизнес логике, то так и говорите. Все это намного более конкретные термины.
//----------------------------------------------------------------------------------------------------------------------
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍18🔥5🤡1
Обращаясь к оригиналу, а именного книге Роберта Мартина...🤓 Ну чего там только не написано, и про ООП, и про ФП, и про SOLID, но четкого определения нет. Чел просто вкратце написал, все что знал)
Можно посчитать, что главный принцип - это "Зависимости в исходном коде должны быть направлены внутрь, в сторону
высокоуровневых политик(ака бизнес логики)". Что это блин значит?
Если вы подумали, что вот же есть инверсия зависимостей, она то и решает эту проблему💡 ! Честно говоря, для меня это выглядит как копиум😣 . Вот у меня обращения в БД, вот логи пишу, вот метрики собираю, я все это вижу, оно прям в бизнес логике! Конечно я могу подменить реализации, но я остаюсь зависим от них! К тому же часто ли вам приходилось подменять зависимость без изменения интерфейса(не считая юнит-тестирования)? Я понимаю, когда например делают какой-нибудь ICache, так как он может быть шариться между разными микросервисами, без него будет реально тяжело заменить реализацию. Но если у вас в небольшом микросервисе, есть репозиторий или сервис, зачем там интерфейс?🤨 У него вероятно будет не больше 20-ти вызовов. Его в любом случае будет легко заменить.
Есть конечно и "трушный" способ избавляться от зависимостей - это выделять детерминированную и идемпотентную логику, ака писать чистые функции(хаха, опять чистые😄 ). Насколько это практически применимо? Ставлю сотку, что почти не применимо 🙅♂️ . Вспоминаем про логгирование, метрики и тп; это менее производительно, так как данные нужно подтягивать все и заранее, а не постепенно и по ходу выполнения бизнес логики; некоторая логика тесно связано с транзакциями. Есть конечно мизерное кол-во логики на некоторых проектах бэка, которую можно так выделить , но это обычно не то, о чем говорят.
Короче подводя итог, мне тупо не нравиться термин "Чистая архитектура", и другие схожие с ним из-за их размытости. Причем, если задуматься, то большинство вещей в построении архитектуры все же имеют прозрачное определение - очереди, кеш, фича слайсинг, различные паттерны и тп.
Ну и полезной практикой для любого разработчика, особенно начинающего, я считаю будет задавать себе вопросы
Не делайте все на автомате➕
Может я что-то реально упускаю в своих рассуждениях? Пишите в комментах, желательно с реальными примерами)
PS: меня позвали еще на один собес, так что мой предикт в 2 собеса на 100% оправдался😕
Можно посчитать, что главный принцип - это "Зависимости в исходном коде должны быть направлены внутрь, в сторону
высокоуровневых политик(ака бизнес логики)". Что это блин значит?
Если вы подумали, что вот же есть инверсия зависимостей, она то и решает эту проблему
Есть конечно и "трушный" способ избавляться от зависимостей - это выделять детерминированную и идемпотентную логику, ака писать чистые функции(хаха, опять чистые
Короче подводя итог, мне тупо не нравиться термин "Чистая архитектура", и другие схожие с ним из-за их размытости. Причем, если задуматься, то большинство вещей в построении архитектуры все же имеют прозрачное определение - очереди, кеш, фича слайсинг, различные паттерны и тп.
Ну и полезной практикой для любого разработчика, особенно начинающего, я считаю будет задавать себе вопросы
Зачем я добавляю очередную модель, репозиторий, сервис, абстракцию? Что будет, если не добавлю? Тяжело ли будет добавить потом?
Не делайте все на автомате
Может я что-то реально упускаю в своих рассуждениях? Пишите в комментах, желательно с реальными примерами)
PS: меня позвали еще на один собес, так что мой предикт в 2 собеса на 100% оправдался
//----------------------------------------------------------------------------------------------------------------------
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍18🔥5🌚2
Короче был недавно на собесе на Senior разраба, были примерно такие вопросы:
Q: Как сделать так, чтобы только определенные потребители в группе Кафка обрабатывали сообщения?
(10 мин спустя)
Q: Расскажите про try/catch, как он работает? Что такое finally?
Вот так я себя чувствовал пока отвечал на второй вопрос: 😡
Q: Как сделать так, чтобы только определенные потребители в группе Кафка обрабатывали сообщения?
(10 мин спустя)
Q: Расскажите про try/catch, как он работает? Что такое finally?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7🌚1
А вы знали, что тернарки можно писать в свитч стиле? 😳
Но и из буханки белого можно сделать троллейбус, но зачем?
На первый вопрос у меня ответ все же есть. Если вы перепишите этот код на switch или даже if, то ef core не транслирует это в SQL, а жаль😔
Правда я так и не придумал как этот метод переделать так, чтобы я мог его переиспользовать для конвертации двух статусов в один для использования вне ef🤔
Короче паттерн матчинг, тернарный оператор - 0:1
Но и из буханки белого можно сделать троллейбус, но зачем?
На первый вопрос у меня ответ все же есть. Если вы перепишите этот код на switch или даже if, то ef core не транслирует это в SQL, а жаль
Правда я так и не придумал как этот метод переделать так, чтобы я мог его переиспользовать для конвертации двух статусов в один для использования вне ef
Короче паттерн матчинг, тернарный оператор - 0:1
Please open Telegram to view this post
VIEW IN TELEGRAM
Решил, спонтанно записать видос по деплою, думал минут на 20 будет, не получилось. Сел записывать еще вчера, а закончил минут 10 назад 👍 Короче целый интенсив получился. Но самое забавное, что где-то 20% из запланированного все же не сделал🙃
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍15🔥6❤1
Давайте голосовалку!
✍️
Деплоил ли ты когда либо свое приложение с нуля?
Деплоил ли ты когда либо свое приложение с нуля?
Anonymous Poll
60%
Да
39%
Нет
2%
Нечего деплоить, не бэкендер, не фронт и тп.
underground dev
Давайте голосовалку!
✍️
Деплоил ли ты когда либо свое приложение с нуля?
Деплоил ли ты когда либо свое приложение с нуля?
Что ж, это шанс для 39% проголосовавших исправиться 😗 так на канале вышел новый видос по деплою:
https://youtu.be/hWtdhRt7ziY
ЗЫ: лайк не забудьте поставить
Ссылки из видоса🤩
Схема(diagrams.net): https://drive.google.com/file/d/14g294QTy6GgeFSoFd79rKbLq0zzqp6wF
Проект: https://github.com/dannythehumbleguy/easy-devops-example
https://youtu.be/hWtdhRt7ziY
Ссылки из видоса
Схема(diagrams.net): https://drive.google.com/file/d/14g294QTy6GgeFSoFd79rKbLq0zzqp6wF
Проект: https://github.com/dannythehumbleguy/easy-devops-example
Please open Telegram to view this post
VIEW IN TELEGRAM
119🔥23👍1
Вчера словил невероятнейший баг, следите за руками, дамы и господа.
Есть два сервиса, один grpc клиент A, другой сервис B.
Делал фичу, где нужно было добавить новый эндпоинт на А и вызвать из B.
После завершения кодинга, пришло время немного потестить локально, поднимаю два сервиса, думаю сейчас лайтово😎 за часик накидаю данных в бд и позапускаю свои фичи. Но вскоре вижу ошибку на клиенте:
Думаю ну наверное proto файлы разошлись, скопировал полностью файл, ошибка сохраняется.
Пошел дебажить, вижу, что мой код на сервере действительно отрабатывает без ошибок и передает управление дальше по пайплайну обработки запроса.
Иду спрашивать GPT🤪 , что происходит. Он посоветовал dotnet clean, сравнить версии пакетов, проверить proto, эндпоинты, фактически сгенерированные файлы самой Grpc либой, включить trace-логирование grpc. Все хорошо, но ошибка сохраняется.
Дальше он предложил отправить запрос напрямую через grpcurl aka исключить клиент из уравнения, совет хороший. Не считая того, что я где-то 40 минут потратил💀 , чтобы запустить это из под powershell.
И тут я вижу:
После этого становится кристально понятно, что ошибка на самом деле на сервере, хотя в логах ничего такого не было👍
На этом моменте GPT начал галлюцинировать, и как сумасшедший повторять одно и то же "проверь proto, проверь версии..." и так далее. Помощник был потерян👨🔬
Думаю ну ладно, если мои новые методы не работают — подергаю старые, которые точно работают в проде. Иииииии... они сука тоже не работают, тут уже я начал шизеть🎧 , так как этот лайтовый вечер уже постепенно превращался в 5 часов беспрерывного дебага.
Дальше думаю "хмм, когда-то я точно тестил этот сервер локально и он работал нормально", начинаю откатываться по коммитам и пробовать запускать старые версии, хотя идея кажется бредовой, ведь сейчас на проде все работает.
1 релиз назад все еще сломано, 2 релиза назад тоже сломано, и вот 3 релиза назад все работало локально, бинго.
Смотрю, что там вообще было такого добавлено, а там даже grpc никаким образом не трогали, WTF?🤔
И единственное, что было сделано — это добавлено подробное логгирование всех HTTP запросов, которое включалось по флагу в переменных окружения, чтобы можно было отдебажить конкретный сервис, если там что-то произойдет. Его настройка выглядит так, сама фича дефолтная и от майков:
При локальном же запуске используется статический конфиг, где эта настройка включена, так как локально полные логи могут быть удобны. Дальше я отключаю это логгирование в своей ветке с новой фичей, и тут происходит невероятное - все работает😬
Есть два сервиса, один grpc клиент A, другой сервис B.
Делал фичу, где нужно было добавить новый эндпоинт на А и вызвать из B.
После завершения кодинга, пришло время немного потестить локально, поднимаю два сервиса, думаю сейчас лайтово
Grpc.Core.RpcException: 'Status(StatusCode="Internal", Detail="Failed to deserialize response message.").
Думаю ну наверное proto файлы разошлись, скопировал полностью файл, ошибка сохраняется.
Пошел дебажить, вижу, что мой код на сервере действительно отрабатывает без ошибок и передает управление дальше по пайплайну обработки запроса.
Иду спрашивать GPT
Дальше он предложил отправить запрос напрямую через grpcurl aka исключить клиент из уравнения, совет хороший. Не считая того, что я где-то 40 минут потратил
И тут я вижу:
Request metadata to send: (empty)
Error invoking method "persons.v1. PersonsGrpc/GetPartnerIdByBioId": grpc call for "persons.v1. PersonsGrpc.GetPartnerIdByBioId" failed: EOF
После этого становится кристально понятно, что ошибка на самом деле на сервере, хотя в логах ничего такого не было
На этом моменте GPT начал галлюцинировать, и как сумасшедший повторять одно и то же "проверь proto, проверь версии..." и так далее. Помощник был потерян
Думаю ну ладно, если мои новые методы не работают — подергаю старые, которые точно работают в проде. Иииииии... они сука тоже не работают, тут уже я начал шизеть
Дальше думаю "хмм, когда-то я точно тестил этот сервер локально и он работал нормально", начинаю откатываться по коммитам и пробовать запускать старые версии, хотя идея кажется бредовой, ведь сейчас на проде все работает.
1 релиз назад все еще сломано, 2 релиза назад тоже сломано, и вот 3 релиза назад все работало локально, бинго.
Смотрю, что там вообще было такого добавлено, а там даже grpc никаким образом не трогали, WTF?
И единственное, что было сделано — это добавлено подробное логгирование всех HTTP запросов, которое включалось по флагу в переменных окружения, чтобы можно было отдебажить конкретный сервис, если там что-то произойдет. Его настройка выглядит так, сама фича дефолтная и от майков:
if (config.Logging.FullHttpLogging)
builder.Services.AddHttpLogging(logging =>
{
logging.LoggingFields = HttpLoggingFields.All;
logging.RequestBodyLogLimit = 4096;
logging.ResponseBodyLogLimit = 4096;
logging.RequestHeaders.Add(HeaderNames.Authorization);
});
При локальном же запуске используется статический конфиг, где эта настройка включена, так как локально полные логи могут быть удобны. Дальше я отключаю это логгирование в своей ветке с новой фичей, и тут происходит невероятное - все работает
Please open Telegram to view this post
VIEW IN TELEGRAM
6❤12
Казалось бы grpc и логгирование запросов от ASP.NET Core — не сильно связанные вещи, но это только кажется. Я до сих пор не понимаю, почему такой баг происходит, так как мы еще не проводили ресерч, просто решили забить на фичу логгирования, может даже я чего-то не так сконфигурировал, но это забавно🙅♂️
Какой же можно вывод сделать?
Подобные приколы, когда приходится рвать волосы на голове, чтобы понять причину бага, редко, но происходят.
И я понял, что в целом решение таких проблем строится одним образом, есть несколько приемов.
У вас часто происходит подобное веселье?🚬
Какой же можно вывод сделать?
Подобные приколы, когда приходится рвать волосы на голове, чтобы понять причину бага, редко, но происходят.
И я понял, что в целом решение таких проблем строится одним образом, есть несколько приемов.
1) Сужайте область проблемы. В текущем примере, я исключил клиент, что мне помогло. В других примерах это может быть исключение или разделение кода, дебаг исходников и т. п.
2) Откатывайтесь на версии назад и проверяйте корректность. Одна из причин, почему итеративность очень важна в разработке.
3) Приближайте окружение к тому, на котором возник баг. Даже если кажется, что прод и локальный запуск похожи, а результат разный — значит тебе только кажется. Все уже поднять у тебя вряд ли получится, но обычно до этого и не доходит, копировать нужно тоже итеративно.
У вас часто происходит подобное веселье?
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥12👍9
Мой коммент к видосу ниже:
Для меня всегда программирование было с вайбом андеграунда. Даже если ты живёшь в ПГТ на 1000 человек, тебе не свезло с родителями, в кармане только на дошик, но у тебя есть ноут с интернетом, то ты в игре. Нужно лишь научится и доказать, что ты умеешь кодить, и все.
Никаких олимпиад, экзаменов, зависимостей от преподов, годик подучить 10 лишних предметов, "базы".
Если это реально будет будущее, то эта шиза даже рядом не стоит с накруткой.
PS: тезис про то, что диплом нельзя купить и выступление на конференции обязательно что-то значат - нереалистичны.
https://youtu.be/aQ3ltJ7wOC0?si=lNwt3O2B1lBK4nd8
Для меня всегда программирование было с вайбом андеграунда. Даже если ты живёшь в ПГТ на 1000 человек, тебе не свезло с родителями, в кармане только на дошик, но у тебя есть ноут с интернетом, то ты в игре. Нужно лишь научится и доказать, что ты умеешь кодить, и все.
Никаких олимпиад, экзаменов, зависимостей от преподов, годик подучить 10 лишних предметов, "базы".
Если это реально будет будущее, то эта шиза даже рядом не стоит с накруткой.
https://youtu.be/aQ3ltJ7wOC0?si=lNwt3O2B1lBK4nd8
YouTube
Я хочу уволить всех айтишников без образования
В этом видео я разрушу мифы о нехватке айтишников и покажу как вылечить найм айти специалистов в 2025 с помощью олимпиадной системы имени StepOne
#кризис #работа #айти
#кризис #работа #айти
6🔥11🤯5❤2👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁26🤡4
Короче... если брать весь контент Антона, который существует, то самое лучшее, что у него есть - это стримы с разбором ошибок\ситуаций\искажений людей, с которыми он общается. Все остальное даже на половину не лучше этого. Таких стримов было под десяток и мысли иногда повторяются, но если вы не видели ни одного, то недавно был новый и это моя рекомендация персональная: https://www.youtube.com/live/jg2m7X39vqw?si=Y1apTTV8njPzZ4GW&t=4323
PS: идеи там ценны не зависимо от того на каком вы этапе.
PS: идеи там ценны не зависимо от того на каком вы этапе.
YouTube
Споткнувшиеся о соломинку / Топ ошибок айтишников с зп 500к+
Продолжение стрима про SaaS, мои установки и подбор команды: https://boosty.to/m0rtymerr/posts/2642b189-ec24-4388-96cd-82e5a116ed59?share=post_link
В этом году я провел больше 10 мероприятий для айтишников и опросил ±300 человек лично. Мы подробно общались…
В этом году я провел больше 10 мероприятий для айтишников и опросил ±300 человек лично. Мы подробно общались…
👍10❤4
Дропнул разбор кода из собеса в Альфабанк, которое было несколько месяцев назад.
Прожмите там что нибудь😎
Ссылка на видео из поиска
Код из видео
Прожмите там что нибудь
Ссылка на видео из поиска
Код из видео
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥24
Всаааап 🎩
Мы с другом недавно начали делать приложуху, идея которой - делать заметку на ходу, кидая голосовые в тг. Чтобы не было такого, что “Лень записывать, отложу на потом…”, а позже “Так а что я хотел записать🤔 ?”
Короче мы накидали первый тестовый вариант, где можно сохранять заметки в Notion или в Mini apps, если первого у вас нет. Может позже еще интеграцию с чем-то сделаем, ты кстати что сам используешь?
Если хочешь начать сохранять свои идеи голосом, то ссылка на бота ниже😬
Бот: @YourVoiceNotesBot
Предложения, ошибки: @voicenotes_support
Мы с другом недавно начали делать приложуху, идея которой - делать заметку на ходу, кидая голосовые в тг. Чтобы не было такого, что “Лень записывать, отложу на потом…”, а позже “Так а что я хотел записать
Короче мы накидали первый тестовый вариант, где можно сохранять заметки в Notion или в Mini apps, если первого у вас нет. Может позже еще интеграцию с чем-то сделаем, ты кстати что сам используешь?
Если хочешь начать сохранять свои идеи голосом, то ссылка на бота ниже
Бот: @YourVoiceNotesBot
Предложения, ошибки: @voicenotes_support
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤10👍7🔥4
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯13🔥9👍4🌚3