en
Feedback
VyacheArt – программирование, технологии, GoLang

VyacheArt – программирование, технологии, GoLang

Open in Telegram

Привет! Я GoLang разработчик, тимлид и автор канала про айтишечку https://www.youtube.com/@VyacheArt Буду радовать вас роликами про хайлоад, рекламу и про всё то, что я знаю, а вам интересно послушать. @VyacheslavG

Show more
1 557
Subscribers
No data24 hours
No data7 days
No data30 days
Posts Archive
Казалось бы, мне стоит публиковать какой-то технический контент тут, и я обязательно так сделаю. Но потом! А сейчас я хочу по
Казалось бы, мне стоит публиковать какой-то технический контент тут, и я обязательно так сделаю. Но потом! А сейчас я хочу поделиться радостью, что нашёл схему света, которую даже мой внутренний критик одобрил. Я так счастлив:) Время зря не теряю, если что, уже отснял с ней основную часть с повествованием для второй серии (из трёх). А первую ещё в понедельник на этой неделе смонтировал, лежит ждёт двух остальных. Как вам?:) Я разглядел в этой схеме некую киберпанковость и технологичность, но я тот ещё упоротый провидец

И я не зря выделил слово "нужно" – всегда стоит осознанно подходить к выбору чего-либо. Очевидно, масштабироваться процессами будет сложнее, чем просто наплодить тредов, и если вам кажется, что это даст лучший результат просто "потому что процессы", то скорее всего не даст. Но при этом не бойтесь экспериментировать, если проект позволяет! 🙂 Если я где-то выше допустил неточность, то обязательно пишите о ней в комментариях, и я поправлю пост. Конечно, в одном сообщении глубоко копнуть не получится, но кто сказал, что верхушки бесполезны?:)

Вчера обещал рассказать про процессы, потоки и виртуальные потоки. Но главный вопрос: зачем? Понимание отличий и того, как оно работает, может помочь оптимизировать/масштабировать вашу программу и сократить попаболь. Итак, с появлением многозадачности и многопоточности почти сразу начали существовать и три сущности: процессы, потоки и виртуальные потоки. Что же каждая из них означает? Процесс – это сущность операционной системы, которая по сути представляет вашу программу. Её отличительная черта в том, что эта сущность изолирована от других процессов и ничего о них не знает. По сути процесс может "представлять", будто работает со своим виртуальным компьютером: у него есть своя память, и операционная система гарантирует, что эта память не будет сломана кем-то ещё; у него есть своё процессорное время, и операционная система опять же гарантирует, что инструкции процесса будут выполнены. Даже если ОС во время исполнения процесса передаст обработку другой программе, а эту усыпит, то сам процесс может быть уверен, что это произойдёт прозрачно. Тред (поток) – это уже часть процесса, которая позволяет ему определить несколько задач, которые должны исполняться вместе. То есть это те самые "задачи" во время "многозадачности", и тут опять же операционная система отвечает за справедливое распределение времени между тредами, то есть ресурсы процессора вновь распределяются планировщиком операционной системы. И важное отличие тут от процессов – то что треды одного процесса делят общее адресное пространство, и разработчику уже нужно думать о том, как избежать одновременной записи в одну и ту же ячейку памяти, и появляется необходимость в синхронизации. По сути ОС говорит тут тредам процесса: "вот ваш виртуальный компьютер, делайте с ним что хотите. Но если полезете за пределы своего адресного пространства, то будете наказаны". Виртуальный тред – очень похож на обычный, но это уже часть вашего кода с некоторыми особенностями. Здесь уже не операционная система отвечает за выделение процессорного времени, а ваша программа. Под программой я имею ввиду не только ваш код, но и рантайм, фреймворк или виртуальную JVM или .NET машину, которую вы используете (что считается частью кода вашей программы). Для чего виртуальные треды нужны? Дело в том, что операционная система ничего не знает о вашем конечном коде и что вы делаете. Она ожидает, что вы делаете в каждом треде какую-то работу, что-то вычисляете, и честно распределяет имеющиеся ресурсы. А вы вот знаете, что в данный момент времени ничего полезного не происходит: вы ждёте разблокировки мьютекса, ответа сервера (IO) или чего-то ещё, и по сути вас можно просто снять с процессора до какого-то момента. Вы разными способами сообщаете это своему планировщику, и он уже решает, что делать с вами и ресурсами. Стоит также упомянуть, что затраты на "спавн" каждой сущности отличаются: процессы и треды создаются через "syscall" – системный вызов к ядру ОС. Это сравнительно долго и дорого, особенно учитывая то, что процесс нужно добавить в таблицу процессов, подготовить ему виртуальное адресное пространства и так далее. Треду же нужно подготовить свой отдельный стек (чтобы к нему можно было вернуться), и он тоже выделяется бОльшим, в сравнении с виртуальными тредами. А вот эти виртуальные треды (они же файберы, они же горутины, они же корутины) – это уже исключительно ответственность вашей программы, которая в распоряжении имеет N-ое количество системных тредов. Что выбрать? Зависит, очевидно, от задачи. Если вам нужно разделить процессы по своим адресным пространствам, чтобы их изолировать или чтобы сэкономить время на синхронизации, и взаимодействия между процессами минимум, то выбираете процессы. Например, так работает веб-сервер nginx, или, если не ошибаюсь, режим балансировки в нодовском pm2, когда он форкает ваш сервер по нескольким процессам. Но, конечно, количество этих процессов должно быть ограничено. В остальных случаях треды и виртуальные треды. Виртуальные будут особенно важны, когда вам нужно быстро обработать много запросов, потому что намного дешевле, чем системные треды.

Ребят, мы вот буквально час назад закончили общаться с ребятами из { между скобок }, залетайте смотреть запись. Было очень ин
Ребят, мы вот буквально час назад закончили общаться с ребятами из { между скобок }, залетайте смотреть запись. Было очень интересно, и вообще это мой первый опыт такого публичного общения (кроме ютуба), и я немножко нервничал. Но с Гришей, Женей и Николаем было настолько комфортно, что в последствии волнение меня отпустило 🙂 Так что поздравьте меня, и обязательно залетайте в уютный чат ребят вот тут @backend_megdu_skobkah. Сможете обсудить и "Distributed Systems", и другие книги 🙂 (и нет, это не реклама)) А завтра я по мотивам беседы расскажу вам про процессы, потоки (threads) и виртуальные потоки (горутины/корутины/файберы/etc), в чём между ними разница и на что стоит обращать внимание при выборе

🗓 3 сентября 19:00 по мск “Distributed Systems Глава 3 Процессы и Виртуализация | Евгений Козлов, Вячеслав Горюнов” Подробно
🗓 3 сентября 19:00 по мск “Distributed Systems Глава 3 Процессы и Виртуализация | Евгений Козлов, Вячеслав Горюнов” Подробно рассмотрим, как различные типы процессов играют решающую роль в распределенных системах. Так же сейчас сложно представить современную разработку без виртуализации. Виртуализация позволяет приложению запускаться независимо от базового оборудования и платформ, что обеспечивает высокую степень переносимости. Еще обсудим архитектуру клиент/сервер в распределенных системах. Помогать в обсуждение нам будут невероятно вдохновляющие гости - Евгений Козлов и Вячеслав Горюнов 🔥 👨‍💻Женя пишет код с 2012, прошел путь от Junior до TechLead. Помимо основной деятельности менторит начинающих и опытных backend разработчиков, так же ведет телеграм канал в котором делиться опытом. Еще немного полезных ссылок сборник хороших практик по разработке backend приложений, гайд по System Design и соц сети Github, Linkedin, Twitter. 👨‍💻Слава работает в в роли CTO в AdTech сфере в небольшой рекламной сети. С 2021 года ведет супер классный канал на YouTube (моя личная рекомандеция 🤩), на котором делиться интересными проектами, решениями и снимает уроки, а по мотивам роликов складывает код на GitHub. Подключайтесь к YouTube трансляции или в Zoom, событие в календаре. А в комментариях к этому посту оставляйте свои вопросы, которые хотели бы задать Жене и Славе ⤵️

Ребяяяят, ну наконец-то я закончил с самой сложной частью ближайших трёх роликов: я ОТСНЯЛ основной материал. Вы только посмо
Ребяяяят, ну наконец-то я закончил с самой сложной частью ближайших трёх роликов: я ОТСНЯЛ основной материал. Вы только посмотрите на длительность видеофайлов, я ещё никогда столько подряд не снимал. Но не волнуйтесь, часовых роликов не будет, зрителю только самое лучше должно оставаться 🫰 Впереди остаётся монтаж и всякие локальные вставочки, и вы увидите этот полуэксперимент-десктоппроект-на-го и какой говнокод я умею писать

Гоферы, привет! Я тут хочу рассказать вам об одном событии, которое будет совсем скоро, и обещает раскрыть много тонкостей в хайлоаде, нагрузочном тестировании и устройстве памяти в Go 👋 (а ещё от меня вам будет бонус!) 11 сентября начнётся второй сезон IT конференции Podlodka Go Crew (слушаете подкаст подлодки?). Это будет неделя сессий в Zoom с крутыми ребятами из Авито, Ozon Tech и других кампаний! Обещают раскрыть тему масштабирования (а главное проблем при этом), показать удобные способы искать утечки памяти, и рассказать про настройку NATS JetStream для очередей ваших сообщений между микросервисами. И дополнительно от меня вам будет скидка в 500 рублей по промокоду VYACHE, помимо той, которая там уже есть до 4 сентября. И более того: у вас даже будет возможность выступить на открытом микрофоне со своим мини-докладом про Go (а значит и послушать их от других участников!). Звучит очень круто 🙂 Поэтому переходите по ссылке, ознакамливайтесь с темами докладов, используйте промокод VYACHE и добро пожаловать на IT конференцию Podlodka Go Crew!:) #интеграция

Выглядит это дело вот так, а на втором фото вы даже можете увидеть СОТЫ. Всегда мечтал поснимать с ними, чтобы ощутить разниц
+3
Выглядит это дело вот так, а на втором фото вы даже можете увидеть СОТЫ. Всегда мечтал поснимать с ними, чтобы ощутить разницу. И она прям заметна: фон позади меня, будь то стена или окно, уже не так освещается, и появляется ощущение объёма. Хотя, у меня съёмочная площадь небольшая, и свет на стену всё равно попадает, но всё равно разница есть. Ещё эта штука питается от сети, и мне так даже удобнее, потому что предыдущие светильники были на батарейках. И у неё есть даже пульт 🙃 И можно вообще не париться за перегрев, потому что у этого света активное охлаждение. Кто помнит, у меня в двух из двух стримах спустя пару часов вырубался светильник. Так вот здесь такое уже точно не случится 🙂

Ребят, поздравьте меня! Я наконец-то купил себе хороший свет и я тааак счастлив! И это тот как раз момент, когда все говорят
+2
Ребят, поздравьте меня! Я наконец-то купил себе хороший свет и я тааак счастлив! И это тот как раз момент, когда все говорят "для картинки свет важнее, чем камера", но ты не веришь, а потом оказывается, что это правда)) Я ведь рокировочку сделал со своей камерой, и решил взять на замену BMPCC 4K более мобильную Sony ZV-E10. Номинально она снимает в тех же 4K, а по HDMI так вообще 422 отдаёт. Но это ну вообще вот не близко к BRAW с блекмеджика, когда ты что угодно можешь с картинкой сделать и будет хорошо. Ну и она не так хороша в условиях низкой освещенности. Но как же мне НРАВИТСЯ результат с новым светом. Не, он конечно далёк от идеала ещё, и мне стоит научиться красиво выставлять всё. Но как же мне уже нравится, что кожа не как мука, а натурааальная! К слову, первый скрин из будущего ролика ☺️ Короче, очень рад поделиться с вами своей радостью. И спасибо всем, кто поддержал на бусти и на двух прошедших стримах 🫰 сейчас похвастаюсь фотками этой конструкции

Как работают браузерные уведомления (пуши)? Зачем их вообще создали (чтобы позлить людей?)? Что такое Web Push API? Как в пуш уведомления затесался HTTP 2.0? И сколько стоит внедрить пуши на свой сайт? Обо всём этом расскажу вам в новом ролике: ТОННА стандартов, которые скрываются за навязчивыми пушами! Приятного просмотра, ребят! 🫰 Пишите вопросики, если вдруг что-то не поняли, ну и вообще пишите, мне приятно ☺️ https://youtu.be/irghpmlowj0

Ребят, а я тут оказывается проспал (ну как "проспал"...) 1.5К на канале 😮 Спасибо вам за эту цифру в моей творческой студии!
Ребят, а я тут оказывается проспал (ну как "проспал"...) 1.5К на канале 😮 Спасибо вам за эту цифру в моей творческой студии! 🫰 Мне очень приятно, что вы меня смотрите, и ещё больше мне приятно, что ролики приносят пользу 🙂 Я тут действительно не спал, а готовил за раз несколько роликов. Вот скорее всего в воскресенье или понедельник выйдет один из них, тружуся 🧑‍💻 Как так получилось, что сразу несколько? Сейчас запишу кружок и расскажу. А пока можете небольшой шортик глянуть, я тут осилил автоматические субтитры в давинчи))

А какую должность вы сейчас занимаете? (продолжаем изучать кто тут собрался :))
Anonymous voting

Кажется, я отдохнул, и время возвращаться! Но, что если долго не отдыхать и изматывать себя? Тогда можно наступить выгорание. Выгорание – к сожалению, очень частая проблема нашего времени. Ситуацию усложняют так называемые "успешные успехи", из-за которых многие люди скатываются в переработки, и лишь приближают момент, когда сил не остаётся вовсе. И в этой точке помочь себе уже слишком сложно. В этом видео я просто хочу напомнить, что важно помнить о себе и регулярно наблюдать за свои самочувствием. Мы все люди с каким-то запасом сил, и не нужно выжимать из себя невозможное. Берегите себя, вы у себя одни. (и смотрите ролик по ссылке:) ) https://youtu.be/Ae2FKE2Hv0w

Слово дня – seamlessly. Вы как, смотрели? Что думаете?:)