TGViewer
Channel Public Channel
defer panic

defer panic

@deferpanic

Канал про айти в целом и про Go в частности.
YouTube → youtube.com/@deferpanic
Все вопросы в личку канала
Поддержать канал:
ETH — tomakado.eth
TON — tomakado.ton
BTC — 19xwFstmVQsVYqZP64iMVg1StLNSah6Smo
Subscribers
3.02K
Photos
83
Videos
11
Links
208

Showing posts older than #208 · Back to latest

Older Posts 20 shown
Post #207 2.86K
defer panic Прямо сейчас происходит открытая трансляция главного зала HighLoad++ 2023. Рекомендую посмотреть, там много полезного. 👉 Зарегистрировать и смотреть В этот раз на конференции есть доклады по Go, поэтому я выбил вам 2 билета, которые я разыграю под этим постом.…
Результаты

Ближе всех оказались:
🏆 @eqkez0r
🏆 @alexey_guskov

Напишите мне в лс, чтобы получить билеты
  • ⚡ 3
Post #206 2.52K
Прямо сейчас происходит открытая трансляция главного зала HighLoad++ 2023. Рекомендую посмотреть, там много полезного.

👉 Зарегистрировать и смотреть

В этот раз на конференции есть доклады по Go, поэтому я выбил вам 2 билета, которые я разыграю под этим постом. Условия простые: напишите число от 0 до math.MaxUint8. Два человека, которые напишут число наиболее близкое к тому, что я загадал, получат билеты. Только поторопитесь, розыгрыш закроется примерно через полчаса!

Сама конференция проходит 27 и 28 ноября, билеты дают доступ к записям в том числе.

--------

⭐️ В программе главного зала доклады лучших спикеров:

Павел Капля (Яндекс) — Алиса 6 лет спустя.

Александр Кирсанов (VK, ВКонтакте) — Математический хайлоад: большие, очень большие и немыслимо большие числа.

Евгений Россинский (ИВИ) — Как из Python и палок собрать детектор аномалий для highload.

#партнерскийпост
  • 🔥 4
  • 🥱 3
  • ⚡ 1
Post #204 2.9K
Гулял в очередной раз по ГитХабу и нашёл то, чего мне не хватало все эти годы — Comby. Это такая штука, которая умеет делать поиск и замену в коде, учитывая синтаксис языка. Авторы утверждают, что поддерживают если не все, то большинство языков.

Тут может возникнуть закономерный вопрос: а чем регулярки и grep с sed не угодили? Регулярные выражения порой слишком низкоуровневые для такой задачи и хочется чуть больше абстракции. Так, например, в Comby не нужно городить сложные выражения для аргументов функции или для условия в цикле — вместо них используются конструкции :[args] и :[condition] соответственно.

В общем, штука кажется мега-полезной. Надеюсь, сообщество подтянется и сделает плагины для редакторов и IDE (или пойти самому сделать?).

На comby.live можно поиграться с Комби онлайн без регистрации и смс установки.

❤ • ютуб • бусти • патреон • платный канал
  • 🔥 9
  • 💩 6
  • 👍 3
Post #203 2.74K
На днях ребята из OpenAI представили модель GPT-4 Turbo. Из нового и важного:

— 128 килотокенов в контексте
— Теперь можно явно попросить модель отвечать в JSON
— Воспроизводимые результаты

Для меня это довольно важный апдейт, поскольку у меня есть несколько пет-проектов, которые немного тормозили в разработке в том числе из-за того, что не получалось заставить API стабильно отвечать в нужном формате. А один из таких проектов, readme.go, требует помещать в контекст много букв.

Видимо в ближайшее время буду обновляться в тех местах, где присутствовали эти боли.

❤ • ютуб • бусти • патреон • платный канал
  • 🔥 4
Post #202 3.02K
На Engineer's Codex в октябре вышла статья о том, как Airbnb за 15 лет из простого монолита превратился в большую систему.

4 ключевые мысли из статьи:

🔸 Начинайте инвестировать в инфраструктуру и платформенную разработку как можно раньше
🔸 Упрощайте зависимости между сервисами
🔸 Централизуйте обработку данных
🔸 Разделяйте логику UI и логику бэкенда

Сами мысли звучат очевидно, но не всегда очевидно, как собственно следовать этим принципам. В статье как раз раскрывается каждый пункт.

https://open.substack.com/pub/engineercodex/p/how-airbnb-scaled-by-moving-away

❤ • ютуб • бусти • патреон • платный канал
Engineer’s Codex How Airbnb Scaled by Moving Away From a Monolith 4 lessons from Airbnb's scaling strategy, with comparisons to other big tech companies
  • 👍 1
Post #201 3.09K
Есть шутка про фронтенд, что, мол, каждую неделю выходит новый JS-фреймворк. У Go тоже было такое, но про HTTP-роутеры. Разгоняли вплоть до того, что если ты не писал свой роутер, то ты не настоящий Go-разработчик :) Теперь этому мему скорее всего придёт конец — в Go 1.22 прокачают роутер, встроенный в стандартную библиотеку. Да, всё это время в Go уже был свой роутер — скупой, простой, зато родной. Его решили сделать чуточку удобнее: добавят роутинг по HTTP-методам и query-параметры:

func main() {
mux := http.NewServeMux()
mux.HandleFunc("GET /path/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "got path\n")
})

mux.HandleFunc("/task/{id}/", func(w http.ResponseWriter, r *http.Request) {
id := r.PathValue("id")
fmt.Fprintf(w, "handling task with id=%v\n", id)
})

http.ListenAndServe("localhost:8090", mux)
}


И тут однозначно в выигрыше те, кто уже сидел на простых и, самое главное, максимально совместимых с net/http роутерах типа того же chi. Ведь по идее все уже написанные под net/http миддлвари и прочие инструменты должны спокойно встать и на рельсы нового роутера. Здесь же можно ожидать в будущем широкой поддержки во всех средах разработки.

Выглядит использование нового роутера всё ещё очень «по-гошному», а я всё ещё нежно люблю Echo. Но кажется, пришла пора с ним потихоньку прощаться. Я точно буду пробовать новинку в своих нерабочих проектах — в рабочих у меня сплошной gRPC.

P.S. Новость и сниппет я утащил из блога Eli Bendersky — горячо рекомендую, там часто очень годные посты.

❤ • ютуб • бусти • патреон • платный канал
  • 👍 28
  • 🔥 10
  • ❤ 7
Post #200 3.06K
Увидел у Андрея Ситника ссылку на очень красивое и наглядное объяснение работы CRDT.

CRDT или Conflict-free Replicated Data Type — это такая структура данных, которую можно изменять распределённо и одновременно, при этом при слиянии не будет возникать конфликтов, либо вероятность этого будет достаточно маленькой, чтобы не париться. CRDT используются часто там, где необходимо иметь возможность одновременной работы нескольких людей над одной сущностью: Миро, Гугл-доки, блокчейны и т.д.

https://jakelazaroff.com/words/an-interactive-intro-to-crdts/
Jakelazaroff An Interactive Intro to CRDTs | jakelazaroff.com CRDTs don't have to be all academic papers and math jargon. Learn what CRDTs are and how they work through interactive visualizations and code samples.
  • ⚡ 7
  • 👍 2
Post #199 2.92K
Интересно, а есть ли у меня подписчики из Омска? В моём родном городе в октябре пройдёт DevFest Omsk 2023 — конференция для разработчиков, дизайнеров и тестировщиков разных профилей. Её делают мои друзья, поэтому могу ручаться за качество — в Омске мощное айти-сообщество. Можете убедиться сами, посмотрев записи докладов с прошлых конференций на ютубе. Особенно рекомендую заглянуть в плейлист с докладами с Golang-трека.

👨‍💻 На конференции будет отдельный трек по Golang из 4 -5 докладов. Участники узнают о том, как лучше писать интеграционные тесты с базой данных PostgreSQL, какие бывают подходы и способы оптимизации, как ускорить прототипирование для ваших стартапов и MVP, используя кодогенерацию, поговорим про реализации авторизации, довольно популярной задаче на любом проекте, но как всегда есть проблемы с ней, как их можно избежать, а также разберем все подходы реализации платформы, которые вы можете применить, на примере платформы СберМаркет.

📚 Суммарно на конференции будет 10 треков, 50+ экспертных докладов и 300+ участников. Также будет афтерпати в баре и отличный нетворкинг.
________________

За новостями и программой конференции можно следить в источниках:
🌐 www.devfestomsk.ru
💬 vk.com/devfestomsk
💬 @devfestomsk

Такое события нельзя пропускать! Мероприятие пройдет 6-8 октября.
Регистрируйтесь прямо сейчас по ссылке 👉 https://devfest-omsk.timepad.ru/event/2446752/

#партнерскийпост
  • ❤ 6
  • ⚡ 1
  • 🔥 1
  • 🦄 1
Post #198 2.58K
В Go 1.22 изменится поведение циклов

Собственно, уже сейчас новое поведение можно включить с помощью специального флага. Суть изменения заключается в том, что раньше происходил захват переменной в цикле. Если вы не знакомы с этим явлением, то вот вам пример:

var (
a = []int{1, 2, 3}
b []*int
)

for _, n := range a {
b = append(b, &n)
}

for _, n := range b {
fmt.Println(*n)
}

Что будет выведено программой? Конечно же, 3 3 3, а не 1 2 3. Так происходит, потому что та самая переменная n в цикле для экономии памяти не создаётся заново на каждой итерации, а по сути просто меняет свой указатель с одного места памяти на другое. Из-за чего и наблюдаем такой эффект. Это неочевидно для новичков и про это легко забыть. Чтобы этой проблемы избежать, обычно использовали некрасивый, но действенный трюк: внутри тела цикла объявляется новая переменная n, которой присваивается n:

for _, n := range a {
n := n
…
}

Что? Да!

Чтобы не кошмарить новых адептов, авторы языка и вводят новое поведение для циклов — такое, какое вы ожидали бы без захвата переменной.

С одной стороны это нарушение обещания авторов языка о сохранении обратной совместимости. С другой стороны эта особенность циклов и правда фрустрирует и сложно представить ситуацию, когда это пригодилось бы. Т.е. обратная совместимость вроде и сломана, но перестанет работать корректно критически маленькая доля программ, которые написаны как-то по-наркомански и скомпилированы через Go 1.22.

Такие дела ¯\_(ツ)_/¯

❤️ • ютуб • бусти • патреон • платный канал
  • 👍 21
  • 🔥 4
  • ⚡ 2
  • 🥱 2
  • 🤔 1
Post #197 2.49K
defer panic После завершения Podlodka Go Crew #2 у тбилисских участников была мысль организовать оффлайн-встречу. Я как-то пропустил этот момент, хоть сам и в Тбилиси сейчас. Решил, что пора организовать локальный чатик. Так что если вы в Тбилиси (да и если нет тоже)…
А вот картинка для привлечения внимания
  • 👍 16
  • 💩 7
  • 😁 3
  • ❤ 2
  • 🔥 1
Post #196 2.32K
После завершения Podlodka Go Crew #2 у тбилисских участников была мысль организовать оффлайн-встречу. Я как-то пропустил этот момент, хоть сам и в Тбилиси сейчас. Решил, что пора организовать локальный чатик.

Так что если вы в Тбилиси (да и если нет тоже), то го в чат @golangtbilisi!

Там пока ничего не происходит (я его создал минут 15 назад), но как люди подтянутся, станет поживее. Чат не только и не столько для организации оффлайн-активностей, сколько просто для общения.
  • 👍 1
Post #195 3.04K
Добавил в Awesome Go Interview репозиторий GoBooks — список книг по Go, отсортированный по годам и сгруппированный по уровням.

Напомню, если у вас есть ресурс, который вы хотите добавить в список, буду рад вашим пулл-реквестам.

❤️ • ютуб • бусти • патреон • платный канал
GitHub GitHub - defer-panic/awesome-go-interview: Collection of resources for preparation to technical interview in Go Collection of resources for preparation to technical interview in Go - defer-panic/awesome-go-interview
  • 👍 13
  • ⚡ 7
  • 🔥 2
  • ❤ 1
Post #194 6.95K
Мне было сегодня лет, когда я узнал, что в GoLand встроен плейграунд, и больше не нужно идти в браузер, чтобы проверить какой-то маленький кусок кода. Он умеет как выполнять локально, так и загружать код на официальный плейграунд, после чего можно поделиться ссылкой. Но пожалуй самое крутое — внутри встроенного плейграунда можно использовать все те же фичи, что в обычном режиме, включая дебаг, Copilot и т.д.!

Чтобы открыть, нажимаете два раза Shift или вызываете «поиск по всему», вводите “playground”, вы прекрасны!

https://www.jetbrains.com/go/guide/tips/integrated-go-playground/

❤️ • ютуб • бусти • патреон • платный канал
  • 🔥 32
  • 👍 8
  • ❤‍🔥 1
  • 💩 1
  • 🐳 1
Post #193 3.15K
Продолжая тему геймдева и хайлоада на Go, хочу рассказать вам об одном канале, который будет полезен, даже если вы не пишете игры, но пишете высоконагруженные приложения.

Автор канала UnitOfTime в своих роликах рассказывает, как он разрабатывает свою инди-MMO на Go. Бэкенд любой сетевой игры, особенно MMO, довольно близок по своей сути к любому другому высоконагруженному бэкенду приложений, которые должны обновлять своё состояние на клиенте в реальном времени. Только подумайте: вам нужно синхронизировать мир для большого количества одновременно подключенных игроков, при этом защищаясь от читеров. Это не считая того, что есть в почти каждой MMO: чат(ы), торговая площадка, разные локации, аутентификация и авторизация и т.д. Из приложений, которые под капотом больше похожи на сетевую игру, мне в голову сразу приходит Miro.

Видосы довольно короткие, поэтому не успевают вас задушить кучей новой информации. Посмотрите один из последних роликов, в котором автор рассказывает, как добился обслуживания 100 одновременных игроков на сервере.

❤️ • ютуб • бусти • патреон • платный канал
  • ⚡ 10
  • 👍 5
  • ❤ 2
  • 🔥 2
  • 😍 1
Post #192 2.28K
defer panic Как я уже ранее говорил, я сейчас занят подготовкой к Podlodka Go Crew #2 — на этот раз в программном комитете, а не в качестве докладчика. Пришло время рассказать, что это такое! Podlodka Crew — это формат онлайн-конференций от команды подкаста Podlodka.…
Итак, билеты забирают

@ksusonic
@to77e

Напишите в личку, и я отправлю их вам
  • ⚡ 3
  • 🔥 1
Post #191 2.3K
Как я уже ранее говорил, я сейчас занят подготовкой к Podlodka Go Crew #2 — на этот раз в программном комитете, а не в качестве докладчика. Пришло время рассказать, что это такое!

Podlodka Crew — это формат онлайн-конференций от команды подкаста Podlodka. В отличие от обычных конференций, секции (доклады, воркшопы и т.п.) не пытаются упаковать плотно в два дня, а равномерно распределяют по дням одной недели. Обычно одна секция утром, одна вечером. Зимой проходила первая Crew для нас с вами, т.е. для гоферов. Если интересно, можете посмотреть запись моего доклада.

Вторая Go Crew пройдёт уже совсем скоро — с 11 по 15 сентября. Каждый сезон конференции все доклады связаны одной общей темой — в этот раз будем обсуждать хайлоад:

- заглянем под капот устройства памяти;
- научимся превентивно находить потенциальные очаги - чрезмерной нагрузки;
- посмотрим на лучшие практики нагрузочного тестирования;
- изучим масштабируемую технологию NATS JetStream для очередей и асинхронной коммуникации;
+ 🎁 бонус: каждый желающий сможет выступить на открытом микрофоне.

❤️ Для моих любимых подписчиков есть ништяки:

💸 Промокод на скидку 500 ₽, который суммируется со скидкой на сайте до 4 сентября:
deferpanic_go2

🎟️ Также хочу разыграть два билета среди вас. Я загадал от число от 0 до math.Uint8. Напишите любое число в этом диапазоне в комментариях к посту. Авторы двух комментариев с самыми близкими результатами к загаданному числу получат билеты.

⚠️ Важно: в комментарии также укажите, какую секцию вы хотите посетить больше всего и почему. Комментарии с просто числами не учитываются! Результаты подведём в эту пятницу.

Расписание докладов и вся остальная информация есть на сайте конференции.

#партнерскийпост
  • 👍 9
  • 🔥 3
  • 🤩 1
  • 😍 1
Post #190 2.15K
IBM выпустила библиотеку для функционального программирования на Go 🤡

Хоть я и люблю функциональное программирование и всё вокруг него, эту историю я просто не понимаю. Вот представьте: вы пишете на языке программирования. Вам всё в нём нравится, кроме одного — он не про ФП. Не в смысле переменные не иммутабельные и всё такое, а вот совсем не про ФП, да так что прямо в фундаменте языка местами заложены противоположные идеи.

В таком случае есть два пути: перейти на язык, где ФП — основная парадигма, либо пытаться гладить против шерсти текущий язык. Оба подхода имеют право на существование, но в каких-то разумных границах. Если вам так нравится ФП, что вы без него жить не можете, то почему бы не пойти по первому пути? А если это не так важно для вас, то в чём смысл усложнять себе жизнь, да ещё и говорить, что жить сложнее должно стать и другим?

В общем, если хотите обмазаться монадами и каррированием, то есть куча функциональных языков, классных и не очень. А Go не трогайте — мы его как раз и любим за то, что он простой, как дверь. Хоть иногда и слишком.

❤️ • ютуб • бусти • патреон • платный канал
  • 👍 14
  • 💩 5
  • 🤯 4
  • 😢 1
Post #189 2.5K
Если вам хочется получить подробный разбор изменений в Go 1.21.0, то у Николая Тузова на днях вышел новый выпуск подкаста GoGetPodcast.

Горячо рекомендую.

❤️ • ютуб • бусти • патреон • платный канал
Telegram Николай Тузов Новый выпуск опубликован ❤️ https://youtu.be/hp0lOyGxpO0 Аудио версия: - Mave - Apple Podcasts - Google Podcasts - Яндекс Музыка #gogetpodcast
  • 👍 12
  • 🔥 5
  • ❤ 3
  • ❤‍🔥 1
Post #188 2.89K
Сразу две новости из мира AI и кодогенерации:

🤖 Stability AI, известная вам скорее всего по Stable Diffusion, представила опенсорсную модель Stable Code. Это ещё один конкурент GitHub Copilot. На старте поддерживает Python, Go, Java, JavaScript, C и C++.

🕸 Google анонсировал Project IDX — облачную IDE с похожей фичей. Пока что доступ по вейтлисту, но если там внутри Bard (а скорее всего так и есть), то будто бы и не очень надо.

❤️ • ютуб • бусти • патреон • платный канал
Stability AI Announcing Stable Code Alpha — Stability AI Stability AI has just announced the release of StableCode, its very first LLM generative AI product for coding. This product is designed to assist programmers with their daily work while also providing a great learning tool for new developers ready to take…
  • 💩 5
  • 🥱 4
  • 👍 2
  • 🤔 1
  • 🐳 1
Post #187 2.52K
Хочу порекомендовать вам канал Go news. Там просто и доступно объясняют, как автоматизировать тесты в несколько строк кода, почему не всегда нужно использовать каналы, какие фишки новой версии ускорят ваш код. Посты сопровождаются наглядными сниппетами кода.

А ещё добавляйте себе маст-хэв папку для Go-разработчиков: https://t.me/addlist/6Gopr3hzAqBiMjcy

#партнерскийпост
Telegram Golang news Свежие новости и статьи для Go разработчиков. https://t.me/+zAIPzz2g29YxM2Uy - ссылка на канал admin - @haarrp
  • ❤ 4
  • 👍 1
  • 🔥 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →