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
go-internals — бесплатная онлайн-книга про внутренности Go. Может быть особенно полезной при подготовке к собеседованиям — на них почему-то очень любят поговорить про кишочки.

К сожалению, работа над книгой не продолжалась уже несколько лет. Однако те три главы, что есть, хоть и могли немного потерять актуальность, всё ещё полезны для общего понимания того, как устроен Go под капотом.

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

Книга → https://github.com/teh-cmc/go-internals
🔥16👍3💩1
Добавил в библиотеку с обобщёнными структурами данных деревья (произвольные и бинарные).

👉 https://github.com/tomakado/containers

В TODO остались куча и упорядоченное множество, после этого можно будет тегнуть первую версию.
👍4❤‍🔥1❤1
🥰11🤡2❤1
Классная коллекция ресурсов по архитектуре. Иногда заглядываю сюда как в справочник → https://mehdihadeli.github.io/awesome-software-architecture/
👍9🔥1
👨‍💻🍝 Обнаружил плагин для vscode, который не улучшает, а портит код. Зачем это может пригодиться? Например, чтобы специально испортить код и попросить кандидата на собеседовании поревьювить его.

Я правда не понял, зачем тут OpenAI, код испортить можно и без него 😄

👉 spaghettify.dev
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯5😁1🤔1😱1
Profile-guided optimization (PGO) — крутая фича, появившаяся в Go 1.20. Суть этой штуки в том, чтобы компилятор оптимизировал вашу программу при сборке, основываясь на информации от профилировщика. Очень хитрая затея, мне нравится!

Пока нахожусь в междуработье, но как только дотянусь руками до кода, обязательно попробую.

А в доке есть неплохая статья, рассказывающая о PGO подробнее: https://go.dev/doc/pgo
❤‍🔥5👍3
Итак, я опубликовал ролик про тестирование для платных подписчиков. По классике скоро он станет публично доступным для всех.

А ещё я открыл доступ к конспекту видео о concurrency — 25 страниц текста!

И новый ролик, и опубликованный конспект можно найти в следующих местах:

💳 dfrp.cc/Sdk4Sy
💳 dfrp.cc/HHLgq

P.S. Я пока не знаю, сколько времени ролик пробудет в закрытом доступе, т.к. внезапно возникли копирайтные ограничения — надо их уладить (Content ID как всегда нашёл трек там, где его нет).
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥12👍3
defer panic pinned a photo
По подсказке Николая Тузова завёл ещё платный телеграм-канал в качестве эксперимента. Буду туда постить всякое закулисное. Пока два варианта подписки:

За деревянные (200 ₽): https://t.me/tribute/app?startapp=s20B
За евро (€3): https://t.me/tribute/app?startapp=s20A

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

Как это всё работает я не знаю, для меня это скорее эксперимент. Если возникнут проблемы с доступом к каналу, смело пишите мне в личку (@tomakado).
👍8❤2👎1
Как и зачем писать тесты?

📹 https://youtu.be/sVevmvyFmCA

Смотрим, комментируем, лайкаем 😉

Гора полезных ссылок в первом комментарии 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15🦄2❤‍🔥1👍1🌭1
Вы наверняка знаете про Hugo — генератор статических сайтов, написанный, кстати, на Go.

Недавно у меня появилась необходимость сделать резюме, но я не хотел делать его в Google Docs или чём-то подобном, потому что такие доки у меня вечно теряются. Верстать руками HTML я тоже не хотел, поэтому просто заполнил все нужные данные в YAML-файлах, подготовил шаблон, а дальше Hugo сделал всё сам. В итоге получилось сделать всё так, что при конвертации страницы в PDF всё помещается на одну страницу.

Если вам нужен шаблон резюме, можете забрать его здесь 👉 https://github.com/tomakado/cv
❤6❤‍🔥4🔥2
👀 Месяц назад я выступал на конференции Podlodka Go Crew.

Через какое-то время мой доклад будет доступен для всех, а пока что его могут посмотреть любимки на Бусти, Патреоне и в платном канале:

💳 dfrp.cc/SLbRv4
💳 dfrp.cc/nmy7pi

Новый ролик тоже в процессе производства. Но если вы ещё не смотрели видос про тестирование, то вы знаете, что делать 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥5👍1👏1
Поделюсь с вами ещё одним исследованием рынка труда в IT. Если вам надоела эта тема — извините, в последние месяцы это всё было для меня очень актуально. Но вообще держать на руку на пульсе и отслеживать рынок полезно, даже если вы не собираетесь менять работу в обозримом будущем.

Так вот, devjobsscanner представил своё исследование рынка с 8 наиболее востребованными языками программирования в прошлом году. В топ вошёл, конечно, и 💎. Методика у исследования немного странная: как я понял, из выборки исключены вакансии без упоминания стека (типа просто “Backend developer”). С одной стороны идея понятна, с другой стороны стек можно было вытащить из описания, но для кого-то это, видимо, непостижимый рокет саенс.

Нужен кто-то, кто сделает метаисследование, чтобы сгладить сдвиги каждого из отдельных 😄

P.S. Поздравляю всех гоферок и вообще женщин в IT с Международным женским днём 👀🌷
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰3👍2
algo — коллекция решений задач с интервью с лайвкодингом на Go.

Если вы ещё никогда не ходили на кодинг-интервью (например, вы стажёр, джуниор или только учитесь), то наверняка полезно. Как минимум облегчит тренировки и подготовку.

У меня опыт такой, что я обычно прохожу кодинг-интервью без подобных тренировок, но у меня все эти алгоритмы были в универе и частично на работе + в FAANG я не пробовался.
👍11😍2❤1
Интеграция ChatGPT в Raycast ❤️

https://www.raycast.com/ai

Недавно у ChatGPT появился API, что позволяет творить всякие крутые штуки, ограниченные только фантазией разработчиков.

И одна из наиболее крутых и ожидаемых мною штук - интеграция с Raycast. Ожидал я её давно, но узнал только сегодня. Посмотрел демку от разработчиков, сказал своё "shut up and take my money" и присоединился к waitlist.

На мой взгляд, Raycast это самый лучший кандидат в клиенты для ChatGPT на маках, т.к. у него очень удобный, красивый и гибкий UI. К тому же, нативный, а не какой-нибудь электрон.

Вместо того, чтобы искать нужную вкладку или окошко, вы просто вызываете привычным хоткеем окошко Рэйкаста и пишете свой вопрос/команду, получаете результат. Плюс тут есть привычные для Рэйкаста плюшки: возможность создания "команд" (по сути, макросов из промтов), возможность назначения хоткеев на какие-то конкретные фичи и др.

Уже не терпится попробовать =)

#chatgpt #raycast
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2🤔1
Сегодня ночью пробили 2^11 🎉❤️
❤15🎉6🔥1
Я, кстати, обновил свой текстовый блог.

• новый дизайн — более аккуратный и адаптивный
• добавил поиск — да, на статическом сайте
• актуализировал информацию о себе
• перенёс сайт с Digital Ocean на GitHub Pages — второй вариант бесплатный, и не нужно свой раннер для GitHub Actions держать

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

У меня также куплен домен deferpanic.dev (и ещё куча других, я их коллекционирую :), и пока что я его приспособил только для инстанса Мастодона. Позже точно сделаю на нём блатную почту, но идей для того, что будет открываться по адресу deferpanic.dev особо нет. Если у вас есть мысли, делитесь в комментах )
🔥7👍3👻1
⚠️ Набрасываю на SQL

Я как-то раз писал про то, почему я не люблю SQL (именно язык как концепцию и философию, а не конкретные реализации), зато люблю про это говорить — уже третий пост, где я это упоминаю. Тем не менее я сейчас пишу код для следующего ролика, и я сознательно решил там использовать PostgreSQL. Причина простая — это видос про написание проекта. Такие видосы по моей гипотезе полезны прежде всего джунам, чтобы те могли приложить к резюме свой гитхаб, где лежит реализованный проект. И в данном случае джун, умеющий хоть как-то в PostgreSQL будет иметь преимущество, потому что постгря сейчас практически везде.

Так вот, я вчера мозг сломал в трёх местах, пока пытался написать запрос с элементарной фильтрацией по колонкам с таймстемпами. Не то что бы это что-то сложное, но способов выразить время и фильтры по времени в PostgreSQL миллион (как и положено в SQL). А к ним добавляется ещё неясность относительно того, как эти даты и интервалы правильно передавать конкретному драйверу — авторы того драйвера, что у меня решили, что не будут делать авто маппинг time.Duration в интервалы. Почему? Потому что не будут.

Вообще я думал про то, что в СУБД нужно выкинуть/сделать SQL опциональным и предоставлять бинарный протокол. Почему SQL нужен аналитикам — понятно. Зачем промежуточный язык для продакшен-кода — мне непонятно. Если бы у СУБД существовал бинарный протокол, то язык запросов мог бы быть выражен инструментами языка, на котором ведётся разработка. Да, я знаю про ORM и ActiveRecord. Но они всё равно превращают код на одном языке в код на SQL. Тут уж я скорее солидарен с го-коммьюнити — если и писать SQL-запросы, то на самом SQL.

Есть тула, на которую я недавно наткнулся — sqlc. Она отчасти, но решает эту проблему: вы описываете схему БД, как обычно вы это делаете в миграциях на создание таблиц, а дальше sqlc генерит код. Сгенерированный код реализует только CRUD, но при этом никто не мешает в отдельном файле рядом дописать к структурам методы, которых вам не хватает. В sqlc нравится, что это не ORM, а именно кодогенерация — при необходимости с sqlc можно будет постепенно без проблем съехать или, например, подменить части сгенерированного кода (засчёт эмбеддинга и прочих танцев, но всё равно). Выкинуть ORM просто так уже не получится.
👍7
Иногда мне нужно проверить какой-нибудь маленький сниппет кода, и обычно для этого я открываю Go Playground. А тут мне попалась штука под названием gore. Это по сути REPL для Go! Т.е. можно построчно и интерактивно вводить части кода и тут же выполнять их. Конечно, до лисповых реплов ему как до Луны (да и до питонячего, я подозреваю, тоже), но для описанного мной юзкейса в самый раз.
👍9🔥5