defer panic pinned «❤️ Интро Так как теперь большая часть подписчиков пришла сюда не с ютуб-канала, то нужно дать немного вводных. Меня зовут Ильдар, я Go-разработчик в финтехе (а до этого в индустрии электромобилей). На ютубе я в основном стараюсь покрыть какие-то топики, связанные…»
Crafting Interpreters
Книга очень доступно и пошагово рассказывает о том, как написать свой интерпретатор языка (программирования). Она будет полезна не только тем, кто хочет создать свой скриптовый язык, но и тем, кому приходится писать различные парсеры. В общем, как SICP aka «Книга дракона», только доступнее и короче.
В книге две части: в первой вам предлагается написать наивный интерператор, разбирающий код на лету; во второй части автор реализует тот же язык, но уже с виртуальной машиной. Для реализации первой части используется Java, а для второй — C. Но не переживайте, код достаточно универсальный, чтобы его можно было понять и перевести на Go.
Автор книги, Роберт Найстрём, известен так же как автор другой классной книги — Game Programming Patterns. Раньше Роберт работал в Electronic Arts, а сейчас занимается языком Dart.
Книгу можно купить, а можно читать бесплатно на её сайте.
Книга очень доступно и пошагово рассказывает о том, как написать свой интерпретатор языка (программирования). Она будет полезна не только тем, кто хочет создать свой скриптовый язык, но и тем, кому приходится писать различные парсеры. В общем, как SICP aka «Книга дракона», только доступнее и короче.
В книге две части: в первой вам предлагается написать наивный интерператор, разбирающий код на лету; во второй части автор реализует тот же язык, но уже с виртуальной машиной. Для реализации первой части используется Java, а для второй — C. Но не переживайте, код достаточно универсальный, чтобы его можно было понять и перевести на Go.
Автор книги, Роберт Найстрём, известен так же как автор другой классной книги — Game Programming Patterns. Раньше Роберт работал в Electronic Arts, а сейчас занимается языком Dart.
Книгу можно купить, а можно читать бесплатно на её сайте.
👍14🤔1
defer panic
https://youtu.be/X-tlxRa-MP4
Перевод гайда, представленного в видео, на русский язык.
https://github.com/ilmoi/teachyourselfCS-RU/blob/master/Teach_yourself_cs-2020-RU.md
Но я, конечно, считаю, что английский — такой же важный навык для любого программиста.
https://github.com/ilmoi/teachyourselfCS-RU/blob/master/Teach_yourself_cs-2020-RU.md
GitHub
teachyourselfCS-RU/Teach_yourself_cs-2020-RU.md at master · ilmoi/teachyourselfCS-RU
Russian translation of https://teachyourselfcs.com/ - ilmoi/teachyourselfCS-RU
🔥10👍4🥱1
В очередной раз убедился, что доставка фич с тестами быстрее, чем без них. Это звучит неинтуитивно на первый взгляд, но вот вам пример:
На днях мне было нужно срочно сделать и выкатить фичу на прод. Задача была настолько срочной, что времени на написание тестов, как казалось, не оставалось физически. К счастью, почти весь код уже был написан. Всё что нужно было сделать — это добавить ручку в API, которая этот самый код вызывает. Поэтому я подумал, мол, ничего страшного, тесты допишу чуть позже. В итоге на то чтобы несколько раз пройти весь цикл обратной связи (выкатка на тестовый стенд → тестирование руками → фикс) времени ушло больше, чем если бы я изначально сел и написал эти чёртовы тесты.
Тут я вспомнил свой ролик про тесты, а именно тезис про то, что по факту разработка с тестами (а то и через них) обходится бизнесу дешевле, особенно в долгосрочной перспективе.
На днях мне было нужно срочно сделать и выкатить фичу на прод. Задача была настолько срочной, что времени на написание тестов, как казалось, не оставалось физически. К счастью, почти весь код уже был написан. Всё что нужно было сделать — это добавить ручку в API, которая этот самый код вызывает. Поэтому я подумал, мол, ничего страшного, тесты допишу чуть позже. В итоге на то чтобы несколько раз пройти весь цикл обратной связи (выкатка на тестовый стенд → тестирование руками → фикс) времени ушло больше, чем если бы я изначально сел и написал эти чёртовы тесты.
Тут я вспомнил свой ролик про тесты, а именно тезис про то, что по факту разработка с тестами (а то и через них) обходится бизнесу дешевле, особенно в долгосрочной перспективе.
YouTube
Тесты. Что нужно знать разработчику
Разбираемся, что такое автотесты и зачем их писать.
❤️ Реквизиты, если у вас есть желание поддержать меня и развитие канала:
Boosty — https://dfrp.cc/boosty
Patreon — https://dfrp.cc/patreon
Donation Alerts — https://donationalerts.com/r/deferpanic
ETH —…
❤️ Реквизиты, если у вас есть желание поддержать меня и развитие канала:
Boosty — https://dfrp.cc/boosty
Patreon — https://dfrp.cc/patreon
Donation Alerts — https://donationalerts.com/r/deferpanic
ETH —…
👍22
У меня в грядущем ролике звучит тезис, что наличие проектов на гитхабе — это преимущество при поиске работы, в первую очередь для джунов. У джунов естественным образом мало коммерческого опыта, но им нужно показать, что они готовы деливерить какой-то код и учиться чему-то. Как вы считаете, правда это или нет?
(сейчас будет опрос)
(сейчас будет опрос)
👍8🤷♂1🔥1🤔1
Нужно ли джуниору иметь проекты на гитхабе?
Anonymous Poll
29%
Обязательно
52%
Не обязательно, но точно будет плюсом
9%
Это ни на что не влияет
1%
Это скорее вредно, чем полезно
9%
Свой вариант в комментах / посмотреть результаты
Вышел очередной 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/
Расскажите, на чём сидите? Goland? VSCode? VIm/Neovim? Sublime Text?
https://blog.jetbrains.com/go/2023/06/02/gitlab-integration-2023-2-eap-3/
The JetBrains Blog
GitLab Integration, Improved Main Toolbar Customization, Text Search in Search Everywhere, and More in GoLand 2023.2 EAP #3 - The…
The third GoLand 2023.2 EAP build is now available!
👍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
В компанию, где я работаю, открыты вакансии на позицию Go-разработчика. В данный момент ищем миддлов и сеньоров.
Что за компания? Финтех-стартап в Мексике, который строится выходцами из Tinkoff, Vivid, Yandex, Ozon и других бигтех-компаний. Работать можно из любой точки мира, либо в офисах на Кипре, в Казахстане и Мексике.
Первый продукт уже в проде. Несмотря на это, у компании множество направлений, на которые она смотрит, и это отличная возможность поучаствовать в развитии финтех-продукта на ранних стадиях.
Подробнее о компании + открытые позиции: dfrp.cc/5dYpX
Если надумаете, пишите мне, а я направлю вас дальше 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
platacard on Notion
Welcome to PLATA | Notion
Hola, friends!
We are pleased to announce that we have moved to a career site. You can now keep up to date positions and responses at: https://career.platacard.mx/
We are pleased to announce that we have moved to a career site. You can now keep up to date positions and responses at: https://career.platacard.mx/
👍7💩7❤🔥4👎1🔥1
Наткнулся на прикольный тренировочный репозиторий. Он содержит в целом рабочий код, но при этом внутри намеренно были оставлены баги, уязвимости и куски кода, которые в сообществе Go принято писать по-другому. Автор репозитория предлагает в качестве упражения при подготовке к техническому собеседованию исправить эти недостатки.
P.S. За всё время я запостил уже много таких штук для подготовки к интервью. Ставьте 💅, если хотите, чтобы я уже наконец сделал подборку.
❤️ • ютуб • бусти • патреон • платный канал
P.S. За всё время я запостил уже много таких штук для подготовки к интервью. Ставьте 💅, если хотите, чтобы я уже наконец сделал подборку.
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - MatthewJamesBoyle/golang-interview-prep
Contribute to MatthewJamesBoyle/golang-interview-prep development by creating an account on GitHub.
💅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, а посмотреть трейлер на Ютубе
❤️ • ютуб • бусти • патреон • платный канал
Мы все привыкли воспринимать 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_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
https://awesome-go-interview.dev
Есть ресурсы на английском и русском. Если у вас есть что-то ещё на примете, не стесняйтесь делиться ссылкой или создавать PR в репозиторий: https://github.com/defer-panic/awesome-go-interview
👍8❤6❤🔥2🔥2👏1
Релиз версии 1.21 случится ориентировочно только в августе, но уже сейчас известно про ряд интересных нововведений:
🔹Profile Guided Optimization (PGO) выходит из превью в релиз
🔹 Наконец-то появятся билтины
mix и max🔹 К ним впридачу
clear — функция, которая из мапы удаляет все элементы, а в слайсе заменяет на нулевые значения🔸 Встроенный пакет
log/slog для структурированного логирования🔸 Пакеты
slices и maps с набором полезных дженерик-функций для соответствующих структур данных🔸 Пакет
cmp с фукнциями для сравнения значений, у которых типы удовлетворяют констрейн OrderedИмейте ввиду, что это первый релиз-кандидат, поэтому ченджлог к релизу ещё скорее всего поменяется.
Весь список изменений
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍11🤝2
JetBrains показали своего AI Assistant в новом EAP Goland и не только. Выглядит как ответ Copilot X, хоть и на базе того же OpenAI. Что думаете? Будете пользоваться?
Telegram
📚 readme.go
GoLand 2023.2 EAP 6: AI Assistant
Вышла шестая сборка GoLand 2023.2 EAP, которую можно скачать через Toolbox App, с официального сайта, с помощью snap-пакета для Ubuntu или обновить из самой IDE. Новая версия содержит несколько улучшений и исправлений ошибок.…
Вышла шестая сборка GoLand 2023.2 EAP, которую можно скачать через Toolbox App, с официального сайта, с помощью snap-пакета для Ubuntu или обновить из самой IDE. Новая версия содержит несколько улучшений и исправлений ошибок.…
👍5🔥2❤1
В новом ролике мы с вами напишем проект, который не стыдно положить на свой 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
@stvtelege принёс в клювике, что github.com/golang/mock ушёл в публичный архив. В целом ожидаемо — последний релиз был чуть больше двух лет назад. Если что, проект форкнул Uber и теперь занимается его развитием: https://github.com/uber/mock
Не могу не вставить мысль, повод хороший:
Вообще, есть у коммьюнити Go и Clojure одна общая черта (хоть языки и абсолютно разные), которая мне очень нравится — отсутствие дурмана «если проект не обновлялся больше года, им нельзя пользоваться». Да-да, я смотрю в твою сторону, JavaScript. Почему-то для мейнстримных языков не позволительна мысль о том, что бывают программные продукты, которые в какой-то момент становятся законченными. В целом понятно, в том же JavaScript через месяц на тех же версиях зависимостей всё развалится, не говоря уже о старых. Но кажется это не ок и вообще не про стабильность и отсутствие нервных срывов.
Не могу не вставить мысль, повод хороший:
Вообще, есть у коммьюнити Go и Clojure одна общая черта (хоть языки и абсолютно разные), которая мне очень нравится — отсутствие дурмана «если проект не обновлялся больше года, им нельзя пользоваться». Да-да, я смотрю в твою сторону, JavaScript. Почему-то для мейнстримных языков не позволительна мысль о том, что бывают программные продукты, которые в какой-то момент становятся законченными. В целом понятно, в том же JavaScript через месяц на тех же версиях зависимостей всё развалится, не говоря уже о старых. Но кажется это не ок и вообще не про стабильность и отсутствие нервных срывов.
👍22❤1❤🔥1
Кажется, я сюда ещё не писал про главный скандал в мире Go последних месяцев — добавление телеметрии в тулчейн.
Я могу понять, почему есть телеметрия в Visual Studio Code — это продукт, который развивается по модели «мы не можем просто сделать редактор и остановиться — нам нужно дальше его закидывать фичами, которые никому не нужны, потому что иначе не нужны будем мы». Для того чтобы часто шипить новые фичи или тюнить существующие, нужна какая-то аналитика по тому, как используется продукт. Я не сторонник что телеметрии в Visual Studio Code, что такого подхода к развитию продукта. Но тут хотя бы понятно, почему так сложилось.
Но на кой чёрт это надо в языке программирования, особенно таком, как Go? Одна из ключевых идей философии языка — очень аккуратное, неспешное и обратно-совместимое развитие; всё только самое необходимое. Если вам нужна статистика использования какой-то языковой фичи, то, ну... сходите на ГитХаб? Или что, энтерпрайз-код как-то принципиально по-другому пишется? Ну да, наверняка какие-то внутренние библиотеки/фреймворки используются, но это не относится к фичам самого языка. Тем более что в Go нет такого, что два случайно взятых разработчика пишут как-то принципиально по-разному (привет, C++).
Короче, меня напрягает не столько сам сбор телеметрии — он включается по желанию (т.е. никто в здравом уме её никогда не включит). Меня напрягает то, что её очень часто добавляют, чтобы потом закидывать продукт сырыми и никому не нужными фичами, потому что данные интерпретируются через одно место. Нужны они обычно только, чтобы циферки красивые показать. Я уж не говорю про секьюрити-консёрны, которые здесь появляются.
Надеюсь, команда языка сейчас поймёт, что это им никак не поможет «сделать язык лучше», и они уберут сбор телеметрии в следующих релизах за ненадобностью (скорее всего нет).
❤️ • ютуб • бусти • патреон • платный канал
Я могу понять, почему есть телеметрия в 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
❤️ • ютуб • бусти • патреон • платный канал
Во-первых, это красиво. Во-вторых, можно замерять пинг сразу до нескольких хостов. В-третьих, замерять время и строить график можно и для исполнения команд.
Ссылка: https://github.com/orf/gping
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍5❤🔥2👏1🤡1