Date | Title | Description |
29.10.2024 | Вопросы по мэпам (map) в Go | Пару недель я собрал в статейку несколько базовых вопросов по массивам и слайсам - и в комментариях было предложено "а теперь надо про мэпы". Хорошая мысль - мы пользуемся ими почти на "интуитивном" уровне и о некоторых ... |
24.10.2024 | Как я отказался от оффера в Сбер | Вы, наверное, хотите сказать: "Ну отказался и отказался, что тут такого?". Чтобы добавить контекста, расскажу немного о себе. Ещё год назад я новоиспечённый гофер, только начинаю познавать основы языка, делаю свои первые пет-проек... |
15.10.2024 | Understanding Go's sync.WaitGroup: A Deep Dive into Concurrency Management | Concurrency is the lifeblood of modern programming. It allows developers to run multiple tasks simultaneously, maximizing efficiency and performance. In the Go programming language, one of the key tools for managing concurrency is the `sync... |
15.10.2024 | Переход на Go глазами PHP-разработчика: 5 подводных камней | Хабр, привет! Меня зовут Костя Козин, я старший PHP-разработчик Lamoda Tech. За 17 лет в коммерческой разработке я писал на JS, PHP, и теперь на Golang. Сегодня в Lamoda Tech мы учим PHP-разработчиков писать на Go, и под это создали целый о... |
11.10.2024 | Go sync.WaitGroup и проблема с выравниванием | WaitGroup — это, по сути, способ дождаться, пока несколько горутин закончат свою работу. Мы начнем с основ, а затем разберемся, как это устроено под капотом.
Есть классные статьи, где рассматривается несколько примитивов синхронизации в Go:... |
03.10.2024 | Строим ETL-конвейер для машинного обучения с помощью Kafka, Clickhouse и Go | В этой статье я поделюсь с вами своим опытом использования Golang, Kafka и Clickhouse на примере простого ETL-конвейера для параллельной передачи JSON-данных в базу данных с последующим прогнозированием температуры на основе машинного обуче... |
29.09.2024 | SMS Authentication and Voting Systems: A Modern Approach to User Engagement | In the digital age, user engagement is the lifeblood of any online platform. As businesses and organizations strive to connect with their audience, SMS authentication and voting systems have emerged as powerful tools. They enhance security,... |
25.09.2024 | Navigating the Complexities of Go: From 4-Chan Programming to gRPC Test Coverage | In the world of programming, simplicity often hides complexity. This is especially true in Go, a language that embraces concurrency and efficiency. Two recent articles delve into the intricacies of Go programming, exploring both the whimsic... |
25.09.2024 | Как построить свою систему SMS-голосования | Привет, Хабр! Недавно мне пришла задача: провести голосование среди пользователей, но без сложных и дорогостоящих решений. Когда я пришёл к выбору системы SMS-голосования, осознал, что многие решения на рынке либо слишком сложны для интегра... |
24.09.2024 | Программист-4chan'овец | Введение
Мы используем Go для создания Dolt, первая в мире БД SQL с контролем версий. Как и большинство кодовых баз, основанных Go, мы используем каналы и горутины(от переводчика, автора этой статьи на Хабре: у меня есть хорошая статья на т... |
23.09.2024 | Визуализация покрытия автотестами для gRPC сервисов | Вступление
В данной статье хочу рассказать про инструмент измерения покрытия gRPC сервисов tests-coverage-tool, написанный на языке Golang. Основная задача инструмента — автоматическое измерение покрытия требований на основе proto контракто... |
17.09.2024 | Go makes a comeback: What’s fueling its revival? | Although Go was released to much furore in late 2009, when it was heralded as Programming Language of the Year by the TIOBE Index, its popularity has waxed and waned over the years.
Now Go has re-emerged as one of the best programming langu... |
14.09.2024 | Реверс-инжиниринг GDB для работы с Pwndbg | Функционал GDB существенно сужается, когда приходится иметь дело с файлами, из которых убраны отладочные символы (получаются так называемые «урезанные бинарники»). Функции и имена переменных превращаются в бессмысленные адреса. Для установк... |
04.09.2024 | Погружение в параллелизм в Go | Привет, Хабр!
Я просмотрел не мало источников, много из них были англоязычными, но хочу выделить отдельное спасибо авторам этих статей на Xабре:
https://habr.com/ru/companies/mvideo/articles/778248/
https://habr.com/ru/articles/141853/
http... |
01.09.2024 | The Rise of New Programming Languages: A Shift from C++ | In the vast landscape of programming languages, C++ has long been a titan. Born in 1985, it has powered countless applications and systems. Yet, as the digital world evolves, whispers of change grow louder. New contenders are emerging, vyin... |
27.08.2024 | Языки программирования, которые могут заменить C++ — Rust, Go, Swift, Carbon | Язык программирования C++, на котором написано 95% существующего программного обеспечения, был создан Бьерном Страуструпом, датским инженером со странноватой прической, в далеком 1985 году — очень давно!
Нет, все эти годы язык не стагнирова... |
24.08.2024 | Применения Continuation-passing style в Go | В этой статье мы рассмотрим концепцию программирования в стиле передачи продолжений и примеры его применения, исследуем, как этот стиль может улучшить читаемость и поддержку кода в приложениях на Go. Также обсудим потенциальные подводные ка... |
21.08.2024 | The Art of Functional Testing in Go: A Practical Guide | Functional testing is the backbone of software quality assurance. It ensures that applications perform as expected under various conditions. In the world of Go, a language known for its simplicity and efficiency, functional testing can be b... |
21.08.2024 | «Бобер выдыхай»: Go, WinAPI и ассемблер | Что первым приходит в голову разработчика при слове «Go»? Google и микросервисы? Я тоже так думал, но реальность оказалась значительно интересней.
Gopher — маскот Golang на самом деле никакой не бобер а целый отдельный вид, у нас такие не ж... |
15.08.2024 | NIST's Quantum Leap: New Standards for Post-Quantum Cryptography | On August 13, 2024, the National Institute of Standards and Technology (NIST) unveiled a trio of groundbreaking standards aimed at fortifying digital security against the looming threat of quantum computing. This announcement marks a pivota... |
14.08.2024 | The Art of Knowledge Management: Reviving Zettelkasten for Modern Programming | In the fast-paced world of technology, knowledge is power. But how do we harness that power effectively? Enter the Zettelkasten method, a time-tested approach to organizing information that is making waves in the programming community. This... |
14.08.2024 | Вышел Go 1.23 | 13 августа 2024 года cостоялся релиз языка программирования Go 1.23. Этот проект развивает компания Google при участии сообщества как гибридное решение, сочетающее высокую производительность компилируемых языков с такими достоинствами скрип... |
14.08.2024 | Kubernetes 1.31: новый VolumeSource, эмуляция старых версий и настройка анонимного доступа к эндпоинтам | Сегодня официально выпустили новую версию Kubernetes — 1.31. Среди главных нововведений — VolumeSource, поддерживающий OCI-образы и/или OCI-артефакты и поле SupplementalGroupsPolicy для контроля дополнительных групп, которые присоединяются ... |
13.08.2024 | Как учить языки программирования и создавать базу знаний с помощью метода из прошлого века: опыт четырех инженеров... | Недавно в комментариях к тексту про построение личной базы знаний на Хабре читатель отметил, что в таких статьях не хватает примеров работы с техническими данными. Давайте это исправим. Мы спросили у инженеров YADRO и технарей из сообщества... |
13.08.2024 | Как защитить свое Go-приложение | Привет, друзья!
Очень важно думать о том, чтобы приложения были надежными и защищёнными. Go — язык, который известен своей простотой и производительностью. Но ни один язык не безопасен сам по себе и об этом нужно заботится самостоятельно.
В... |
06.08.2024 | Go: жарим общие данные. Атомно, быстро и без мьютексов | Как правило, в Go для безопасного доступа к общим данным используются мьютексы. Да, каналы тоже можно приспособить для изменения общих данных, так как они потокобезопасны, но это усложняет и замедляет логику.
Но в этой статье мы поговорим о... |
29.07.2024 | Kubernetes 1.31. Обзор обновления | В этой статье описываются некоторые запланированные изменения для релиза Kubernetes v1.31, о которых вам следует знать для дальнейшего обслуживания вашей среды Kubernetes. Приведенная ниже информация основана на текущем статусе релиза v1.31... |
15.07.2024 | Postgresso #6 (67) | Случилось так, что этот выпуск никак не хотел укладываться в наши обычные разделы, скажем: Релизы/Конференции/Статьи ... Что делать?
Волны расходятся с тех пор, как Роберт Хаас (Robert Haas, EDB) издал в интернете крик души. Волны отразилис... |
12.07.2024 | Как отправлять SMS через МТС Exolve и Go | В одной из московских компаний решили расширить функции системы на Golang, и заказчик попросил внедрить в неё SMS и прочие каналы для уведомлений клиентов. В этой статье пошагово разберём, как отправлять SMS с использованием сервиса МТС Exo... |
25.06.2024 | Как уберечься от кражи репозитория (реподжекинга) | " data-abbr="от англ. repojacking, по аналогии с “hijacking” — незаконный захват/угон самолёта">Реподжекинг или захват репозитория / перехват контроля над репозиторием — это особый вид атак на цепочки поставок. В этой стат... |
21.06.2024 | Go развивается в неверном направлении | Язык программирования Go известен своей простотой в использовании. Благодаря продуманному синтаксису, возможностям и инструментарию, Go позволяет писать легко читаемые и поддерживаемые программы произвольной сложности (см. этот список на Gi... |
11.06.2024 | Кот меняющий строки | Вне всякого сомнения самое сложное в программировании это именование переменных и что-то там про кеш. Самое сложное в написании статьи это написать введение. Попытка бросить в читателя кусок случайного кода не работает, такую статью никто н... |
05.06.2024 | Как я написал для своей команды бот-напоминалку на Golang и втрое сократил время на ревью задач | Привет, Хабр! На связи Кирилл Веркин. Вообще, я занимаю в СберМаркете должность Senior QA, но ради большей производительности команды жизнь заставила стать немного кодером.
Эта статья может быть интересна тем, кто замечает, что задачи в ком... |
27.05.2024 | Сбросить балласт. Аккуратное отключение лишних фич | На Хабре много говорилось о раздувании софта со временем, а также о перегрузке новыми фичами, что приводит к усложнению интерфейса и тому же раздуванию. Разработчики в целом склонны что-то добавлять, а не убирать, даже в ущерб результату. И... |
25.05.2024 | Generic Concurrency в Go | Привет, гоферы!
В этой статье я хочу поделиться мыслями и идеями, которые у меня накопились за время работы с дженериками в Go, и в частности о том, как шаблоны многозадачности могут стать более удобными и переиспользуемыми с помощью дженер... |
17.05.2024 | Популярные ошибки в Golang и как их избежать | Всем привет! Меня зовут Дмитрий Королёв, я бэкенд-разработчик в Авито.
Go известен своей лаконичностью и простотой синтаксиса, но даже в нём есть множество подводных камней, с которыми можно столкнуться в работе. В этой статье я сделаю разб... |
15.05.2024 | Бегство от реальности: как перестать подгонять свой код под устаревшие шаблоны | Привет, Хабр!
Как описать хороший код в трех словах? Исходя из опыта — это код, который [приятно поддерживать и эксплуатировать]. СОЛИД, SOLID, СОЛИД... Редко код ревью обходится без упоминания этих принципов, но для разработчика это не озн... |
07.05.2024 | database/sql: плохой, хороший, злой | Многие Golang-разработчики пробовали работать с БД в Go, и у каждого — свои боли. В этой статье поисследуем библиотеку database/sql для работы с абстрактной СУБД и нашу имплементацию database/sql драйвера под СУБД YDB. Рассмотрим трудности ... |
22.04.2024 | Сравнение технологий WebSockets, Server-Sent-Events, Long-Polling, WebRTC и WebTransport | При работе с современными веб-приложениями реального времени незаменима возможность отправлять события с сервера на клиент. Именно этой необходимостью продиктовано то, что за годы работы было изобретено несколько методов для этой цели, кажд... |
09.04.2024 | Odinbit, игра моей мечты и процесс её создания. С нуля до первой публичной версии | Введение
Odinbit
Всем привет, в один прекрасный момент мою голову посетила задумка для игры: я хочу сделать свою игру, с элементами выживания и незамысловатой графикой. Хоть я и не имел опыта в gamedev, но все равно решил попробовать, почем... |
05.04.2024 | Разбираемся в новом роутинге в Go 1.22 | В начале февраля 2024 года вышел Go 1.22. Вот, что нового и интересного принёс новый релиз: сделали более безопасное поведение переменных в циклах, добавили функции-итераторы в качестве rangefunc-эксперимента и улучшили шаблоны роутинга. В ... |
02.04.2024 | Rust — это не «memory safe C» | TL;DR:
— в Rust намного больше достоинств, чем просто скорость и безопасность;
— в Rust по умолчанию CDD (compiler-driven development, разработка через компилирование). Это как TDD, только CDD;
— Rust — не сложный язык, особенно если не гна... |
31.03.2024 | Golang: Мои Открытия | В этом посте мы обсудим несколько увлекательных моментов, которые я узнал в процессе своей работы.Мой канал с инструментами Go разработчика, с разбором каверзных вопросов с собеседований, примерами с кодом, обучающими уроками и кучей всего ... |
28.03.2024 | 5 способов писать эффективный код на Go: от названий переменных до архитектуры | Если вы задумывались, какие практики использовать, чтобы писать код на Go быстро и качественно, этот материал для вас. Руководитель группы разработки подсистем Геннадий Ковалёв и эксперт по разработке ПО Даниил Подольский в YADRO обсуждают ... |
28.03.2024 | А в чем проблема работать с файлами? | Приветствую.
Год назад меня сильно увлекла тема отказоустойчивости приложений. Я начал изучать различные аспекты ее реализации в программах и больше всего меня заинтересовал процесс работы с диском. Ресурсов для изучения много, но они все р... |
22.03.2024 | Эффективные трассировки в Go | Пакет runtime/trace содержит мощный инструмент для понимания программ Go и устранения неполадок. Функциональность внутри позволяет создавать трассировку исполнения каждой горутины за определенный период времени. С помощью go tool trace (или... |
24.02.2024 | Как я пишу HTTP-сервисы спустя 13 лет работы с Go | Примерно шесть лет назад я написал пост о том, как пишу HTTP-сервисы на Go, и сегодня я снова хочу рассказать, как пишу HTTP-сервисы.
Тот пост оказался довольно популярным и вызвал обсуждения, повлиявшие на то, как я делаю это сегодня. И сп... |
18.02.2024 | Go 1.22: Rangefunc Experiment | Дисклеймер
Данная статья - проба пера.
Данная статья - перевод/вольная интерпретация соответствующей страницы с Go Wiki. Если знаете английский язык, то, возможно, стоит зайти в первоисточник, а здесь посмотреть лишь примеры.
В данной стать... |
08.02.2024 | Go 1.22: Интерактивные заметки к релизу | Вчера вышел Go 1.22, и многие новые фичи можно попробовать прямо из браузера. Давайте пройдемся по ним!
Хабр не разрешает встраивать интерактивные примеры кода в статью, поэтому я сделал их внешними ссылками.
Починили счетчик цикла в замыка... |
07.02.2024 | Вышел Go 1.22 | Состоялся релиз языка программирования Go 1.22. Этот проект развивает компания Google при участии сообщества как гибридное решение, сочетающее высокую производительность компилируемых языков с такими достоинствами скриптовых языков, как лёг... |
07.02.2024 | Где изучать Golang в 2024 | Бесплатные ресурсы Golang 2024
2024 году изучение языка программирования Go (Golang) остается одним из наиболее перспективных и востребованных направлений для разработчиков.
Одним из главных преимуществ изучения Golang в 2024 году является ... |
07.02.2024 | Люди не понимают ООП | «ООП для меня означает лишь обмен сообщениями, локальные ограничения и защиту, сокрытие состояния процесса и крайне позднее привязывание», — Алан Кэй (человек, придумавший термин «объектно-ориентированное программирование»)1
Похоже, многим ... |
05.02.2024 | Делим монорепозиторий библиотеки Go на отдельные модули и адаптируем их для локальной разработки | Привет! Меня зовут Илья Сергунин, я Senior Software Engineer из продуктовой команды Авито. Наша библиотека Go состоит из абстракций для работы с транзакциями в Go и нескольких драйверов для баз данных. Сначала там было всего четыре имплемен... |
23.01.2024 | Umka обрастает мясом: улучшения в языке, менеджер пакетов, применение в играх | Только что вышла новая версия 1.3 моего встраиваемого скриптового языка Umka со статической типизацией. С момента выпуска версии 1.0 язык пополнился замыканиями, инструкцией выбора switch по фактическому типу интерфейса, тернарным условным ... |
19.01.2024 | Использование фреймворков модульного тестирования для выявления уязвимостей | Формулировка проблемы
Поиск уязвимостей — сложный процесс, а еще сложнее пользоваться уязвимостями на нескольких целях в разных конфигурациях. Именно по этой причине существует множество фреймворков, таких как Metasploit, и различных сканер... |
16.01.2024 | Go — 100 вопросов/заданий с собеседований | Приветствую тебя, хаброжитель!
В этой статье разберём 100 вопросов, они покрывают львиную долю того, что могут спросить на собеседовании джуниор Go-разработчика с практически любой специализацией. Конечно же, в реальной работе на Go требуют... |
09.01.2024 | Range Loop в Go: подводные камни, как с ними бороться и что нас ждёт в версии 1.22 | Привет, Хабр! Меня зовут Рафаэль Мустафин, я ментор на курсе «Go-разработчик» в Яндекс Практикуме. Эта статья посвящена нюансам цикла range в Go. Мы рассмотрим распространённые подводные камни, лучшие практики и интересные изменения, ожидае... |
07.01.2024 | Простой production-ready генератор студийных фото продуктов | В данной статье мы рассмотрим простой пример готового к запуску в продакшн приложения с генеративным пайплайном.
Ссылка на проект на Github для особо нетерпеливых
Пример сгенерированного контентаВведение
Буквально в последние пару лет модел... |
01.01.2024 | 11lc — инновационный компилятор для нового языка программирования | Данная статья посвящена находящемуся на стадии проектирования компилятору 11lc. В ней перечисляются наиболее яркие особенности этого компилятора.
Отсутствие скрытой неэффективности
Это свойство скорее языка программирования 11l, нежели комп... |
26.12.2023 | Дженерики в go | Привет, Хабр!
Дженерики (или generics) существуют во многих языках, таких как Java, C#, и Rust, но для Go это относительно новая фича, введенная в версии 1.18.
До версии 1.18 Go был известен своим строгим и простым подходом к типизации. Одн... |
20.12.2023 | Создание эмулятора игр MS-DOS в Kubernetes | В этой статье мы разберёмся, как можно интегрировать JavaScript-библиотеку js-dos в собственное решение Kubernetes, что позволит нам предоставлять доступ к играм MS-DOS в виде сервисов Kubernetes и запускать их в браузере.
Кроме того, по хо... |
19.12.2023 | Event Sourcing и CQRS в Go | Привет, Хабр!
Сегодня мы поговорим о двух концепциях — Event Sourcing и CQRS, и их реализации на ЯП Go. Go предоставляет хорошие возможности для реализации этих паттернов благодаря своей производительности, простоте и поддержке конкурентнос... |
14.12.2023 | Подборка: навыки и инструменты начинающего Go-разработчика | Привет! Меня зовут Александр Тетеркин, я Go-разработчик в VK. Раньше я писал на Python, потом перешел на Go — пишу на этом языке уже три года, а также являюсь наставником на курсе «Go-разработчик с нуля».
Я знаю, что новички в любой сфере з... |
12.12.2023 | Как много языков может влезть в одного программиста? | Всем привет, меня зовут Серёжа, я технический лидер iOS-разработки в Альфа-Банке. Сегодня я хочу поговорить о многогранности мира программирования, а именно о количестве языков и причинах, по которым они нам нужны, и о том, зачем одному про... |
07.12.2023 | Потрошим golang: как устроена память | Привет, меня зовут Стас, и я работаю в VK Cloud над разработкой облачных сервисов в команде Data Masters. Сервисы, запрошенные клиентами, так или иначе должны развернуться в том виде, в котором клиенты их запросили, в адекватные сроки и без... |
05.12.2023 | Торговые роботы на Golang | Трейдеры на финансовом рынке обрабатывают большие объемы информации и принимают решения максимально быстро, чтобы не упустить возможность и избежать рисков. Получить преимущество можно, если умеешь хотя бы немного программировать. Это особе... |
21.11.2023 | Корутины для Go | Эта заметка о том, зачем нам нужен пакет coroutine для Go и как он будет выглядеть. Но прежде всего, что такое корутины?
Сегодня каждый программист знаком с вызовами функций (подпрограмм): F вызывает G, которая останавливает F и запускает G... |
07.11.2023 | Multipath TCP в Go | КДПВ
По данным mptcp.io на 1 ноября 2023 года в глобальной сети функционируют около 350 тысяч ресурсов с поддержкой Multipath TCP (далее - MPTCP).
График с сайта
Ранее уже был проведен некоторый анализ внедрения стандарта.
И, если коротенеч... |
03.11.2023 | Реализация Graceful Shutdown в Go | Изящное завершение работы (Graceful Shutdown) важно для любого длительного процесса, особенно для того, который обрабатывает состояние. Например, что если вы хотите завершить работу базы данных, поддерживающей ваше приложение, а процесс db ... |
12.10.2023 | Алгебраические Типы Данных | Что же такое Алгебраические Типы Данных(Algebraic Data Types(ADT))? Обычно определение состоит из терминов теории типов и обязательно с примером на Haskell. Но на практике всё не так сложно.Типы данных
Сначала разберемся с типами данных в о... |
11.10.2023 | Part 0. Инструментарий QA в Альфа Банке | Всем привет! Меня зовут Вадим Лунин. Я — QA Manager из Альфа Банка в Беларуси. Этой статьёй хочу начать цикл статей по инструментам, которые мы используем для тестирования наших продуктов в Альфа Банке.
Три месяца назад мы запустили Альфа С... |
10.10.2023 | Profile-guided optimization в Go 1.21 | В Go 1.20 была выпущена предварительная версия profile-guided optimization (PGO), которую пользователи могли протестировать. После устранения известных ограничений в предварительной версии и дополнительных доработок благодаря отзывам и вкла... |
09.09.2023 | Четыре причины, по которым стоит писать продукт на языке программирования Go | Когда важно быстродействие
Если сравнивать с Python, то Go обходит его в производительности в несколько, а порой и в десять раз. Есть целый ряд случаев, когда это имеет решающее значение для бизнеса.
Как пример — интернет-реклама и скорость... |
15.08.2023 | Go's Garbage Collection: как работает и почему это важно знать | Привет! Меня зовут Дмитрий Королёв, я бэкенд-разработчик в Авито. Я хочу рассказать, как устроен сборщик мусора в Golang и как он работает, чтобы вы могли писать более производительные приложения и лучше понимать внутреннее устройство языка... |
09.08.2023 | Вышел Go 1.21 | Состоялся релиз языка программирования Go 1.21. Этот проект развивает компания Google при участии сообщества как гибридное решение, сочетающее высокую производительность компилируемых языков с такими достоинствами скриптовых языков, как лёг... |
01.08.2023 | От C до Go. Как Golang объединил лучшие черты своих предшественников | В программировании постоянно разрабатываются новые языки. В каждом из них разработчики стремятся расширять возможности предыдущих технологий. Одним из таких примеров является язык Go, или Golang (Google language). Разработанный в компании G... |
24.07.2023 | Как начинать проект на Go в 2023 году | Когда-то я написал статью о том, как начинать проект на Go в 2018 году. С тех пор многое изменилось, и я захотел написать обновлённую версию статьи. В ней я расскажу всё, что нужно новичку, чтобы приступить к работе с Go.Установка/настройка... |
19.07.2023 | Go: особенности написания конкурентных программ | Мотивация написания статьи
Всем нам предстоит поддерживать уже существующий код, а также проводить ревью кода коллег. Иногда становится очень тяжело видеть некоторые паттерны, которые кажутся безобидными, но при некорректном использовании и... |
13.07.2023 | Микросервисы в банке: на чем их лучше писать? Java/Kotlin, а может Go? | В июле в офисе РСХБ-Интех (технологической дочки Россельхозбанка) состоялся бесплатный митап для Java-разработчиков — RSHB Backend Dev Meetup. Обсудили Kotlin, Go, маппинг и разные аспекты бэкэнд-разработки. В числе докладчиков выступал Ива... |
03.07.2023 | Разбираемся с асинхронным PHP | Асинхронное программирование становится фундаментальным элементом в построении масштабируемых веб-приложений. Причина этого заключается в растущей потребности увеличения количества действий на каждый веб-запрос.Типичным примером этого являе... |
03.07.2023 | Оптимизация памяти и управление сборщиком мусора в Go: GOGC и GOMEMLIMIT | Всем привет, меня зовут Нина Пакшина, я работаю Golang разработчиком в Лента Онлайн.
В данной статье я расскажу о том, как управлять сборщиком мусора в Go, как оптимизировать потребление памяти приложением и защититься от ошибки out-of-memo... |
30.06.2023 | Атомики в Go: особенности внутренней реализации | Атомики в Go - это один из методов синхронизации горутин. Они находятся в пакете стандартной библиотеки sync/atomic. Некоторые статьи сравнивают atomics с mutex, так как это примитивы синхронизации низкого уровня. Они предоставляют бенчмарк... |
28.06.2023 | Типы, больше типов | Введение
При описании модели данных, часто приходится создавать новые типы, в первую очередь, используя такие ключевые слова как class/struct/record. Такие типы агрегируют в себе другие типы как простые, так и составные. Все это знают и при... |
27.06.2023 | Больше классов Богу классов | Distracted men meme: New clas modifier
Совсем недавно команда разработки Dart выпустила 3-ю версию языка, которая привнесла много новых крутых штук и возможностей. Одним из нововведений стали модификаторы классов, которые довольно сильно ра... |
10.06.2023 | Пишем gRPC автотесты на Go с Allure отчетом | Вступление
В данной статье разберем, как писать gRPC автотесты с использованием языка Go, также сделаем Allure отчет
Перед тем как читать статью, нужно базово понимать некоторые термины:
Что такое RPC?
Что такое gRPC?
Что такое protobuf? Сю... |
31.05.2023 | Трассировка стека вызовов в среде кооперативной многозадачности: стектрейсы, файберы, два ствола | Персонаж с картинки — Трейсер из игры Overwatch
Привет, Хабр! Для отладки и анализа производительности часто используется трассировка (сбор) стека вызовов aka стектрейс. И если для трассировки стека различных потоков выполнения есть системн... |
17.05.2023 | Несколько мыслей по подготовке к алгоритмической части собеседования | Всем привет! На связи снова Петр Коробейников, техлид сервисов DBaaS for Redis и RabbitMQ (релиз скоро) в #CloudMTS. В этой статье хочу поделиться с вами некоторым опытом подготовки к прохождению алгоритмических интервью. Конечно, статья не... |
26.04.2023 | InfluxData releases InfluxDB 3.0 product suite for time series analytics | Join top executives in San Francisco on July 11-12, to hear how leaders are integrating and optimizing AI investments for success. Learn More
InfluxData is advancing its InfluxDB time series database product portfolio today to version 3.0. ... |
20.04.2023 | Пишем на Go как в Google. Лучшие практики — часть первая
Рекомендации по стилю для проектов Google с открытым исходным кодом... | Рекомендации по стилю для проектов Google с открытым исходным кодом
Лучшие практики Go
Этот документ — часть документации по стилю Go в Google. Он не является ни нормативным, ни каноничным, это дополнение к «Руководству по стилю». Подробнос... |
20.04.2023 | Как работает PGO-оптимизация в Go «на пальцах» | В феврале появилась новая версия Golang — 1.20. Разработчики представили в предварительной версии инструмент оптимизации — profile-guided optimization, или коротко PGO. Этот подход позволяет оптимизировать процесс компиляции приложения за с... |
10.04.2023 | Golang-дайджест № 27 (1 – 31 марта 2023) | Свежая подборка новостей и материалов.Новости, события
Выпущены Go 1.20.3 и 1.19.8 - эти выпуски включают исправления безопасности
go/parser: бесконечный цикл при разборе.
Вызов любой из функций Parse в исходном коде Go, который содержит ди... |
06.04.2023 | Добро пожаловать в мир приключений по API-серверу Kubernetes. Часть 1 | Kubernetes состоит из нескольких компонентов, где значительная часть взаимодействий итогового пользователя с системой осуществляется при помощи API-сервера. Он представляет собой отправную точку для многих функций, которые проект создал за ... |
23.03.2023 | Практические советы по устранению утечек памяти в Go | В этой статье я расскажу, что делать при обнаружении утечки в Go-приложении: чем могут быть вызваны утечки и с чего начать поиск источника проблемы.Причины утечек
Для начала перечислим возможные причины утечки памяти:
1) Утечка горутин
При ... |
23.03.2023 | «Юкка» — бесплатный сервер видеонаблюдения для дома и бизнеса | Я давно хотел написать статью и рассказать о софте, который мы разрабатываем, и, кажется, откладывать это сложное для меня дело уже нельзя. Я не мастер слова, так что прошу прощения за возможные ошибки или сложные обороты речи )
5 комментар... |
20.03.2023 | Переходим на Go: 16 материалов для самостоятельного изучения языка | Привет! Меня зовут Владислав Попов, я автор курса «Go-разработчик» Яндекс Практикума.
Когда-то я сам был студентом — хотел учиться Go, но такого курса в Практикуме не было, поступил на Python. Прошёл вводную часть — и тут стартовал желанный... |
17.03.2023 | Go. О покрытии кода интеграционными тестами и флаге -cover
Работа с файлами данных покрытия
Итоги | Инструменты покрытия кода помогают понять, какая часть кодовой базы выполняется (или, как еще говорят, покрывается) при выполнении данного набора тестов. Какое-то время Go поддерживал измерение покрытия кода на уровне пакета, введенное в Go... |
07.03.2023 | Мой путь в профессию: из аналитиков в Go-разработчики | Привет! Меня зовут Герман, я backend-разработчик в команде Managed Service for Redis в компании #CloudMTS. В этой статье расскажу про свой приход в разработку на Go и поделюсь полезными ресурсами, которые мне помогли на этом пути.
Старт в И... |
06.03.2023 | Golang-дайджест № 26 (1 – 28 февраля 2023) | Свежая подборка новостей и материалов.Новости, события
Выпущены Go 1.20.1 и 1.19.6 - эти выпуски включают исправления безопасности
path/filepath: В Windows функция filepath.Clean может преобразовать недопустимый путь, например a/../c:/b, в ... |
06.03.2023 | Assembler в Go: техники ускорения и оптимизации | Привет, Хабр!
В прошлой статье я рассказывал об ускорении копирования элементов одного слайса в другой с помощью средств Go. В этот раз я решил пойти дальше и посмотреть, что можно достичь, начав разговаривать с процессором на его языке. Я ... |
27.02.2023 | Брифинг по дженерикам Go 1.18 | Добавление дженериков (generics) в Go (ранее Golang) — самое значительное изменение, которое он претерпел, с момента его релиза. Сообщество Go просило добавить дженерики с самых первых дней языка, и мы, наконец, дождались.
Реализация дженер... |