Вы хотели новостей с курса, я принёт) а в следующем посте поговорим о уровнях транзакции в бдшках
Вчера стартовала 4-я неделя курса, уже почти половина прошла. Прогресс ребят можете видеть на картинке.
За это время:
- Мы три раза созванивались на 2 часа, чтоб обсудить все вопросики
- Я проверил почти 40 пул реквестов и записал дофига голосовых ахаха
- Один человек ушёл в академ и вернется на курс в следующем потоке, так как сейчас резко возник дефицит времени
- Один человек вернул курс, так как резко понадобились деньги. Я даже специально уточнил не говно ли мой курс на его вкус. Сказал всё чётко, просто бабло понадобилось
В целом всё идёт своим чередом. Код пилится, ребята учатся. В чатике очень крутая активность, друг другу помогают и всё такое. Я вроде тоже не особо устал проверять домашки, так что 20 человек с проверкой вполне норм темп получается. В понедельник у нас будет созвончик с Любой, которая расскажи об ошибках в составлении резюмешек на примере резюмех некоторых ребят с курса. Думаю будет весело и полезно.
Если у вас есть какие-то вопросики о том что и как у нас проходит, то задавайте, а то сложно прикинуть, что вам интересно узнать)
Вчера стартовала 4-я неделя курса, уже почти половина прошла. Прогресс ребят можете видеть на картинке.
За это время:
- Мы три раза созванивались на 2 часа, чтоб обсудить все вопросики
- Я проверил почти 40 пул реквестов и записал дофига голосовых ахаха
- Один человек ушёл в академ и вернется на курс в следующем потоке, так как сейчас резко возник дефицит времени
- Один человек вернул курс, так как резко понадобились деньги. Я даже специально уточнил не говно ли мой курс на его вкус. Сказал всё чётко, просто бабло понадобилось
В целом всё идёт своим чередом. Код пилится, ребята учатся. В чатике очень крутая активность, друг другу помогают и всё такое. Я вроде тоже не особо устал проверять домашки, так что 20 человек с проверкой вполне норм темп получается. В понедельник у нас будет созвончик с Любой, которая расскажи об ошибках в составлении резюмешек на примере резюмех некоторых ребят с курса. Думаю будет весело и полезно.
Если у вас есть какие-то вопросики о том что и как у нас проходит, то задавайте, а то сложно прикинуть, что вам интересно узнать)
🔥18🥰1
Время поговорить об уровнях изоляции транзакций в реляционках. Удобнее всего разложить за эти уровни на примере бабла и то, как вы можете его потерять, если выберете не тот уровень изоляции.
Для начало небольшой ликбез. Транзакция это набор действий, которые выполняются атомарно, то есть либо все, либо никто. Когда транзакция заканчивается успешно, внесенные ею изменения фиксируются операцией комит. А если всё пошло по бороде, тогда вызывается ролбек и всё откатывает.
А теперь к уровням. Сегодня начнём с самого мягкого и безумного.
READ UNCOMMITTED (Чтение незакомиченых данных)
Есть у меня корефан Лёха и как-то раз он решил перевести своей подружане Маше 100$. Вспомнил, что SWIFT не работает и пошёл искать рублёвую копилку))) Найдя, он наконец то закинул Маше перевод.
Но всё было не так-то просто. Маша уже увидела, как баланс пополнился лёхиными деньгами и побежала делать покупки, но транзакция ещё не завершилась - ну вы знаете эти банки))) И пока Маша заказывала себе новую книженцию по Go, Лёхин банк лаганул и отменил транзакцию аккурат в момент, когда Маша платила за книгу. И в итоге у неё возник отрицательны баланс.
Понятное дело, что Лёха тот ещё Алёша, коль пользуется таким банком, но радости это не добавляет) А всё дело в том, что кто-то “умный” заюзал самый неподходящий уровень изоляции транзакций для банка. Бабки ещё толком от Лёхи не улетели, а Маша уже видит их у себя на счету. А дальше что? ЗП за конец месяца я увижу на счёте в начале месяца ахахаха хотя где тут минусы ахахах
Кстати, в postgres этот уровень отключен к чертям. Видать создатели не любят ЗП раньше времени получать.
А вы когда нить юзали это уровень в проектах?
Для начало небольшой ликбез. Транзакция это набор действий, которые выполняются атомарно, то есть либо все, либо никто. Когда транзакция заканчивается успешно, внесенные ею изменения фиксируются операцией комит. А если всё пошло по бороде, тогда вызывается ролбек и всё откатывает.
А теперь к уровням. Сегодня начнём с самого мягкого и безумного.
READ UNCOMMITTED (Чтение незакомиченых данных)
Есть у меня корефан Лёха и как-то раз он решил перевести своей подружане Маше 100$. Вспомнил, что SWIFT не работает и пошёл искать рублёвую копилку))) Найдя, он наконец то закинул Маше перевод.
Но всё было не так-то просто. Маша уже увидела, как баланс пополнился лёхиными деньгами и побежала делать покупки, но транзакция ещё не завершилась - ну вы знаете эти банки))) И пока Маша заказывала себе новую книженцию по Go, Лёхин банк лаганул и отменил транзакцию аккурат в момент, когда Маша платила за книгу. И в итоге у неё возник отрицательны баланс.
Понятное дело, что Лёха тот ещё Алёша, коль пользуется таким банком, но радости это не добавляет) А всё дело в том, что кто-то “умный” заюзал самый неподходящий уровень изоляции транзакций для банка. Бабки ещё толком от Лёхи не улетели, а Маша уже видит их у себя на счету. А дальше что? ЗП за конец месяца я увижу на счёте в начале месяца ахахаха хотя где тут минусы ахахах
Кстати, в postgres этот уровень отключен к чертям. Видать создатели не любят ЗП раньше времени получать.
А вы когда нить юзали это уровень в проектах?
👍10🔥4😁2
Что делать, если случайно удалил свой код, который долго писал?
Недельку назад я делал очередную таску на работе, долго писал рутинный код и часика через 3-4 закончил это дело. В этот момент серверная версия ветки обновилась перед тем, как я запушил. Поэтому мне нужно было стянуть изменения с сервака, смерджить со своими и пушить. Я уж не помню что я сделал, чисто на автомате тыкал, но я затер локальную ветку серверной и все мои старания пошли лесом.
Сперва я естественно покричал в стенку ахахха Думал уже начинать всё заново писать, но неожиданно вспомнил... В гите же ничего просто так не удаляется сразу. Гугланул как называется команда, которая сможет обернуть время вспять и моё душевное спокойствие было восстановлено))
А теперь небольшая инструкция для тех, у кого кот бегает по клаве или руки кривые, как у меня😂
Есть такая кайфовая команда
Тут можно подробнее почитать: https://rewind.com/blog/how-to-restore-deleted-branch-commit-git-reflog
А вы так когда-нить спасали свой код?
P.S. Задний фон на фотке иллюстрирует мою любовь к этой команде аххаха
Недельку назад я делал очередную таску на работе, долго писал рутинный код и часика через 3-4 закончил это дело. В этот момент серверная версия ветки обновилась перед тем, как я запушил. Поэтому мне нужно было стянуть изменения с сервака, смерджить со своими и пушить. Я уж не помню что я сделал, чисто на автомате тыкал, но я затер локальную ветку серверной и все мои старания пошли лесом.
Сперва я естественно покричал в стенку ахахха Думал уже начинать всё заново писать, но неожиданно вспомнил... В гите же ничего просто так не удаляется сразу. Гугланул как называется команда, которая сможет обернуть время вспять и моё душевное спокойствие было восстановлено))
А теперь небольшая инструкция для тех, у кого кот бегает по клаве или руки кривые, как у меня😂
Есть такая кайфовая команда
git reflog. Она покажет вам список всех ваших коммитом, даже тех что вы дропнули. Ищите желанный коммит и прыгаете на него по хэшу - git checkout <sha value>Тут можно подробнее почитать: https://rewind.com/blog/how-to-restore-deleted-branch-commit-git-reflog
А вы так когда-нить спасали свой код?
P.S. Задний фон на фотке иллюстрирует мою любовь к этой команде аххаха
🔥21👍8
Forwarded from 📍Олег Козырев - IT и жизнь ️
Ты точно повелся на его ложь! Как айтишник жену через chatgpt нашёл
https://youtu.be/DooZB7BQUoY
В январе этого года случился новый хайп на чате gpt. Александр Жадан поделился с миром, что благодаря искусственному интеллекту он автоматизировал свои посиделки в Тиндере и окучив 5000 девушек, нашёл себе жену. При чем совет сделать девушке предложение он, якобы тоже получил от gpt.
Мы с моим корешем Федей решили посмотреть и обсудить одно из интервью мистера Жадана. На мой взгляд получилось весело и содержательно. Кажется мы больше обсуждали, чем смотрели, так что это словно сместь классического реакта и подкаста.
Зачем это смотреть:
* Вы просто хотите расслабиться и посмотреть ненапряжный весёлый контент
* Вам интересно моё мнение про этот инфоповод
* Вы всё пропустили и понятие не имеете кто такой этот Жадан, но хотите узнать
* Вам чисто по кайфу смотреть на меня😂
Это новый формат у меня на канала, поэтому хочу у вас узнать как он вам)
* Что получилось хорошо?
* Что требует доработок или вышло отстойно?
* У вас есть какие-то идеи для дальнейшего развития формата?
* У вас есть предложения кого нам ещё посмотреть?
https://youtu.be/DooZB7BQUoY
В январе этого года случился новый хайп на чате gpt. Александр Жадан поделился с миром, что благодаря искусственному интеллекту он автоматизировал свои посиделки в Тиндере и окучив 5000 девушек, нашёл себе жену. При чем совет сделать девушке предложение он, якобы тоже получил от gpt.
Мы с моим корешем Федей решили посмотреть и обсудить одно из интервью мистера Жадана. На мой взгляд получилось весело и содержательно. Кажется мы больше обсуждали, чем смотрели, так что это словно сместь классического реакта и подкаста.
Зачем это смотреть:
* Вы просто хотите расслабиться и посмотреть ненапряжный весёлый контент
* Вам интересно моё мнение про этот инфоповод
* Вы всё пропустили и понятие не имеете кто такой этот Жадан, но хотите узнать
* Вам чисто по кайфу смотреть на меня😂
Это новый формат у меня на канала, поэтому хочу у вас узнать как он вам)
* Что получилось хорошо?
* Что требует доработок или вышло отстойно?
* У вас есть какие-то идеи для дальнейшего развития формата?
* У вас есть предложения кого нам ещё посмотреть?
🔥9🤡6👍4
Погнали в Авито работать?
Я тут регулярно вкидываю, что мне работа ща по кайфу идёт и тут у вас варик возник попробовать побыстрому залететь в Авито. Если всё выгорит, то будете обмазываться кайфовыми процессами и общаться с интересными людьми.
13 и 14 апреля намечается Weekend Offer для Go-разработчиков.
Флоу такой:
* Подаёте заявку до 11 апреля
* Решаете тест до 12 апреля
* Проходите телефонное интервью до 12 апреля
* Проходите собеседования онлайн
* Получаете оффер
* Кайфуете!
Регаться и узнать детали можно тут -> Weekend Offer от Avito
P.S. Если есть вопросы пишите)
Я тут регулярно вкидываю, что мне работа ща по кайфу идёт и тут у вас варик возник попробовать побыстрому залететь в Авито. Если всё выгорит, то будете обмазываться кайфовыми процессами и общаться с интересными людьми.
13 и 14 апреля намечается Weekend Offer для Go-разработчиков.
Флоу такой:
* Подаёте заявку до 11 апреля
* Решаете тест до 12 апреля
* Проходите телефонное интервью до 12 апреля
* Проходите собеседования онлайн
* Получаете оффер
* Кайфуете!
Регаться и узнать детали можно тут -> Weekend Offer от Avito
P.S. Если есть вопросы пишите)
🔥9🐳4👍2
Forwarded from 📍Олег Козырев - IT и жизнь ️
КАК УСТРОЕН ПЛАНИРОВЩИК В GOLANG?
На гошных собесах часто спрашивают вопросы про горутины, планировщик и прочие прелести из runtime. Вопросы эти частенько душные и ты небось и сам когда-то сыпался на них. Этот ролик поможет тебе закрепить базу про планировщик в гошке и накинет немного кринжа, чтобы было не так грустно. И смотрите ролик до конца, чтоб ютуб мне потом ночью не звонил и не предъявлял: "а чего это трафик то просел, опять прод уронил?"😂
P.S. У Коли Тузова скоро тоже ролик на эту тему будет, так что сейчас чашечку кринжа наберем, зачилим, а как Коля ролик выложит ещё глубже в тему нырнём интереса ради.
https://youtu.be/z9xXThOOMWc
На гошных собесах часто спрашивают вопросы про горутины, планировщик и прочие прелести из runtime. Вопросы эти частенько душные и ты небось и сам когда-то сыпался на них. Этот ролик поможет тебе закрепить базу про планировщик в гошке и накинет немного кринжа, чтобы было не так грустно. И смотрите ролик до конца, чтоб ютуб мне потом ночью не звонил и не предъявлял: "а чего это трафик то просел, опять прод уронил?"😂
P.S. У Коли Тузова скоро тоже ролик на эту тему будет, так что сейчас чашечку кринжа наберем, зачилим, а как Коля ролик выложит ещё глубже в тему нырнём интереса ради.
https://youtu.be/z9xXThOOMWc
👍14🔥7
ГДЕ МОИ ДЕНЬГИ, POSTGRES?
Слушайте, вот вам казус из жизни. Хотел я тут заплатить за аренду квартиры. Переважу лавеху арендодателю, Михал Степанычу. Вроде всё просто, но есть нюанс. Давайте обкашляем вопросики с точки зрения базы данных.
Напомню, что в мире баз данных транзакция — это не просто перевод денег, это целая цепочка операций, которая может включать в себя несколько шагов. Если всё идёт гладко, транзакция завершается операцией комит, и ваши изменения остаются в системе навсегда. А если что-то идёт не так? Тогда надо откатываться операцией ролбек.
Так вот, есть такой уровень изоляции транзакций как READ COMMITTED. Он часто юзается многими бдшками по умолчанию. Под этим уровнем, данные, которые вы читаете в рамках транзакции, уже должны быть закомичены. Иными словами, вы НЕ увидите изменений, пока они официально не войдут в базу данных, через операцию коммит.
Вернёмся к оплате за хату. Пока я переводил кровно заработанные деньги Степанычу, он уже начал их тратить. Я хз, может он шопоголик или что похуже, но прекол вот в чём. Когда он собрался сливать бабки, он уже расчитывал на то, что деньги от меня до него долетели, но транзакция чё-то подвисла и ещё не успела закоммититься. По итогу, купить он ничего не смог, так как его транзакция видела лишь старый баланс, где был шишь без масла ахах и это хорошо, потому что предотвращает ряд возможных проблем, типа тех, что случились с Машей из предыдущей истории. Степаныч в кой века в долги не залезат благодаря рид комитеду)))
Этот уровень изоляции защищает от так называемых "грязных чтений", когда данные видны до их окончательного подтверждения. Это как получить чек на оплату, который ещё не прошёл по банковской системе. Вроде быстро и удобно, но может там всё откатится к чертям и чек твой ничего не значит и надо новый печатать.
А как вы платите за аренду хаты налом или мутите мутки со своим Степаныче по сети? ахаха
P.S. Шлем надел для безопасности, а то говорят же, что надо заботится о безопасности при разработке!)
Слушайте, вот вам казус из жизни. Хотел я тут заплатить за аренду квартиры. Переважу лавеху арендодателю, Михал Степанычу. Вроде всё просто, но есть нюанс. Давайте обкашляем вопросики с точки зрения базы данных.
Напомню, что в мире баз данных транзакция — это не просто перевод денег, это целая цепочка операций, которая может включать в себя несколько шагов. Если всё идёт гладко, транзакция завершается операцией комит, и ваши изменения остаются в системе навсегда. А если что-то идёт не так? Тогда надо откатываться операцией ролбек.
Так вот, есть такой уровень изоляции транзакций как READ COMMITTED. Он часто юзается многими бдшками по умолчанию. Под этим уровнем, данные, которые вы читаете в рамках транзакции, уже должны быть закомичены. Иными словами, вы НЕ увидите изменений, пока они официально не войдут в базу данных, через операцию коммит.
Вернёмся к оплате за хату. Пока я переводил кровно заработанные деньги Степанычу, он уже начал их тратить. Я хз, может он шопоголик или что похуже, но прекол вот в чём. Когда он собрался сливать бабки, он уже расчитывал на то, что деньги от меня до него долетели, но транзакция чё-то подвисла и ещё не успела закоммититься. По итогу, купить он ничего не смог, так как его транзакция видела лишь старый баланс, где был шишь без масла ахах и это хорошо, потому что предотвращает ряд возможных проблем, типа тех, что случились с Машей из предыдущей истории. Степаныч в кой века в долги не залезат благодаря рид комитеду)))
Этот уровень изоляции защищает от так называемых "грязных чтений", когда данные видны до их окончательного подтверждения. Это как получить чек на оплату, который ещё не прошёл по банковской системе. Вроде быстро и удобно, но может там всё откатится к чертям и чек твой ничего не значит и надо новый печатать.
А как вы платите за аренду хаты налом или мутите мутки со своим Степаныче по сети? ахаха
P.S. Шлем надел для безопасности, а то говорят же, что надо заботится о безопасности при разработке!)
🔥11👍7😁2🤪1
ГДЕ МОЙ СТОЛИК, REPEATABLE READ?
Вы же знаете секрет успеха с девушкой? Её надо накормить, а то будет злая и ты резко из нормального парня рискуешь стать бесячим объектом ахахах Стало быть надо бронирования столика в каком-нить заведении. И всё кажется довольно обыденно, пара кликов и столик твой, ноооооо есть нюанс😂
Твою бронь ж надо положить в базу, а то забуд все про тебя. А в базах опять эти транзакции. Надо ж как-то обесопасить рестик от ситуации, когда один и тот же стол бронят несколько человек. А то приходишь на ужин, а там вместо любимой девушки, питонист сидит😨
У транзакции обычно есть два стула или всё приходит идеально, или ничего не выходит. Если всё идёт по плану, транзакция фиксируется операцией коммит, и изменения становятся постоянными. Если что-то идёт не так — в игру вступает ролбек, и всё возвращается на свои места.
На уровне изоляции REPEATABLE READ каждый раз, когда вы запрашиваете данные в рамках одной транзакции, они остаются неизменными, независимо от того, что происходит снаружи этой транзакции.
Хотел я как-то забронировать столик в модном заведении. Открыл приложение, выбрал столик у окна, который был свободен, и перешёл к бронированию. А по сторонам гляжу, стоит рядом зумерок и бронит тот же столик, паразит. Я уж право дело думал система то тупанёт и едовать еду буду с ним. Но нет!
Благодаря уровню изоляции REPEATABLE READ, моя сессия "запомнила" информацию о том, что столик был свободен в момент начала моей транзакции. И пока я завершал бронирование, для меня столик оставался доступным, несмотря на попытки других клиентов его занять. Я успешно завершил бронь, и когда я закончил, система уже показывала следующим клиентам, что столик занят.
Этот уровень изоляции защищает от "неповторяемого чтения", когда данные изменяются другими операциями в базе данных во время вашей транзакции. Таким образом, вы получаете стабильный и предсказуемый результат.
Однако у уровня изоляции REPEATABLE READ и проблем хватает:
Проблема блокировок и долгое выполнение транзакций
REPEATABLE READ удерживает же блокировку на прочитанные данные до конца транзакции, стало быть все остальные запросы, кто хочет эти данные почитать тупо заблочены и ждут. А значит и время ответа в таких запросах будет расти, что конечно печально.
Потенциальные deadlock'и
Ну это классика, когда логики наворатили кучу и получилось, что первая транзакция заблочила вторую, а вторая первую и всё, шах и мат постгресмены ахахах Хлопот новых прибавится в миг.
Увеличение сложности управления
Про дополнительные хлопоты я уже говорил. С таким уровнем изоляции надо заранее подумать о подводных камнях и всяких внештатных ситуациях. Ну и на проде потом сидеть и ловить какие-нить приколы типо дедлоков.
Тем не менее, несмотря на эти сложности, уровень изоляции REPEATABLE READ помог миллениалам вновь победить зумеров и забронить столик ахахаха
Юзаете этот уровень изоляции или рид комитедов обходитесь?
P.S. Судя по фотке выше я таки ничего не забронил)))
Вы же знаете секрет успеха с девушкой? Её надо накормить, а то будет злая и ты резко из нормального парня рискуешь стать бесячим объектом ахахах Стало быть надо бронирования столика в каком-нить заведении. И всё кажется довольно обыденно, пара кликов и столик твой, ноооооо есть нюанс😂
Твою бронь ж надо положить в базу, а то забуд все про тебя. А в базах опять эти транзакции. Надо ж как-то обесопасить рестик от ситуации, когда один и тот же стол бронят несколько человек. А то приходишь на ужин, а там вместо любимой девушки, питонист сидит😨
У транзакции обычно есть два стула или всё приходит идеально, или ничего не выходит. Если всё идёт по плану, транзакция фиксируется операцией коммит, и изменения становятся постоянными. Если что-то идёт не так — в игру вступает ролбек, и всё возвращается на свои места.
На уровне изоляции REPEATABLE READ каждый раз, когда вы запрашиваете данные в рамках одной транзакции, они остаются неизменными, независимо от того, что происходит снаружи этой транзакции.
Хотел я как-то забронировать столик в модном заведении. Открыл приложение, выбрал столик у окна, который был свободен, и перешёл к бронированию. А по сторонам гляжу, стоит рядом зумерок и бронит тот же столик, паразит. Я уж право дело думал система то тупанёт и едовать еду буду с ним. Но нет!
Благодаря уровню изоляции REPEATABLE READ, моя сессия "запомнила" информацию о том, что столик был свободен в момент начала моей транзакции. И пока я завершал бронирование, для меня столик оставался доступным, несмотря на попытки других клиентов его занять. Я успешно завершил бронь, и когда я закончил, система уже показывала следующим клиентам, что столик занят.
Этот уровень изоляции защищает от "неповторяемого чтения", когда данные изменяются другими операциями в базе данных во время вашей транзакции. Таким образом, вы получаете стабильный и предсказуемый результат.
Однако у уровня изоляции REPEATABLE READ и проблем хватает:
Проблема блокировок и долгое выполнение транзакций
REPEATABLE READ удерживает же блокировку на прочитанные данные до конца транзакции, стало быть все остальные запросы, кто хочет эти данные почитать тупо заблочены и ждут. А значит и время ответа в таких запросах будет расти, что конечно печально.
Потенциальные deadlock'и
Ну это классика, когда логики наворатили кучу и получилось, что первая транзакция заблочила вторую, а вторая первую и всё, шах и мат постгресмены ахахах Хлопот новых прибавится в миг.
Увеличение сложности управления
Про дополнительные хлопоты я уже говорил. С таким уровнем изоляции надо заранее подумать о подводных камнях и всяких внештатных ситуациях. Ну и на проде потом сидеть и ловить какие-нить приколы типо дедлоков.
Тем не менее, несмотря на эти сложности, уровень изоляции REPEATABLE READ помог миллениалам вновь победить зумеров и забронить столик ахахаха
Юзаете этот уровень изоляции или рид комитедов обходитесь?
P.S. Судя по фотке выше я таки ничего не забронил)))
🔥11👍3
Го стримчик в этом канале в воскресенье вечерком?:) Расскажу вам всякого интересного не только про айти, да на вопросы поотвечаю)
Anonymous Poll
69%
Го
20%
Стрим стримом, но Когда курс?
11%
Я занят
Что почитать по gRPC?
Меня тут порой спрашивают про gRPC, мол чего такого интересно про него можно почитать. Сейчас накину вам немного материальчика по теме. Что-то будет базой, что-то материалом поглубже)
Такой ответ мне как-то дал знакомый из платформенной команды Озона))) В целом база, но иногда хочется человеческого чтива ахаха
1) Из того, что на русском на ум приходит книга с уткой. В ней дана база, которая в водит в мир межпроцессного взаимодействия. Из прикольного там рассказывается как именно protobuf сериализует данные.
2) Есть книженция на английском, которая ещё и тему тестирования и деплоя покрывает. В целом даже те, кто в английском не силен поймут половину и так, а вторую переведут в браузере.
3) Ясно дела самая база у меня в видосе есть. Я там на примере гошки показываю шаг за шагом, как намутить простецкий gRPC сервачек и клиент к нему. Ссылка на репу в описании есть.
4) А если кому-то хочется материальчик поглубже, то в игру вступает мой знакомый из Озона. Доклад о плагинах в protobuf. Свят рассказал, как начать мутить свои плагины и нафига это нужно. Доклад самое оно, чтоб преисполниться кодогенерацией.
5) И ещё один доклад от кайфового паренька из Озон. На сей раз Свят рассказал о том, как устроена кодогенерация в Озоне. Мы ж с вами, кто юзал gRPC, привыкли ко всяким protoc или buf, а в Озоне свою тулзу напилили. Свят рассказал зачем они это сделали и как.
Меня тут порой спрашивают про gRPC, мол чего такого интересно про него можно почитать. Сейчас накину вам немного материальчика по теме. Что-то будет базой, что-то материалом поглубже)
Читай исходники
Такой ответ мне как-то дал знакомый из платформенной команды Озона))) В целом база, но иногда хочется человеческого чтива ахаха
1) Из того, что на русском на ум приходит книга с уткой. В ней дана база, которая в водит в мир межпроцессного взаимодействия. Из прикольного там рассказывается как именно protobuf сериализует данные.
2) Есть книженция на английском, которая ещё и тему тестирования и деплоя покрывает. В целом даже те, кто в английском не силен поймут половину и так, а вторую переведут в браузере.
3) Ясно дела самая база у меня в видосе есть. Я там на примере гошки показываю шаг за шагом, как намутить простецкий gRPC сервачек и клиент к нему. Ссылка на репу в описании есть.
4) А если кому-то хочется материальчик поглубже, то в игру вступает мой знакомый из Озона. Доклад о плагинах в protobuf. Свят рассказал, как начать мутить свои плагины и нафига это нужно. Доклад самое оно, чтоб преисполниться кодогенерацией.
5) И ещё один доклад от кайфового паренька из Озон. На сей раз Свят рассказал о том, как устроена кодогенерация в Озоне. Мы ж с вами, кто юзал gRPC, привыкли ко всяким protoc или buf, а в Озоне свою тулзу напилили. Свят рассказал зачем они это сделали и как.
🔥10👍6👨💻2
Вчера на стриме просили поделится статистикой прошедшего потока. Делюсь)
Отдельно обращу внимение на один момент, который сам не так давно осознал) Раньше почему-то казалось, что те, кто не дошел до конца ничего полезного с курса и не получили. Но по факту то это не так, половину курса прошел, половину пользы получил и кому-то это норм) И сразу после этого осознания как-то легче на душе стало ахахах
Там, например, есть чувак, который чуть больше половины домашек сдал, а сам уже гляжу в Авито залетел) Ну а так, кажется картина доходимости плюс минус по рынку) 20% дошли до конца
И тут должен быть пафосный вывод "А в какой группе окажешься ты? Тех, кто дошел или тех, кто сдался?"😂😂😂 Кринж конечно, когда такое на серьезных щах пишут)
Отдельно обращу внимение на один момент, который сам не так давно осознал) Раньше почему-то казалось, что те, кто не дошел до конца ничего полезного с курса и не получили. Но по факту то это не так, половину курса прошел, половину пользы получил и кому-то это норм) И сразу после этого осознания как-то легче на душе стало ахахах
Там, например, есть чувак, который чуть больше половины домашек сдал, а сам уже гляжу в Авито залетел) Ну а так, кажется картина доходимости плюс минус по рынку) 20% дошли до конца
И тут должен быть пафосный вывод "А в какой группе окажешься ты? Тех, кто дошел или тех, кто сдался?"😂😂😂 Кринж конечно, когда такое на серьезных щах пишут)
🏆7👍4🎉1
Паттерны проектирования микросервисов: Как построить устойчивую систему
Здарова, бандиты! 👋 Сегодня хочу накинуть вам про паттерны проектирования микросервисов.
Когда я впервые окунулся в мир микросервисов, я подумал "какой же я тупой?!". Миновало три года и я уже точно могу сказать "какой именно я тупой"ахаха Все эти мутки с микросервисами напоминают то, как я в детстве с бабушкой пазлы собирал на 1000 штук. Сначала вообще не понятно, что к чему. Но потом на помощь приходят мама с папой и дело уже идёт хорошо. Вот такими мамой с папой для микросервисов и есть эти паттерны, про которые было в заголовке. Такие себе проверенные временем рецепты для типичных проблем.
Начнем что-ли с API Gateway. Представьте, у вас куча микросервисов, каждый со своим эндпоинтом. Без API Gateway пользователи бы сходили с ума, пытаясь добраться до каждого сервиса, ну или фронтендеры бы разбрызгали свой раф в попытках найти нужный адрес. API Gateway – это как консьерж в отеле, который управляет всеми запросами, обеспечивает безопасность и даже может кешировать ответы, чтобы всё работало быстрее.
Следующий важный паттерн – Service Discovery. В мире микросервисов сервисы появляются и исчезают, как грибы после дождя. Service Discovery помогает им находить друг друга автоматически. Это как на вечеринке, где каждый гость постоянно меняет место, а хост всегда знает, кто где сидит. Короч, чтоб не завязываться на конкретный IP мы просто юзаем сервис дискавери, а тот сам всё разыщет кого надо)
И, конечно, Circuit Breaker. Этот паттерн спасает, когда один из микросервисов начинает тупить. Circuit Breaker – это как предохранитель в электропроводке: если где-то сбой, он не даёт всей системе рухнуть. Он просто начинается дропать запросы, пока сервис не раздуплится и не будет готов к дальнейшей работе.
Эти паттерны только верхушка айсберга. Их гораздо больше, и каждый решает свою конкретную задачу.
А вы такие или подобные паттерны юзаете или всегда велосипедите в своих сервисах?
Накидывайте клубничек, если хотите прочесть про другие паттерны)
Здарова, бандиты! 👋 Сегодня хочу накинуть вам про паттерны проектирования микросервисов.
Когда я впервые окунулся в мир микросервисов, я подумал "какой же я тупой?!". Миновало три года и я уже точно могу сказать "какой именно я тупой"ахаха Все эти мутки с микросервисами напоминают то, как я в детстве с бабушкой пазлы собирал на 1000 штук. Сначала вообще не понятно, что к чему. Но потом на помощь приходят мама с папой и дело уже идёт хорошо. Вот такими мамой с папой для микросервисов и есть эти паттерны, про которые было в заголовке. Такие себе проверенные временем рецепты для типичных проблем.
Начнем что-ли с API Gateway. Представьте, у вас куча микросервисов, каждый со своим эндпоинтом. Без API Gateway пользователи бы сходили с ума, пытаясь добраться до каждого сервиса, ну или фронтендеры бы разбрызгали свой раф в попытках найти нужный адрес. API Gateway – это как консьерж в отеле, который управляет всеми запросами, обеспечивает безопасность и даже может кешировать ответы, чтобы всё работало быстрее.
Следующий важный паттерн – Service Discovery. В мире микросервисов сервисы появляются и исчезают, как грибы после дождя. Service Discovery помогает им находить друг друга автоматически. Это как на вечеринке, где каждый гость постоянно меняет место, а хост всегда знает, кто где сидит. Короч, чтоб не завязываться на конкретный IP мы просто юзаем сервис дискавери, а тот сам всё разыщет кого надо)
И, конечно, Circuit Breaker. Этот паттерн спасает, когда один из микросервисов начинает тупить. Circuit Breaker – это как предохранитель в электропроводке: если где-то сбой, он не даёт всей системе рухнуть. Он просто начинается дропать запросы, пока сервис не раздуплится и не будет готов к дальнейшей работе.
Эти паттерны только верхушка айсберга. Их гораздо больше, и каждый решает свою конкретную задачу.
А вы такие или подобные паттерны юзаете или всегда велосипедите в своих сервисах?
Накидывайте клубничек, если хотите прочесть про другие паттерны)
🍓53🔥4🤡2👍1😱1🤬1🤮1💩1
Сгонял к ребятам из Cloud.ru на подкаст:) Поговори про много что) И про гошку, и про микросервисы, и про курс и даже про проблемы женщин:)
Forwarded from Cloud.ru
This media is not supported in your browser
VIEW IN TELEGRAM
На этот раз у нас в гостях Олег Козырев, backend-разработчик из Авито.
Поговорили про:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍4