В 4-м примере
main
вызывает mysteriousDefer()
как отложенную функцию, поэтому все, что напечатает mysteriousDefer()
, должно быть напечатано после того, как main
выполнит свои выводы.Однако если вы запустите этот код, вы получите следующий вывод:
f runs
main runs
func returned by f runs
Почему это антипаттерн
Этот «хитрый трюк» позволяет объединить инициализацию и очистку в одной функции.
Вы заметили двойные скобки в вызове
defer
?
defer mysteriousDefer()()
Обычно вы бы вызвали отложенную функцию так:
defer mysteriousDefer()
Вторые скобки вызывают
mysteriousDefer()
перед тем, как она будет оценена директивой defer
. Затем mysteriousDefer()
печатает свое сообщение и возвращает другую функцию, которая является фактической функцией, отложенной defer
.Этот запутанный набор трудно понять, а двойная пара скобок легко может быть пропущена при беглом ревью кода.
Что плохого в написании функции инициализации и функции очистки отдельно?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤3
🧬 Мысли об использовании Go для биоинформатики
Биоинформатик и инженер по обработке данных размышляет об использовании различных языков для научной работы, уделяя особое внимание Go и Rust, Python, Crystal, Julia и Zig.
У Go много плюсов, но, по его мнению, он не прорвался в биоинформатику в крупных масштабах, хотя за пределами этой области у него был феноменальный рост?
Любопытно, что автор оценивает количество строк для работы с файлами и вообще сложность этой операции с точки зрения среднестатистического программиста. На основании этого делает выводы, сравнивая с языком D и его четырьмя строками.
💬 Как вам такой подход?
Биоинформатик и инженер по обработке данных размышляет об использовании различных языков для научной работы, уделяя особое внимание Go и Rust, Python, Crystal, Julia и Zig.
У Go много плюсов, но, по его мнению, он не прорвался в биоинформатику в крупных масштабах, хотя за пределами этой области у него был феноменальный рост?
Любопытно, что автор оценивает количество строк для работы с файлами и вообще сложность этой операции с точки зрения среднестатистического программиста. На основании этого делает выводы, сравнивая с языком D и его четырьмя строками.
💬 Как вам такой подход?
😁21👍5🥱1🌚1👾1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
This media is not supported in your browser
VIEW IN TELEGRAM
🕹️🔥 Интерактивное исследование распространенных стратегий организации очередей
Перед вами мини-исследование, в котором изучается организация очередей в контексте HTTP-запросов. Автор начинает с простых концепций и постепенно разбирается с более сложными очередями.
📌 Под катом:
☑️ Чем полезны очереди
☑️ 3 разных типа очереди
☑️ Как эти 3 очереди сравниваются друг с другом
☑️ 1 дополнительная стратегия организации очередей, которую вы можете применить к очередям любого типа, чтобы не отбрасывать приоритетные запросы
Перед вами мини-исследование, в котором изучается организация очередей в контексте HTTP-запросов. Автор начинает с простых концепций и постепенно разбирается с более сложными очередями.
📌 Под катом:
☑️ Чем полезны очереди
☑️ 3 разных типа очереди
☑️ Как эти 3 очереди сравниваются друг с другом
☑️ 1 дополнительная стратегия организации очередей, которую вы можете применить к очередям любого типа, чтобы не отбрасывать приоритетные запросы
🥰11👍5⚡1
Go известен своей лаконичностью и простотой синтаксиса, но даже в нём есть множество подводных камней, с которыми можно столкнуться в работе. Дмитрий Королёв, бэкенд-разработчик в Авито, разбирает распространённые ошибки с примерами и рассказывает, как их можно избежать.
👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🤔5❤2
Доклады были опубликованы уже месяц назад, но лучше поздно, чем никогда 👇
🌐 Как стать сеньором / Василий Романов (VK, Облако Mail ru)
🌐 Domain Driven Design в Go — это не больно (почти) / Илья Сергунин (Авито)
🌐 Go в Domain Driven Design / Дмитрий Анисов (GS Labs)
🌐 Как научить сервис сообщать об ошибке, чтобы это было понятно пользователям, машинам / Александр Лырчиков (YADRO)
🌐 Работа с аренами — почти избавляемся от GC / Максим Горозий (Тинькофф)
🌐 Собеседования на senior-разработчика: проверяем soft skills вопросами на hard skills / Иван Матвеев
🌐 Потоки данных, графы, стейт-машина — строим бизнес-логику в Go-микросервисах / Апрес Антонян
🌐 Выжимаем из Go максимум производительности / Никита Галушко (VK, ВКонтакте)
👉 Весь плейлист
#чтопроисходит
👉 Весь плейлист
#чтопроисходит
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
🖼 Визуализация покрытия кода Go в виде древовидной карты
Интересный способ визуализировать большие проекты с помощью результатов
👩💻 GitHub
Интересный способ визуализировать большие проекты с помощью результатов
go test -coverprofile
.$ go install github.com/nikolaydubina/go-cover-treemap@latest
$ go test -coverprofile cover.out ./...
$ go-cover-treemap -coverprofile cover.out > out.svg
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥40👍6
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
💻🚀🏰 Как мы создали ИИ-стартап на хакатоне выходного дня в Германии
Инженер ПО рассказал нам о своих выходных на хакатоне в Кельне, где с командой пытался создать AI-стартап всего за два дня. Участники прошли путь от подачи идей в пятницу вечером до демонстрации работающего приложения к воскресенью.
В качестве бонуса автор привёл список основных пунктов, которые необходимо выполнить для создания стартапа.
🔗 Читать статью
🔗 Зеркало
Инженер ПО рассказал нам о своих выходных на хакатоне в Кельне, где с командой пытался создать AI-стартап всего за два дня. Участники прошли путь от подачи идей в пятницу вечером до демонстрации работающего приложения к воскресенью.
В качестве бонуса автор привёл список основных пунктов, которые необходимо выполнить для создания стартапа.
🔗 Читать статью
🔗 Зеркало
Не возвращайте err в Go. Вместо этого добавьте недостающие сведения, необходимые для отладки.
Некоторые разрабы любят жаловаться, что в Go приходится писать множество блоков
if err != nil { return err }
. Они не понимают, как работают ошибки в Go. Дело в том, что на самом деле то, на что они жалуются, является совершенно неправильным способом обработки ошибок в Go: возврат
err
напрямую — это антипаттерн.В статье автор показывает, что он имеет в виду, на примере кода: библиотеки для настройки mTLS-соединения.
👉 Читать
👍32💯7🤔4❤2🥱2
Профилируя Go-приложения во время выполнения, Go-компилятор может принимать более эффективные решения по оптимизации в последующих сборках, что приводит к существенному повышению производительности процессора.
Узнайте подробнее из доклада Cameron Balahan, Michael Pratt и James Ma на Google I/O 2024, как работает PGO и как вы можете использовать ее для улучшения (и измерения) производительности своих приложений в Google Cloud и за его пределами.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍2
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
👨🎓️ 33 лучших вуза России для будущих программистов 2024-2025
Составили список из 33-х вузов, где вы научитесь думать как программист и получите фундаментальные знания в области математики, информатики, компьютерных наук и так далее. Для удобства вузы отсортированы по среднему проходному баллу ЕГЭ: от наибольшего к наименьшему.
🔗 Читать статью
🔗 Зеркало
Составили список из 33-х вузов, где вы научитесь думать как программист и получите фундаментальные знания в области математики, информатики, компьютерных наук и так далее. Для удобства вузы отсортированы по среднему проходному баллу ЕГЭ: от наибольшего к наименьшему.
🔗 Читать статью
🔗 Зеркало
🥱14😁6👍5
Гайд по разработке базы данных из 400 строк кода с базовой поддержкой пяти стандартных уровней транзакций SQL: read uncommitted, read committed, repeatable read, snapshot isolation и serializable. Автор использует multi-version concurrency control (MVCC) и optimistic concurrency control (OCC).
👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉14👍3🔥3
💬 Разрабы, какую музыку вы предпочитаете слушать во время работы?
👍 — энергичная и мотивирующая музыка (рок, поп, электронная)
🔥 — спокойная и расслабляющая музыка (классическая, джаз, саундтреки)
❤️ — предпочитаю работать в тишине
#холивар
👍 — энергичная и мотивирующая музыка (рок, поп, электронная)
🔥 — спокойная и расслабляющая музыка (классическая, джаз, саундтреки)
❤️ — предпочитаю работать в тишине
#холивар
👍125❤86🔥71⚡4🌚1
Подборка презентаций с инструкциями по созданию кастомных решений, которые инженеры и разработчики из YADRO, Avito Tech, Ozon Fintech и других технологических компаний уже опробовали на собственных продуктах.
Если вашей команде не хватает инструмента для фаззинга или обработки ошибок на Go — можете сделать их по примерам, которые представили инженеры в выступлениях и презентациях.
🔹 Внедряем фаззинг: какой инструмент вам подойдет / Иван Золотников, инженер в YADRO
🔹 Создаем замену buf: сеанс реверс-инжиниринга / Эдгар Сипки, разработчик в Ozon Fintech, и Василий Близнецов, разработчик в Positive Technologies
🔹 Доступно о паттернах, умных обработчиках и красивой синхронизации в Go / Олег Козырев, старший инженер в AvitoTech
🔹 Учим сервис сообщать понятно об ошибке пользователям, программистам и машинам / Александр Лырчиков, разработчик в команде систем хранения данных в YADRO
🔹 Пишем свой mini-k8s на Go с helm-шаблонизатором / Станислав Иванкевич, старший программист в команде разработки DataMasters в VK Tech
🔹 Снижаем нагрузку на Garbage Collector и ускоряем работу с памятью, используя sync.Pool / Александр Иванов, тимлид в команде телекома в YADRO
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤2
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
💸📊 На сколько просели зарплаты в ИТ в 2024 году?
Благодаря открытым данным с сайта Хабр Карьера мы узнали, какие основные тенденции ждать в зарплатном секторе, и сколько получают ИТ-специалисты сейчас.
🤔 Например, в первом полугодии 2023 года в среднем джунам предлагали 80 тысяч рублей, а спустя год это число упало до 72,5 тысячи рублей.
👉 Остальные данные — в статье
👉 Зеркало
Благодаря открытым данным с сайта Хабр Карьера мы узнали, какие основные тенденции ждать в зарплатном секторе, и сколько получают ИТ-специалисты сейчас.
🤔 Например, в первом полугодии 2023 года в среднем джунам предлагали 80 тысяч рублей, а спустя год это число упало до 72,5 тысячи рублей.
👉 Остальные данные — в статье
👉 Зеркало
👍2