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
Вышел очередной EAP-релиз Goland 2023.2. Из интересного — добавили интеграцию с Гитлабом. Правда, я так и не понял пока что, работает ли с селф-хостед — надо будет проверить. Из красивого — наконец-то нормальная светлая тема (бывает, включаю её, если сижу у окна в солнечный день).

Расскажите, на чём сидите? Goland? VSCode? VIm/Neovim? Sublime Text? Emacs? Light IDE? Я 80% времени работаю в Goland, но и в Neovim периодически возвращаюсь.

https://blog.jetbrains.com/go/2023/06/02/gitlab-integration-2023-2-eap-3/
👍9🔥2
Опубликовал новый ролик в раннем доступе. В ролике я пишу телеграм-бота, который автоматически получает новые статьи из заданного набора источников (преимущественно про Go), а затем генерит саммари через API ChatGPT и постит всё это дело в специальный телеграм-канал. Кстати, пример работы бота можно посмотреть в канале readme.go.

Если вы, например, джуниор-разработчик, наличие завершенных пет-проектов на гитхабе — это всегда плюс. Агрегатор новостей — в меру сложный проект, которым не стыдно похвастаться на интервью. А если вы миддл, сеньор или кто покруче, то можете накинуть на вентилятор ;)

Ролик в раннем доступе можно посмотреть в следующих местах:

💳 dfrp.cc/nPoArA
💳 dfrp.cc/APPnpq
💬 t.me/deferpanic/120
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10🥰2😍2
defer panic pinned a photo
💰 Принёс вам работу

В компанию, где я работаю, открыты вакансии на позицию Go-разработчика. В данный момент ищем миддлов и сеньоров.

Что за компания? Финтех-стартап в Мексике, который строится выходцами из Tinkoff, Vivid, Yandex, Ozon и других бигтех-компаний. Работать можно из любой точки мира, либо в офисах на Кипре, в Казахстане и Мексике.

Первый продукт уже в проде. Несмотря на это, у компании множество направлений, на которые она смотрит, и это отличная возможность поучаствовать в развитии финтех-продукта на ранних стадиях.

Подробнее о компании + открытые позиции: dfrp.cc/5dYpX

Если надумаете, пишите мне, а я направлю вас дальше 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7💩7❤‍🔥4👎1🔥1
Наткнулся на прикольный тренировочный репозиторий. Он содержит в целом рабочий код, но при этом внутри намеренно были оставлены баги, уязвимости и куски кода, которые в сообществе Go принято писать по-другому. Автор репозитория предлагает в качестве упражения при подготовке к техническому собеседованию исправить эти недостатки.

P.S. За всё время я запостил уже много таких штук для подготовки к интервью. Ставьте 💅, если хотите, чтобы я уже наконец сделал подборку.

❤️ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
💅72🥱2❤1
🤯🎮 Геймдев на Go

Мы все привыкли воспринимать Go как язык для серверной и инфраструктурной разработки. Что если я вам скажу, что на Go можно писать игры? Конечно, экосистему, возможности и объём накопленных сообществом знаний и опыта нет смысла сравнивать с Unity, Unreal Engine или даже Godot, но как минимум это возможно.

Естественно я говорю не о игровых серверах — с ними всё понятно, а о полноценных десктопных/мобильных/веб-приложениях с графикой на GPU, звуком, поддержкой контроллеров и т.д. И да, очевидно, что Go по многим причинам — далеко не лучший язык для разработки игр, особенно с AAA-графикой. Но это язык общего назначения, и понимая его особенности и ограничения, на нём всё же можно вполе себе писать игры.

Например, в июле в Стиме выйдет игра Искандера Шарипова aka quasilyte — “Roboden”. Это полноценная стратегия в реальном времени про непрямой контроль над роботами. Игра написана с использованием движка Ebitengine (да, он правда так называется). Я в своё время пробовал этот движок и планирую использовать его в одном своём проекте. По ощущениям это, конечно, скорее игровой фремйворк типа FlashPunk/Flixel/Raylib, а не движок, но так даже удобнее для небольших игр.

Если у вас тоже есть странное желание писать игры на Go, то во-первых, взгляните на выше упомянутый Ebitengine — это самый зрелый на данный момент проект. Во-вторых, есть пара видео, которые помогут вам понять текущее состояние геймдева на Go:

👾 Разработка игр на Go: обзор экосистемы Ebitengine
👾 Go делать игры! / Алексей Акулович
👾 Go`ne Gamedev ep1: ECS и Пилотный Апанасик — пилотный эпизод подкаста про геймдев на Go
👾 Go Get Podcast #3: GameDev в Go

Ну а в-третьих, есть чат @go_gamedev, который как раз админит Искандер.

Ещё есть инициатива по добавлению Ebitengine в официальный список движок на itch.io. Поддержать инициативу можно, сделав ретвит:

https://twitter.com/quasilyte/status/1671081174301659136

Игру, кстати, можно пощупать на itch.io, а посмотреть трейлер на Ютубе

❤️ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍1🏆1
Пост про подготовку к тех.интервью набрал 50+ ноготочков, поэтому я начал собирать документ с полезными ресурсами для подготовки

https://awesome-go-interview.dev

Есть ресурсы на английском и русском. Если у вас есть что-то ещё на примете, не стесняйтесь делиться ссылкой или создавать PR в репозиторий: https://github.com/defer-panic/awesome-go-interview
👍8❤6❤‍🔥2🔥2👏1
👀 Что нового в Go 1.21

Релиз версии 1.21 случится ориентировочно только в августе, но уже сейчас известно про ряд интересных нововведений:

🔹Profile Guided Optimization (PGO) выходит из превью в релиз
🔹 Наконец-то появятся билтины mix и max
🔹 К ним впридачу clear — функция, которая из мапы удаляет все элементы, а в слайсе заменяет на нулевые значения
🔸 Встроенный пакет log/slog для структурированного логирования
🔸 Пакеты slices и maps с набором полезных дженерик-функций для соответствующих структур данных
🔸 Пакет cmp с фукнциями для сравнения значений, у которых типы удовлетворяют констрейн Ordered

Имейте ввиду, что это первый релиз-кандидат, поэтому ченджлог к релизу ещё скорее всего поменяется.

Весь список изменений 👉 https://tip.golang.org/doc/go1.21

❤️ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍11🤝2
В новом ролике мы с вами напишем проект, который не стыдно положить на свой GitHub. Это будет Telegram-бот, который автоматически достаёт свежие новости и статьи про язык программирования Go из разных источников, генерирует для них саммари с помощью OpenAI API (ChatGPT), а затем публикует их в Telegram-канал. И всё это автоматически!

Такой проект может послужить отличным преимуществом при поиске работы, особенно если вы джуниор-разработчик, и вам нужно выделиться среди других соискателей 😉

📹 youtu.be/tqQr2tNpJrA

❤️ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍4👏3❤2😍1
defer panic pinned a photo
@stvtelege принёс в клювике, что github.com/golang/mock ушёл в публичный архив. В целом ожидаемо — последний релиз был чуть больше двух лет назад. Если что, проект форкнул Uber и теперь занимается его развитием: https://github.com/uber/mock

Не могу не вставить мысль, повод хороший:

Вообще, есть у коммьюнити Go и Clojure одна общая черта (хоть языки и абсолютно разные), которая мне очень нравится — отсутствие дурмана «если проект не обновлялся больше года, им нельзя пользоваться». Да-да, я смотрю в твою сторону, JavaScript. Почему-то для мейнстримных языков не позволительна мысль о том, что бывают программные продукты, которые в какой-то момент становятся законченными. В целом понятно, в том же JavaScript через месяц на тех же версиях зависимостей всё развалится, не говоря уже о старых. Но кажется это не ок и вообще не про стабильность и отсутствие нервных срывов.
👍22❤1❤‍🔥1
Кажется, я сюда ещё не писал про главный скандал в мире Go последних месяцев — добавление телеметрии в тулчейн.

Я могу понять, почему есть телеметрия в Visual Studio Code — это продукт, который развивается по модели «мы не можем просто сделать редактор и остановиться — нам нужно дальше его закидывать фичами, которые никому не нужны, потому что иначе не нужны будем мы». Для того чтобы часто шипить новые фичи или тюнить существующие, нужна какая-то аналитика по тому, как используется продукт. Я не сторонник что телеметрии в Visual Studio Code, что такого подхода к развитию продукта. Но тут хотя бы понятно, почему так сложилось.

Но на кой чёрт это надо в языке программирования, особенно таком, как Go? Одна из ключевых идей философии языка — очень аккуратное, неспешное и обратно-совместимое развитие; всё только самое необходимое. Если вам нужна статистика использования какой-то языковой фичи, то, ну... сходите на ГитХаб? Или что, энтерпрайз-код как-то принципиально по-другому пишется? Ну да, наверняка какие-то внутренние библиотеки/фреймворки используются, но это не относится к фичам самого языка. Тем более что в Go нет такого, что два случайно взятых разработчика пишут как-то принципиально по-разному (привет, C++).

Короче, меня напрягает не столько сам сбор телеметрии — он включается по желанию (т.е. никто в здравом уме её никогда не включит). Меня напрягает то, что её очень часто добавляют, чтобы потом закидывать продукт сырыми и никому не нужными фичами, потому что данные интерпретируются через одно место. Нужны они обычно только, чтобы циферки красивые показать. Я уж не говорю про секьюрити-консёрны, которые здесь появляются.

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

❤️ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤4❤‍🔥2🔥1👏1
This media is not supported in your browser
VIEW IN TELEGRAM
Всё никак не доходили руки рассказать вам про gping — как ping, только с графиком.

Во-первых, это красиво. Во-вторых, можно замерять пинг сразу до нескольких хостов. В-третьих, замерять время и строить график можно и для исполнения команд. В-четвертых, написано на Rust.

Ссылка: https://github.com/orf/gping

❤️ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍5❤‍🔥2👏1🤡1
Обновил в боте модель с GPT-3.5 на GPT-4. Стало сильно лучше, хоть и не идеально всё ещё. Возможно, стоит посмотреть в сторону чего-то, что специализируется на саммари, но пока ничего толкового не находил.
👍5
Forwarded from Go Update
proposal 61405: spec: add range over int, range over func

Вот и настал тот момент - Расс официально предлагает добавить поддержку range над следующими видами выражений:

▸ Range over integer: for x := range n { ... } где n целочисленное выражение или переменная. Будет эквивалентно for x := 0; x < n; x++ { ... }

▸ Range over function: теперь можно будет писать код for x, y := range f { … } где f это функция или метод со следующей сигнатурой:

1. func(yield func(T1, T2)bool) bool
2. func(yield func(T1)bool) bool
3. func(yield func()bool) bool


Значения которые не нужны запрашивающему коду (тот кто вызывает range) будут автоматически выброшены. Например для функции func(yield func(T1, T2) bool) bool допустимы следующие варианты range:

1. for x, y := range f { ... }
2. for x, _ := range f { ... }
3. for _, y := range f { ... }
4. for x := range f { ... }
5. for range f { ... }|

Возвращаемое yield булево значение позволяет определить вызываемому коду (тот кого вызывают через range), что пора прекратить исполнение и двигаться на выход (в случае break или return). Т.е. в случае for range f { break; } сразу после первого вызова yield вернет false.

Детали реализации и различные тонкости (такие как, что будет если yield будет вызван после выхода из тела range) пока обсуждаются.
🤯9👎8👍5😱1
Если вы, как и я уже похоронили Gorilla web toolkit, т.к. авторы заархивировали все репозитории и прекратили поддержку, то можете раскапывать могилу обратно. Теперь ментейнить проект будут ребята из Red Hat. Именно ментейнить — проект не становится их собственностью, и редхатовцы ожидают, что коммьюнити тоже подтянется. Интересно, учитывая, что при прошлых ментейнерах что-то никто не тянулся помогать

https://gorilla.github.io/blog/2023-07-17-project-status-update/
👍11🔥4
После того, как я сегодня в очередной раз поресерчил один топик и снова пришёл к тем же выводам, во мне что-то щёлкнуло, и я задумался об очередной попытке вести что-то типа базы знаний. В каком-то виде у меня она существует в виде набора заметок в FSNotes, но я думаю о том, чтобы делать это в Obsidian.

Какие можете дать советы? Какие плагины надо ставить обязательно?
🔥14
Obsidian заботливо предлагает сдать микроэкзамен на знание Вима, если вы хотите использовать Vim mode. Правильно — слишком много людей зашло в VIm, но так и не вернулось.

❤️ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
😁36🔥6👍2💊1
DevCrowd (Егор и Аня из Podlodka) проводят исследование Go-разработчиков 🛵 В нём задают вопросы про опыт, навыки, условия работы, самые сложные и интересные задачи, про сообщество и компании:

- Какие навыки для Go-разработчиков самые важные
- Какие инструменты используются в работе
- Как попадают в профессию и куда из нее уходят
- Полезные для развития каналы, курсы и книги

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

👉 Пройти опрос

#партнерскийпост
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🥱1