defer panic
3.02K subscribers
83 photos
11 videos
208 links
Канал про айти в целом и про Go в частности.
YouTube → youtube.com/@deferpanic
Все вопросы в личку канала
Поддержать канал:
ETH — tomakado.eth
TON — tomakado.ton
BTC — 19xwFstmVQsVYqZP64iMVg1StLNSah6Smo
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Гулял в очередной раз по ГитХабу и нашёл то, чего мне не хватало все эти годы — Comby. Это такая штука, которая умеет делать поиск и замену в коде, учитывая синтаксис языка. Авторы утверждают, что поддерживают если не все, то большинство языков.

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

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

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

❤ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9💩6👍3
Прямо сейчас происходит открытая трансляция главного зала HighLoad++ 2023. Рекомендую посмотреть, там много полезного.

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

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

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

--------

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

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

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

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

#партнерскийпост
🔥4🥱3⚡1
В этом году традиционно проходит Advent of Code — ивент, в рамках которого нужно решать каждый день по задачке. Всё это сопровождается какой-нибудь историей, которая продвигается по мере решения задач. Сегодня, кстати, первый день.

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

Я пока не знаю, буду ли стримить в этот раз — напишите в комменты, хотели ли бы вы смотреть такой контент в лайве. А ещё я не определился с языком. Вариантов у меня несколько: Go (очевидно; был в прошлый раз), Python (отлично подходит для быстрокода с алгоритмами), Clojure (нежно люблю лисп и даже юзал в продакшене), что-то ещё функциональное (мозги нужно тренировать!) или простигосподи Rust (всё ещё осторожно посматриваю на него со стороны).

А у вас какие планы? Планируете участвовать? Если да, то на чём?

❤ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥1😍1🍓1
Вот уж на какой wrapped действительно интересно посмотреть, так это на Raycast Wrapped. Интересно, что почему-то чаще всего я им пользовался по вторникам 🤔 Тут, конечно, не полные данные за год, т.к. я три раза менял комп — всю собранную статистику Рейкаст хранит только локально.

Если вы тоже пользуетесь Рейкастом, делитесь вашими результатами в комментах

❤ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8💩4👍1
В блоге Go анонсировали утилиту deadcode. Как понятно из названия, это инструмент статического анализа для поиска кода, который нигде не вызываются. Такое уже умеют делать многие линтеры, но приятно, что подобные инструменты предоставляются и авторами языка.

В статье, кстати, описывается, как deadcode работает под капотом. Поэтому рекомендуется к прочтению всем, кто интересуется статическим анализом кода.

❤ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
👏21👍6🔥2
Никита Русин добавил в утилиту для мутационного тестирования Gremlins очень важную фичу — прогон только на свежих изменениях. Мне очень нравилась эта фича ещё в golangci-lint, т.к. она позволяет начинать использовать инструмент не только на новых проектах, но и внедрять их в гремучее легаси.

Если размер/сложность/возраст проекта — единственное, что вас останавливало попробовать писать мутационные тесты, можно больше не переживать и начинать внедрять.

🤔 Что ещё за мутационное тестирование?
Это такой способ проверить, насколько тесты действительно покрывают код. Делается это путём внесения случайных и небольших изменений (мутаций) в тестируемый код. Если тесты хорошо ловят мутации, то с качеством покрытия всё в порядке. В противном случае стоит посмотреть, а что вообще ваш тест проверяет и делает ли он это корректно.

Иными словами, мутационные тесты — это метод проверки качества самих тестов, а не тестируемого кода.

❤ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🫡4🌚1
Сценарий для нового видоса готов, так что ждите видос в течение пары недель
🔥23👍4⚡2❤2🤔2
🎉 Новый ролик уже вышел для платных подписчиков!

В этот раз рассказываю о 12 принципах, которые помогают писать надёжный бэкенд.

💬Закрытый канал
💳Бусти
💳Патреон

Позже ролик появится в публичном доступе.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡9⚡8👍3❤‍🔥2😁2
Если вы пропустили, на этой неделе вышел Go 1.22. Пожалуй, главное изменение произошло в поведении циклов. Теперь переменная цикла больше не захватывается по ссылке, и не нужно делать shadowing или другие похожие трюки/костыли.

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

На мой взгляд, так надо было делать изначально, конечно.

❤ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤2
12 факторов надёжного приложения

📹 youtu.be/uKyyIWkKDW8

Часто бывает так, что работа с кодовой базой проекта приносит боль в самых разных аспектах: от внесения изменений и добавления новых фич до развертывания на стенде. Может показаться, что какие-то проблемы являются данностью, и с этим принципиально сложно что-то сделать. К счастью, это относится не ко всему.

Адам Виггинс и другие сотрудники компании Heroku однажды решили составить документ, который помог бы решить многие проблемы с разработкой и эксплуатацией информационных систем. Этот документ называется “The Twelve-Factor App” или «12-факторное приложение». В ролике я разбираю каждый пункт документа.

С сегодняшнего дня ролик в общем доступе. Всем, кто подписался на Бусти/Патреоне/Телеграме и посмотрел там, вам большое спасибо за поддержку ❤️

❤ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23❤‍🔥5❤3🔥2🤡2
Периодически мне пишут с вопросом про ролик про новостного бота. Суть вопроса чаще всего следующая:

> Если я не хочу/не могу использовать OpenAI API или хочу для сравнения попрыгать по разным моделям без особых усилий, что мне делать?

Обратите внимание на проект LangChain for Go. По сути это порт одноимённого проекта для Питона, позволяющего вам взаимодействовать с разными LLM (и кажется не только) через единый интерфейс. Через LangChain можно ходить в OpenAI API или обращаться к моделям, которые вы запускаете сами у себя на машине. Ну и да, если какой-то модели нет, всегда можно просто заимплементить нужный интерфейс.

Сразу скажу, что лучше OpenAI тупо ничего нет — команда Альтмана на невероятном отрыве от остальных. Поэтому если ваша цель найти что-то лучше, можно остановиться прямо здесь. Я вижу только две адекватные причины не использовать GPT-4 или использовать не только её:

- Недопустимо, чтобы данные покидали ваш контур
- Вы хотите иметь фоллбэк-модели на случай, если OpenAI сляжет

❤ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
С 1 марта (это уже завтра, напомню) сайтам в России будет запрещено рассказывать о VPN и других средствах обхода блокировок. С одной стороны у каждого, кто не хочет жить исключительно под пропагандой и ходить только на подментованные сайты, давно есть свои способы обхода. С другой стороны, конкретные VPN-сервисы и не только периодически попадают под бан. Доходит даже до смешного: в бан попадают даже сервисы типа Steam Community, которые вообще не связаны с обходом блокировок или политикой.

На фоне всего этого хочу рассказать про сервис FRKN, цель которого — построить VPN с фокусом на обход блокировок именно Роскомпозора. Нет, это не реклама в привычном смысле. Я пишу об этом проекте, чтобы поддержать ребят. Проект некоммерческий. FRKN поддерживает два протокола: XRay и WireGuard. Сервера на WireGuard бесплатные полностью, а на XRay дают бесплатный месяц, а также скидку для НКО, студентов, правозащитников и т.д.

Подробнее о VPN и о том, как его получить, можно почитать в посте канала проекта.

Если у вас уже есть VPN, настройте его маме, брату, деду (не тому), younameit.
👍20👎11🤡10❤3🖕3
В последние годы редакторы кода расплодились, как фронтенд-фреймворки. И иногда среди этого потока обнаруживаются такие бриллианты, как Zed. Это редактор, который делают разработчики легендарного Atom. Так а в чём прикол? Давайте разберёмся.

Во-первых, скорость. Он не просто быстрый — он адски быстрый. Ощущения от отзывчивости и скорости примерно как от Саблайма. Не знаю как вы, но на своей скорости печати (не самой высокой, но выше среднего) я отчетливо ощущаю разницу в задержке между нажатием клавиш и результатом на экране. Это включает в себя не только непосредственно ввод текста, но вообще всё в Zed, в том числе время старта.

Во-вторых, простота. Я немного устал за последние годы, что от VSCode, что от GoLand. И тот, и другой — крутые и очень мощные инструменты. Но когда на тебя кроме кода смотрит армия иконок, а каждые пять минут всплывает уведомление, рука постепенно начинает тянуться к кобуре. В Zed занесли только то, что реально нужно. Да, я понимаю, что IDE и легковесные редакторы — это немного разные категории. Но среди именно простых редакторов не хватало чего-то помощнее, как бы это странно ни звучало. Тут из коробки поддерживается Language Server Protocol и все связанные фичи, GitHub Copilot (либо собственный ассистент от Zed с вашим OpenAI-ключом) и... всё? Ну понятно, подсветка синтаксиса и прочее, без чего редактор кода был бы просто текстовым редактором.

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

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

❤ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍6🍓6🤡5❤3
Думаю, далеко не все в курсе, что у нас есть ещё и дискорд-сервер. На нём уже около 100 человек, но при этом мало что происходит. Раз там нас уже так много, то чего зря добру пропадать?

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

А вообще расскажите, какие форматы взаимодействия/активности вы бы хотели видеть в дискорде? Может, какие-то онлайн-ивенты или что-то подобное? Для начала я решил возродить привычку постить классные ссылки в специальный канал.

Ещё была идея собирать там дайджесты гошных и бэкендерских вакансий, но руки пока у меня не дошли.
👍15❤3🤮3😭11
Сейчас идёт подготовка к новому сезону Podlodka Go Crew, и я снова принимаю участие в работе программного комитета. Прямо сейчас мы собираем фидбэк о том, какие темы вам интересно было бы послушать на конференции.

Просьба проголосовать за интересующие вас темы через гугл-форму.

Среди всех, кто проголосует в форме до 21 марта 17:00 МСК, будет разыгран билет на конференцию.
🤝10❤‍🔥4🔥3❤2🤮2
Добавил новый пункт в awesome-go-interview, мой список ресурсов для подготовки к техническим интервью.

trainer — это приложение для терминала, через которое можно тренироваться в решении лайвкодинг-задач. Написано, кстати, на любимом мною фреймворке bubbletea.

❤ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19❤53🤮1
JetBrains сделали плагин для прохождения Tour of Go прямо в их IDE: https://blog.jetbrains.com/education/2023/12/18/learn-go-community-course/

Доступно не только в GoLand, но и в бесплатной IDEA
🔥25❤53👍2🥴1
👣➡️👣 Наконец-то решил свитчнуться на Rust. Go окончательно мне надоел. В чём же дело?

Во-первых, в Go мне не хватает выразительности. Это очень бедный на синтаксис язык, и каким бы гениальным разработчиком вы не были, вся красота и глубина вашей мысли будет утоплена в абсолютно дубовом и прямолинейном синтаксисе Go. Когда же я пишу на Расте, а потом читаю получившийся код, мои глаза отдыхают.

Во-вторых, Rust в отличие от Go ⚡️ молниеносно быстрый 🚀. Если бы мне надо было написать прошивку для аппарата, который запускают на Луну, я бы написал её на 🚀 Расте. Если мне нужно будет написать самый быстрый и эффективный сервис на свете, какой бы сложной внутри логика не была, я напишу его на ⚡️ Расте. Если мне нужно будет написать движок для своего блога, я напишу его на ⚡️ Расте 🚀. Если мне нужен будет скрипт для CI/CD-пайплайна, я напишу его на 💻 Расте 💀.

В-третьих, сборщик мусора — это прошлый век. Я не могу придумать более уродливую и неказистую конструкцию в программировании, чем сборщик мусора. Это не просто костыль, это король костылей. Тратить впустую cpu time, создавать лишнюю задержку в ответах бэкенд-сервисов, сжигать драгоценную энергию... Извините, но это не про меня.

В-четвертых, как же я устал от механизма обработки ошибок в Go! После каждого чиха разворачивать результат функции и проверять наличие ошибки — это какая-то дичь. Хорошо, что в Расте по-другому!

Я могу назвать ещё много причин для перехода с Go на Rust — хватило бы на объём всей трилогии Лю Цысиня «Память о прошлом Земли». Но идею, думаю, вы поняли. С этого момента все посты и ролики на ютуб-канале будут посвящены либо только Расту, либо сравнениям Go с Rust в синтетических тестах.

⚡️🚀 Viva La Rust!
Please open Telegram to view this post
VIEW IN TELEGRAM
😁82👏13👍12🤯4❤3
В GoLand и другие IDE от JetBrains завезли две важные (или просто интересные) фичи.

1. Data Flow Analysis (DFA). Статический анализ кода, позволяющий вычислять возможные значения переменных и обнаруживать потенциальные ошибки, такие как nil pointer dereference, бесконечные циклы и прочее. По сути IDE прикидывает данные, на которых программа поведёт себя некорректно.

2. Full Line Code Completion. Теперь GoLand может дополнять ваш код не «точка за точкой», а сразу всю строку. Это делается с помощью AI, но полностью локально. По сути JetBrains вытащили часть функциональности своего AI-ассистента и поместили прямо в IDE.

❤ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18😱12❤3🔥3🌚3
Потихоньку возвращаюсь с перерыва с хорошими новостями. На следующей неделе стартует Podlodka Go Crew 3, в которой я снова принимаю участие как член программного комитета. Podlodka Crew — это формат онлайн-конференций, который проходят в течение недели (одна сессия утром, еще одна вечером). Тема этого сезона — «Работа с базами данных». Что будет в сезоне:

⭐️ Научимся сравнивать библиотеки и ORM вместе с Арсеном Абдусаламовым из Авито. Познакомимся с решениями как можно подключаться к базам данных и узнаем про «Go way» способ.
⭐️ Попрактикуемся обращаться с распределённым MySQL с помощью Vitess вместе с Ильёй Ушаковым. Ведь одного инстанса MySQL в какой-то момент может начать не хватать. Что же делать, если переходить на NoSQL совсем неохота? Vitess — ответ на этот вопрос, золотая середина между NoSQL distributed базами данных и проверенным опытом MySQL.
⭐️ Узнаем всё о продвинутых структурах данных в Redis вместе с Олегом Арутюновым из Контура. Углубимся в преимущества и недостатки подхода, разберёмся с миграциями данных и оптимизацией базы.
⭐️ Мокать или предзаполнять базы данных? На этот вопрос ответят спикеры из Ozon Fintech. И это будет не просто доклад, а баттл: не на жизнь, а на смерть. Разберёмся, когда какой подход выбрать и стоит ли ограничиваться только одним.

🎁Бонус: публичный собес по работе с PostgreSQL. И это, естественно, не все сессии сезона.
Залетай за билетом, чтобы не пропустить специализированную конференцию для Golang-разработчиков

Для моих подписчиков есть промокод на скидку 500 ₽ — go_crew_3_deferpanic

#партнерскийпост
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥6⚡2🥴2🍓2❤1