Category : golang

golang
Хакните HL и заработайте 125.000 рублей

ВведениеПри достаточном количестве наблюдателей ошибки выплывают на поверхность(Закон Линуса)При разработке безопасных и/или анонимных приложений всегда наступает такой момент, когда становится необходимым выйти из своих сугубо теоретических размышлений, выйти из скованного дебагом одиночества, выйти из затворничества программных реализаций в открытое общество, безжалостно указывающее на все неправильные, нелогичные, ошибочные, уязвимые части «итогового продукта». Это есть необходимый этап в р…

  • суббота, 5 августа 2023 г. в 00:00:20
golang
Отранжированные и смешные: создаем систему выстраивания пользовательской ленты

Всех приветствую! Меня зовут Кирилл, я Go-разработчик в компании Ozon. Сейчас моим полем деятельности является разработка микросервисов в департаменте Fresh, однако я также успел принять участие в некоторых других интересных проектах.Сегодня мне бы хотелось поговорить с вами о ранжировании информации для её последующей выдачи в пользовательскую ленту. Предлагаю поговорить о самом термине «ранжирование», а ещё об использовании этого процесса в современных информационных системах. Во время обсуж…

  • среда, 2 августа 2023 г. в 00:00:21
golang
От C до Go. Как Golang объединил лучшие черты своих предшественников

В программировании постоянно разрабатываются новые языки. В каждом из них разработчики стремятся расширять возможности предыдущих технологий. Одним из таких примеров является язык Go, или Golang (Google language). Разработанный в компании Google, Golang был создан с целью объединить черты своих предшественников и предложить программистам новый инструмент для создания приложений. Когда создатели Golang приступили к разработке, они учитывали опыт различных языков, таких как C, C++, Java и Pyth…

  • среда, 2 августа 2023 г. в 00:00:20
golang
В Go 1.21 существенно расширяется стандартная библиотека

// теперь в Go так можно! slices.Contains(s, v) Год назад в блоге Каруны мы писали про дженерики в Go, и там упоминалось, что гошное сообщество разделилось на две части. Не всем это нововведение было нужно, особенно в простом продуктовом коде. И надо сказать, это до сих пор так, дженерики по-прежнему используют далеко не все проекты. Однако для стандартной библиотеки Go это было по-настоящему царским подарком. Появились новые стандартные обобщенные функции, и, отстоявшись в экспериментальном р…

  • вторник, 1 августа 2023 г. в 00:00:29
golang
Golang — архитектурный линтер

Для того чтобы повысить качество приложения, написанного на языке go, можно использовать разные линтеры. Один из таких линтеров — архитектурный.В приложении архитектура — это то, как код разложен по «слоям», и какие слои могут вызывать друг друга.В данной статье расскажу про свой бесплатный, open-source, линтер с MIT лицензией и чем он может быть полезен.TLDR — Getting startedЛинтер работает с любым кодом, не только с web-приложениями, но для примера посмотрим на web-приложение с одним АПИ мет…

  • воскресенье, 30 июля 2023 г. в 00:00:33
golang
Как протестировать код на Go с базой данных?

ВведениеКак протестировать код на Go с базой данных? В этой статье опишу пример такого тестирования в связке с Postgres, очисткой на основе копирования базы данных и рассмотрю некоторые альтернативы.Зачем тестировать с базой данных?Чтобы получить более полезные тесты, которые:помогут избавиться от множества mock-ов;облегчат рефакторинг базы данных;уменьшат хрупкость тестов и скованность кодовой базы.Интересная цитата на тему таких тестов:Хорошо продуманные тесты базы данных обеспечивают надежн…

  • воскресенье, 30 июля 2023 г. в 00:00:33
golang
Сравниваем скорость и оверхеды библиотек Deep Copy для Go

Все мы знаем эту историю, когда нужно скопировать какую-нибудь большую структуру, внутри которой множество указателей на другие структуры. Руками это делать лень, поэтому берём какую-нибудь библиотеку и быстро делаем копию. А потом в свободное время решаем проверить, что там с оверхедом. Меня зовут Егор Гартман, я работаю в бекэнде Авито и я решил протестировать несколько библиотек Deep Copy. А потом сделал свою — быстрее и эффективнее. Сравнение готовых решенийДля сравнения я выбрал три библи…

  • пятница, 28 июля 2023 г. в 00:00:21
golang
Как начинать проект на Go в 2023 году

Когда-то я написал статью о том, как начинать проект на Go в 2018 году. С тех пор многое изменилось, и я захотел написать обновлённую версию статьи. В ней я расскажу всё, что нужно новичку, чтобы приступить к работе с Go.Установка/настройкаПервым делом нужно скачать и установить Go. Рекомендую всегда устанавливать его с самого вебсайта Go https://golang.org/ и выполнить инструкции для соответствующей операционной системы. За исключением релиза Go 1.18 (в который включены дженерики), у меня ник…

  • среда, 26 июля 2023 г. в 00:00:16
golang
Добавляем Starlark в приложение на Go

Жаворонок, картинка утащена с ВикипедииЧто за птица?Starlark (ранее известный как Skylark) - питоноподобный язык, изначально разработанный для системы сборки Bazel, со временем выбравшийся за её пределы через интерпретаторы для Go и Rust.Язык располагает к использованию в роли инструмента конфигурации, однако, благодаря хорошо написанному интерпретатору на Go и детальному описанию спецификации, его можно использовать в виде встроенного в приложение языка программирования - например, когда вы х…

  • вторник, 25 июля 2023 г. в 00:00:25