defer panic
3.13K subscribers
82 photos
9 videos
201 links
Канал про айти в целом и про Go в частности.
YouTube → youtube.com/@deferpanic
Все вопросы в личку канала
Поддержать канал:
ETH — tomakado.eth
TON — tomakado.ton
BTC — 19xwFstmVQsVYqZP64iMVg1StLNSah6Smo
Download Telegram
Запись выпуска уже на канале. На аудио-площадках тоже скоро будет.

Приятного аппетита всем, кто завтракает, и хорошего рабочего дня. А казахстанцам хорошо провести этот выходной, и с Днём столицы вас — Астана күні құтты болсын! 🥂🇰🇿
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥8👍3🤩2👏1
Посмотрите, какая милота. Крохотная виртуальная машина, заточенная под графические приложения. И такие же крохотные приложения. Особенно мне понравилось, что у текстового редактора left скроллбар... слева
🔥922
Media is too big
VIEW IN TELEGRAM
У Курсора появилась CLI-версия. Теперь можно пользоваться им так же, как Claude Code.

О том, насколько хорошим получился Cursor CLI, можно будет судить только через недельку-другую активного использования. Поэтому пока не буду давать никаких оценок. Всё что я успел сделать — попросить сгенерировать программу на Си, рисующую анимацию на видео.

К сожалению, программа не получилась вписанной в форму рисуемой надписи, как это делает Donut. Но это проблема модели и даже скорее моего промпта — я не просил об этом явно.
1🔥4👎1😱1🎉1
Вышел Go 1.25. Из интересного:

- Новый пакет testing/synctest для тестирования конкурентного кода
- encoding/json переписали и сделали быстрее. Новая реализация по умолчанию подключается как encoding/json/v2. Если включить GOEXPERIMENT=jsonv2, то импорты обновлять не нужно
- В вейт-группы добавили метод Go(func()), чтобы больше не пришлось возиться с wg.Add
- go vet, кстати, теперь репортит о некорректном использовании wg.Add
- Также go vet теперь ругается на строки вида fmt.Sprintf("%s:%d", host, port) и предлагает использовать net.JoinHostPort.
- В поставке Go теперь меньше бинарников — только те, что необходимы для сборки и тестирования. Всё остальное теперь доступно через go tool

Про остальные изменения можно почитать в релиз-ноутах.
110🎉5🎄3😁1
Сел и просто начал работать

Надо признаться, что я не считаю Го лучшим языком на свете, хоть и пишу на нём много лет. Местами язык перегибает с топорностью, а в общем и целом — довольно скучный.

Это даёт свои плюсы, главный из которых — ты просто садишься и работаешь, а не тратишь несколько часов на выбор подходящей абстракции или на то, как поэлегантнее выразить мысль. Код становится прямым продолжением мыслей без лишних прослоек. Ну, то есть думать об архитектуре всё ещё нужно и важно, но именно об архитектуре. Иногда это вставляет палки в колёса: сидишь и думаешь — «Эх, вот бы сюда вот такую штучку, чтобы я вместо пятидесяти строк написал три». При этом нередко оказывается, что читаемость это не ухудшило бы, о чём так переживают разработчики языка.

Есть языки типа Кложи и Питона — выразительные и красивые. Код в них компактный, поскольку каждый элемент в нём ёмкий. На обоих я успел поработать в продакшене. В каждом есть REPL, позволяющий менять программу на лету и быстро проверять маленькие кусочки кода. Глаз радуется и при написании, и при чтении. Кстати, читать код на них можно примерно так же легко после периода адаптации, т. е. история про write-only — скорее миф, чем правда.

Но вернуться обратно меня не тянет. Причина вот в чём:

Язык обычно состоит из двух частей (можно дробить ещё сильнее, но нам сейчас этого хватит): сам язык, т. е. компилятор, рантайм, стандартная библиотека и прочее; а также тулинг. Одна из метрик «классности» любого языка — developer experience. Он же — quality of life. Субъективная, но важная метрика, которую формируют оба аспекта, но в первую очередь — тулинг. В языке может быть миллион крутых и передовых фич, он может быть сколь угодно быстрым (что бы то ни значило)... но если субъективно ощущается, что что-то не так, — никто и никогда не сможет вас убедить, что язык классный, какие бы разумные доводы ни приводили.

У меня есть ощущение, что команда Го делает ставку на эту метрику. Работа ведётся над обоими аспектами, которые я упомянул выше. Привлёк же меня Го не простотой или, прости господи, «быстротой». Developer experience — вот что приковало меня и не даёт всерьёз задумываться о переходе на другие языки.

Что нужно, чтобы начать писать не одноразовый скрипт, а полноценное приложение на Питоне? Выбрать менеджер зависимостей, создать виртуальное окружение (!), активировать его (и не забывать активировать или деактивировать в нужных местах), поставить пакет веб-фреймворка, пакеты для тестирования… То же самое, если скачал чужой репозиторий и пытаешься запустить его у себя на машине. В Го для старта достаточно сделать go mod init. Для тестов не нужен фреймворк (да, есть testify, но это скорее библиотека для ассертов). Хочешь запустить чужое приложение на Go? Пожалуйста — делай go run <pkg-name>. Даже необязательно клонировать исходники себе на лаптоп.

Я не накидываю целенаправленно на Питон и не утверждаю, что он хуже Го. Понятно, что значительную часть этих проблем решили современными инструментами, но, в основном, тоже внешними. И Го в этом смысле не уникален. У Ноды тоже тулинг сильный. Я лишь хочу сказать, что, по моим ощущениям (не факт, что это правда, возможно я делулу), у команды языка изначально была цель реализовать философию «сел и просто начал работать» не только в самом языке, но и в его тулинге. Это относительно молодой подход, который в мейнстриме встречается редко. И это игла, на которую легко подсесть и сложно слезть.
136👍158💯7🤔2
🥂Выпуск подкаста про GoLand уже доступен на YouTube

https://youtu.be/AxdnYtQtuow

В качестве извинения за задержку держите бонус — список любимых хоткеев Арсения, часть из которых наверняка мало кто знает:

1. Jump to source (F4) / Jump to type source (shift + F4) — переход к исходникам (из переменных в дебагере, из diff коммита, из quick doc и много где еще)

2. Next/Previous highlighted usage (cntrl + option + up/down) — быстрый переход между usages символов

3. Type info (cntrl + shift + P) — вывод типа выделенного выражения в редакторе (очень удобно, если надо понять тип какого-нибудь выражения)

4. Call Hierarchy (cntrl + opt + H) — показывает полное дерево вызовов от заданной функции (каретка должна быть на вызове или декларации функции/метода). Причем может показывать иерархию в две сторонны — caller (кто нас вызывает) и callee (кого мы вызываем). Удобно, если хочется проследить откуда вызывается данная функция.

5. Json to struct (copy json + insert in go file) — по json генерирует go структуру, очень интересная штука

6. Select in... (option + F1) — позволяет быстро открыть текщуий файл в редакторе в project view/терминале и других тулвиндах

7 Extend selection (Option + ↑/↓) — выделяет синтаксический кусок кода

#gogetpodcast #goland
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥75🙏3👍1🥱1
Go-разработка в 2025 — как она на самом деле устроена?

Go уже давно не только про микросервисы: его используют в ML-инфраструктуре, на бэке, в highload-сценариях, и даже в геймдеве.

Если вы пишете на Go, расскажите, как это выглядит у вас.

DevCrowd запускает новое исследование русскоязычных Go-разработчиков.

Ищем ответы на вопросы: какие задачи вы решаете, что мешает или помогает, и как выстраивается работа в команде.

Зачем участвовать?

– чтобы свериться с рынком: стек, процессы, зарплаты, команда
– понять, как Go применяют в разных доменах
– помочь сделать профессию более прозрачной для новичков и тех, кто нанимает

📝 Пройти опрос — https://survey.alchemer.eu/s3/90907937/Go-2025
📊 Результаты — в ноябре на devcrowd.ru
👀 Исследование 2024 года — https://devcrowd.ru/go-2024

#партнерскийпост
👍7🔥32👌1
На выходных прошел Ludum Dare в 58 раз (на самом деле закончилась только одна из категорий, в процессе еще две). Ludum Dare — это один из старейших и крупнейших геймджемов в мире, этаких хакатонов, но про геймдев.

Я не участвовал уже много лет по куче причин. Одна из них — движки. Unreal Engine слишком громадный для маленькой игры на двухдневном джеме. Unity — худшее, что я видел в жизни. Других зрелых альтернатив тогда особо не было, а писать собственный движок — затея еще хуже. Да, уже тогда был Godot, но он был совсем молодой, а я был слишком ленив, чтобы нормально его попробовать.

Этой осенью у меня внутри снова что-то зашевелилось, и я захотел поучаствовать. Решил все-таки дать шанс Godot. К тому же со мной всегда мои друзья: Codex и Claude Code. В итоге агенты были по-настоящему полезны всего пару раз, когда нужно было раскопать неприятные и запутанные баги. В остальном выходило лучше и быстрее, если писал код сам. И знаете что? Я не помню, когда я в последний раз так кайфовал от написания игр. Godot — это движок здорового человека, Blender от мира игровых движков. GDScript, язык для скриптов в Godot, идеально подходит, чтобы очень быстро набрасывать прототипы.

Для справки: в Godot кроме GDScript можно использовать C#, C++ и еще кучу других языков (Go в том числе).

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

У вас может возникнуть справедливый вопрос: почему не Go + Ebitengine? Моей задачей было получить игру с минимальными препятствиями. Всё-таки Ebitengine — скорее фреймворк, чем полноценный движок. Да простит меня Искандер! К тому же хотелось чуть-чуть отдохнуть от Go.

Если хотите поиграть, заглядывайте на страницу игры, но имейте ввиду, что есть баги и это далеко не GOTY.
👍18🔥8🏆31👏1
Audio
🔥15🤯211😱1😢1🏆1
Go давно вышел за рамки веба. На нём уже пишут базы и прокси, видео-сервисы, блокчейн-узлы, компиляторы и даже игры — и делают это не ради эксперимента, а в продакшене.

В новом сезоне онлайн-конференции Podlodka Go Crew (10-14 ноября) разбираемся, как язык открывает путь к более сложным и интересным задачам — от инфраструктуры и DevEx до real-time и системных сервисов — и почему это отличный шанс вырасти как инженер.

В программе:

⚙️ Как сделать быстрый клиент для базы данных. Разберём, как реализовать асинхронное взаимодействие с БД на Go на примере Tarantool, какие оптимизации реально ускоряют код и как эволюционировать от наивного решения до производительного, — вместе с Олегом Жуковцом (VK Tech).

🌐 Как управлять сетями прямо из Go.
Посмотрим, как устроены интерфейсы в Linux, как ими управлять и собирать сложные топологии без боли. Узнаем, как работает CNI в Kubernetes и почему мир виртуальных сетей держится на Go, в докладе Даниила Губанова (Точка).

🔒 Блокчейн как real-time система. Без маркетинга: только Go, каналы, горутины и контроль над хаосом. Разберём блокчейн как инженерную задачу: сеть, криптографию и конкуррентность — вместе с Ниной Лукиной (01tech).

💬 Круглый стол «Когда Go выходит за рамки». Поговорим с нанимающими тимлидами о том, кого ищут под нестандартные Go-задачи: где важны инженерная зрелость, осознанность и умение разбираться в системах под капотом, — и как туда попасть.

💡Тем, кто хочет вырасти из CRUD-сервисов и попробовать себя в системных и инфраструктурных задачах, будет особенно полезно.

🗓 Билеты уже на https://podlodka.io/gocrew

По моему промокоду deferpanic получите скидку 500₽🥳

#партнерскийпост
👍43😁2
defer panic
Напишите в комментариях, в каких доменах вы используете или хотели попробовать Go. Двум случайным комментаторам я завтра выдам бесплатные проходки!
Бог рандома решил, что проходки получают @solidshake @aohoyd 🎉

Стучитесь в личку канала за промокодами ✌️

Для остальных всё ещё актуален скидочный промокод в посте-анонсе
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4🤯1😱1
Недавно вышло новое исследование от DevCrowd о Go-разработчиках.

Из интересного:

- Go продолжает усиливаться в компаниях: всё больше команд пишут только на Go, а микросервисы и Kubernetes стали стандартом.
- AI быстро внедряется: почти половина разработчиков уже используют ИИ в тестировании и автодополнении, а доля «не использующих» упала почти в три раза.
- Доходы стабильны и растут: медианные зарплаты миддлв и сеньоров остаются высокими, а у джуниоров заметно вырос нижний порог.
- Go-разработчики в основном работают удалённо: офис — скорее исключение, и только ради команды или смены обстановки.
- Большинство входит в профессию без профильного образования: диплом помогает, но не является необходимым для роста и найма.
- В IDE и редакторах происходит важный сдвиг: GoLand ещё доминирует, но его доля падает, а VS Code и даже AI-редакторы вроде Cursor и Zed активно отъедают рынок.

Читать исследование полностью: https://devcrowd.ru/go-2025
🔥1343👏2💅2💊2🤩11
Коллеги заопенсорсили инструмент, позволяющий использовать S3-совместимое хранилище для хранения кэшей сборки

https://github.com/platacard/cacheprog
19🔥411👀11
Я к вам с пятничными вакансиями. На этот раз не про Go, но я знаю, что меня читают не только гоферы и не только разработчики.

Ищем QA-инженеров-автоматизаторов для мобильного приложения на Свифте и на Котлине.

Что за команда/продукт?
Команда CAA (Cards & Accounts) — это продуктовая команда, отвечающая за бэкенд и фронтенд функций, связанных с обработкой платежей, включая наши наиболее важные экраны, отображающие основную информацию о счете, картах, выписках и кэшбэке. Кроме того, эти же данные предоставляются CRM-сервисам. Главная задача команды — сделать взаимодействие наших клиентов со своими счетами и картами в приложении удобным и приятным.

Я сам до недавнего времени был частью Cards & Accounts. Могу сказать, что одна из самых крутых и профессиональных команд, в которых мне довелось поработать.

Что предлагаем:
- Помощь в переезде в один из наших хабов — на Кипр, в Испанию, Сербию или Казахстан — с поддержкой для сотрудника и его семьи.
- Гибкий график работы из одного из наших офисов или удаленно.
- Медицинское страхование.
- Бюджет на образование: языковые курсы, профессиональное обучение и сертификация.
- Бюджет на оздоровление: компенсация расходов на поддержание психического здоровья и физическую активность.
- Отпускные: 20 дней ежегодного отпуска и оплачиваемый больничный.

Чтобы откликнуться, можно заполнить форму на странице вакансии или написать мне в личку.
👍522🥰1💘1
За последние несколько лет я провел много собеседований. На масштабе начинают проявляться паттерны, и кандидаты часто сводятся к некоторым архетипам, если это так можно назвать.

Один из таких архетипов — «инфраструктурный решала». Извините, лучше названия нет и не будет. Так вот, такой разработчик отлично разбирается в СУБД, очередях, кэшах и прочих хранилках и молотилках. Он знает, как строчки в табличке мапятся на страницы на диске. Он может рассказать всё про блокировки и уровни изоляции. Он действительно решал все эти проблемы на практике, по крайней мере он так звучит и может так же уверенно отвечать на вопросы, уходящие вглубь. Нередко от таких кандидатов возникает ощущение, что они знают и умеют больше меня.

Но вот кандидату задается вопрос не про СУБД или что-то вокруг, а про, внезапно, программирование. Причем вопрос необязательно про специфику конкретного языка. Тут-то вся уверенность куда-то исчезает. Теперь почти все ответы строятся на робких предположениях и на том, что кандидат где-то когда-то прочитал или услышал.

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

У меня долго это не укладывалось в голове. Потом я понял: дело в том, что мы как индустрия планомерно переносили сложность из разработки в эксплуатацию. Это хорошо, поскольку так мы можем победить сложность один раз, спрятать её и больше об этом не думать. Но бывает так, что сложность победили не до конца или спрятали, но так, что уши всё ещё торчат.

Мой любимый пример — постгрес. С одной стороны, это самая популярная, народная СУБД. С другой — полиэтиленовый пакет с абстракциями, вытекшими наружу из-за того, что пакет дырявый. Причина, по которой на любом техническом интервью есть секция, посвященная отдельно постгресу, — сложность, которую он должен как бы скрывать, но в итоге просто превращает в другую сложность. Нельзя просто создать индекс и рассчитывать, что постгрес будет его использовать. Почему? Потому что постгрес умный и может решить, что индекс ему не нужен, и пройти сексканом будет быстрее и лучше. Что? Да! И как бы да, часто он в этом прав. Но это лишь один пример одной из множества неочевидных деталей внутреннего поведения СУБД, о которой необходимо знать, чтобы не попасть впросак. Да и насчет «прав» я погорячился — быстрее всё равно не стало, зато появилось что расследовать. И в конце концов, его никто не просил этого делать.

Сумма всей сложности в замкнутой системе остаётся постоянной — как ни старайся её перекладывать из одного угла в другой.

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

Под умением программировать я, конечно, не имею в виду вещи типа «чем инт отличается от флоата», «как работает наследование» и т.п. Скорее речь про системное мышление, умение переносить концепции и абстракции из одной области в другую. Ну и, конечно, те самые «фундаментальные знания».

Короче, я что сказать-то хотел. Изучайте постгрес, кафку и кубернетес — это вам сильно поможет тактически. Но не забывайте про само программирование, чтобы не проиграть стратегически.
43👍17🤔4👎2🔥2111
Вышел Go 1.26. Релиз с виду небольшой, но интересный:

• в new можно теперь передавать выражения
• go fix теперь запускает модернайзеры — тулы для авто-исправления кода согласно новым стандартам (например, замена strings.Split на итератор strings.SplitSeq внутри for-range). Обещают позже раскрыть больше подробностей в блоге
• новый сборщик мусора теперь включен по умолчанию
• pprof научился находить утекшие горутины
2🎉35854
🤖 AI в практике разработчиков: новый сезон Podlodka AI Crew

«Мы поигрались с промптом, но пока не внедряли» — часто разговоры про AI в разработке заканчиваются именно так.

Инструментов всё больше, а вот времени на то, чтобы разобраться и сделать так, чтобы магия заработала, порой не хватает.

С 16 по 20 февраля у Podlodka AI Crew пройдёт сезон «AI-агенты в разработке»: проверенные рабочие сценарии от практиков индустрии.

👀 В программе:
единый AI-workflow для разработчика
автоматизация стендапов и работы с документацией
Claude Code, субагенты для кодинга
практические кейсы внедрения AI в SRE
подходы к созданию промптов с насыщенным контекстом

Формат — классический для Podlodka Crew: 5 дней, 10+ спикеров, 10 сессий и закрытое комьюнити в Telegram.

Отдельный плюс — цена: заметно ниже привычных конференций, при этом контента много, и он ориентирован на практику.

👉🏻Если тема AI в разработке вам интересна и хочется меньше хайпа, больше дела — держите ссылку.

😉Также проходки получат два случайных человека, которые расскажут в комментах о том, как они используют AI в разработке. Результат — на выходных.

#партнерскийпост
3🔥21