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
Кажется, преподаватель из универа нашел меня на линкедине
🌚4🤩1
Projectbook — cайт с идеями для проектов. Пригодится для изучения, например, новых языков программирования и фреймворков. У меня даже появилась идея позаписывать, как я реализую некоторые из мини-проектов.
👍7🔥3
defer panic
🚀❤️ Фух! Наконец-то я закончил видос про конкурентность в Go. Видос получился довольно плотным на информацию. Я бы хотел, чтобы у меня был подобный концентрированный гайд, когда я только начинал изучать Go. Пока доступно патронам и бустерам, позже выложу…
Видео про конкуретность в Go теперь в публичном доступе!

📹 https://youtu.be/mvUiw9ilqn8

Текстовый конспект к видео вы можете получить на Бусти и Патреоне:
💳 https://boosty.to/deferpanic/posts/ad993417-072f-4893-8b56-9778c4dcbf7a
💳 https://www.patreon.com/posts/konspekt-k-video-73674718

Полезные ссылки по теме конкурентности и параллелизма
• Планировщик https://www.youtube.com/watch?v=Gy6XEYWYht8
• Как не ошибиться с конкурентностью https://www.youtube.com/watch?v=4U3EaVufuW4
• Как ошибиться https://www.youtube.com/watch?v=AOLPelcByBo
• Rob Pike: Go Concurrency Patterns https://www.youtube.com/watch?v=f6kdp27TYZs
• Dave Cheney: Channel Axioms https://dave.cheney.net/2014/03/19/channel-axioms
• Dave Cheney: Curious Channels https://dave.cheney.net/2013/04/30/curious-channels
• Go Concurrency Patterns: Pipelines and cancellation https://go.dev/blog/pipelines
• Introducing the Go Race Detector: https://go.dev/blog/race-detector
• Thread Sanitizer Algorithm (алгоритм обнаружения состояния гонки): https://github.com/google/sanitizers/wiki/ThreadSanitizerAlgorithm
• Примитивы синхронизации: https://spec-zone.ru/RU/OSX/documentation/Darwin/Conceptual/KernelProgramming/synchronization/synchronization.html
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤‍🔥3
defer panic pinned a photo
Заливаю новый видос (да, уже) 🎃👻🦇
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥14🎉3🐳1
🎃 Конфеты или жизнь? IDE или Vim?

📹 https://youtu.be/a_r4pxBuK_4

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

Так как это эксперимент, видео я выкладываю сразу для всех.

Полезные материалы по Виму
• Гайд по Виму от «Хекслета»: https://guides.hexlet.io/ru/vim/
• Почтовая рассылка Vim Tricks: https://vimtricks.com
• Моя конфигурация для Neovim: https://github.com/tomakado/nvim
• Туториал по Виму от freeCodeCamp: https://www.youtube.com/watch?v=RZ4p-saaQkc
• Плейлист Neovim from Scratch: https://youtube.com/playlist?list=PLhoH5vyxr6Qq41NFL4GvhFp-WLd5xzIzZ
Please open Telegram to view this post
VIEW IN TELEGRAM
🌭4👍3😱2
defer panic
🎃 Конфеты или жизнь? IDE или Vim? 📹 https://youtu.be/a_r4pxBuK_4 Решил записать на Хэллоуин экспериментальный видос, где я импровизирую на камеру, рассуждая о том, зачем нужно хотя бы попробовать Vim, а также о том, как изучать инструменты с меньшей болью.…
Продолжение размышлений про инструменты и их сложность

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

Чтобы лучше понять разницу, подумайте: машинный код — простой? Ну вроде бы да. А писать на нём просто? Кажется, нет.

Да, у Go одна из самых лаконичных грамматик среди языков. Да, у нас тут минимум фич (макросы, вас очень не хватает), зато очень явный (хоть и не всегда ясный) код. Но будет ошибкой сказать, что писать на Go однозначно просто. Разрабатывать типовые веб-приложения, которые делают только CRUD будет просто на любом языке. При этом делать это на Python или NodeJS будет проще и быстрее, чем на Go, потому что для этих языков уже есть все необходимые кирпичики для большинства типовых задач. А вот написать приложение, в котором происходит асинхронный ад, но при этом ад можно контролировать — это задачка для Go. Но! Код такого приложения не перестаёт быть сложным только потому что асинхронные кишки вытащили наружу и сделали явными.

Для языков в частности и для инструментов в общем можно определить две характеристики: порог F и потолок C. Из них можно построить составную характеристику — высоту H = C - F. У C++ очень высокий порог, но и потолок тоже очень высокий. Т.е. у него H будет большим, но начать писать что-то осмысленное довольно тяжело. Если мы возьмём Java, то, наверное, её H будет примерно таким же, но с меньшим F, ну и как следствие меньшим C (т.е. легче вкатиться, но возможностей чуть поменьше). У скриптовых языков F ещё меньше, как и H, т.к. меньше окно возможностей.

А вот у Go H по моему опыту один из самых высоких. Потому что на нём очень легко начать писать, и на простых задачах не будет никаких проблем. Но если появляется необходимость написать что-то большое и сложное, Go не вставляет палки в колёса. Вы будете всё ещё писать на простом и понятном языке, но из-за сложности алгоритма и/или предметной области, легко всё равно не будет.

Так что когда вам кто-то скажет, что писать на Go просто, рассмейтесь ему в лицо и скиньте ссылку на мой канал.
❤6👌3🔥2😁1
Мне было сегодня лет, когда я узнал, что в Go есть оператор fallthrough 🤯

Как вы думаете, что он делает?

P.S. Не пишите так, пожалуйста!
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯5🥱3👎2👍1
Пишу одну штуку для канала в целом и для конкретного видоса. Решил попробовать хранить данные в EdgeDB по рекомендации @dimmodd в комментарии к посту про то, почему я не люблю реляционные СУБД. Пока что впечатления сугубо положительные, не считая не очень качественно сделанный драйвер для Go. Посмотрим, как оно приживётся и покажет себя на проде, но с точки зрения администрирования и тулинга это пока что самая удобная СУБД для меня. Да и язык запросов более человеческий по сравнению с SQL и MongoDB.

Видос кстати будет про один из проектов с сайта Projectbook.
🤔4👍2❤1🔥1🌭1
defer panic pinned a photo
Сейчас готовлюсь записывать видос про то, как я реализую один из проектов с сайта Projectbook с нуля до деплоя. Несмотря на то, что сервис очень маленький (два-три ключевых эндпоинта, не считая аутентификации), я чувствую, что ролик именно как единый видос получится прям длинным, даже если вырезать все несущественные моменты. Поэтому думаю распилить его на кучу маленьких видео и выложить как плейлист.

Не знаю как вам, но мне самому обычно удобнее смотреть «мини-курсы», попиленные по частям, чем что-то в жанре «X за N часов в одном видео». Так и прогресс удобнее отслеживать, и проще продолжить с нужного места, т.к. всё поделено на логические блоки.
👍13
А какой формат вы предпочитаете?
Final Results
32%
Один большой видос
68%
Плейлист из маленьких видео
👍1
Наткнулся на репозиторий-шпаргалку по бэкенду. Тут нет супер-подробностей, но зато покрыто очень много тем в достаточной мере, чтобы быстро посмотреть, и уже при необходимости пойти догугливать.

Как вы относитесь к шпаргалкам? Пользуетесь? Я не так часто, потому что нормальных унифицированных инструментов, чтобы их быстро открывать, я пока не видел.

👩‍💻 https://dfrp.cc/A5kYRx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
This media is not supported in your browser
VIEW IN TELEGRAM
Я принёс вам ковш. Точнее gocovsh — утилиту для анализа покрытия тестами с интерактивным интерфейсом в терминале.

В стандартном инструменте мне не нравится, что либо UI открывается в браузере (естественно, на каждый запуск новая вкладка), либо можно только общую статистику посмотреть. А тут сразу два в одном, да ещё и красиво.

👩‍💻 https://dfrp.cc/AqkYEf
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
Что ж, видос на финишной прямой. Он уже срендерился, но надо ещё пару приготовлений сделать + подождать, пока Ютуб обработает в более высоком качестве.

В видосе есть минорные косяки монтажа, а также голос немного прыгает по «плотности» звучания, так как я записывал в несколько приседов в разное время и при разных условиях. Поэтому заранее извиняюсь за это 🙈
🔥6😍5
🚀 Итак, ролик про то, как написать и задеплоить сокращатель ссылок с аутентификацией. Возможно, ролики с реализацией проектов станут полноценной рубрикой, но это уже зависит от вашего фидбэка.

Пока что для бустеров и патронов ❤️ чуть позже для всех.

💳 dfrp.cc/JVMUk8
💳 dfrp.cc/f39i53
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🥰2😱1
defer panic pinned a photo
D2 — это как PlantUML, но современный и сделанный нормально. А больше мне и не надо 🙂

Т.е. это язык для рисования диаграмм текстом (а значит, можно положить диаграмму в гит), при этом из коробки есть хот релоад и экспорт в SVG. Всё это без танцев с бубном и в одном бинарнике, так как написано всё на Go. И да, также есть офицальные плагины для вскода и вима.

Лёха, спасибо, что поставил звёздочку на ГитХабе! Так бы не наткнулся, хотя давно искал такое.

https://dfrp.cc/J7J7u7
👍6
😁11🌚1