Date | Title | Description |
13.02.2025 | The Rise of AI in iOS Development: A New Era of Innovation | The landscape of iOS development is changing. Artificial intelligence is not just a buzzword; it’s a game-changer. Tools like ChatGPT o3-mini and DeepSeek are reshaping how developers create applications. They are like the wind beneath the ... |
12.02.2025 | Интерактивный тур по Go 1.24 | Релиз Go 1.24 запланирован на февраль, поэтому сейчас самое время узнать, что нового появилось в языке. Официальные release notes (примечания к релизу) довольно сухие, поэтому я подготовил интерактивную версию с множеством примеров, которые... |
12.02.2025 | Вышел Go 1.24 | 11 февраля 2025 года состоялся релиз языка программирования Go 1.24. Этот проект развивает компания Google при участии сообщества как гибридное решение, сочетающее высокую производительность компилируемых языков с такими достоинствами скрип... |
11.02.2025 | Паттерн Конкурентного генератора в Go: Наглядное руководство | Мастерство конкурентности в Go:
Механика горутин и каналов
Паттерн генератор (вы туть)
Паттерн конвейер (оригинал)
Fan-in Fan-out (оригинал)
Итак вторая часть продолжаем. Теперь давайте посмотрим, как эти примитивы объединяются, образуя мощ... |
10.02.2025 | Механика горутин и каналов в Golang: разбор с примерами | Как работать с данной статьей
Запускайте каждый пример: Не нужно просто читать код. Напечатайте его, запустите, разберитесь в поведении.
Экспериментируйте и ломайте: Избавьтесь от каких то этапов, измените буфер каналов, модифицируйте счетч... |
22.01.2025 | Navigating the World of Go Slices and Log Management: A Dual Exploration | In the realm of programming, understanding data structures is akin to mastering the building blocks of a grand edifice. Go slices, dynamic arrays that grow and shrink as needed, serve as a fundamental tool for developers. Meanwhile, effecti... |
22.01.2025 | Navigating the Depths of Go: Mastering Slices and Strings for Performance | In the world of programming, Go stands out like a lighthouse in a storm. Its simplicity and efficiency make it a favorite among developers. But beneath its surface lies a complex ecosystem of data structures, particularly slices and strings... |
22.01.2025 | Navigating the Open Source Journey: From Private Code to Public Contribution | In the world of software development, the transition from a private project to an open-source initiative is akin to opening the doors of a secret garden. It’s a process filled with excitement, challenges, and the promise of community collab... |
21.01.2025 | Готовим слайсы в Go: подробно о динамических массивах, строчках и ускорении | Привет, Хабр! Меня зовут Владислав Белогрудов, я работаю в команде разработки интерфейсов и сервисов управления в YADRO. Мой текущий проект — информационная система на Go.
В рамках проекта я подробно изучил, как работать со слайсами — одной... |
21.01.2025 | Как вынести Go-модуль в open source с сохранением авторства | Так случается, что команда решает вынести часть проекта в open source и использовать ее как внешнюю зависимость. Как правило, это самостоятельный пакет или инструмент, лишенный какой-либо бизнес-специфики, способный принести пользу сообщест... |
16.01.2025 | The Art of Naming Variables in Go: A Concise Guide | In the world of programming, names are powerful. They are the labels we attach to our thoughts, the symbols that guide our understanding. In Go, a language celebrated for its simplicity and clarity, the naming of variables is an art form. I... |
16.01.2025 | Когда слайсы начинают расти | Введение
Я не применяю Go в коммерческой разработке, я недавно начал изучать и применять этот язык для пет-проектов и разного рода опытов. В этой статье речь пойдёт о слайсах. Пример, который мы будем рассматривать, мне показал коллега, за ... |
11.01.2025 | К слову об именах переменных в Go | Субботним утречком решил поговорить о кое-чем действительно важном. Управление памятью, сборщик мусора — это всё недостойная обсуждения фигня. Имена переменных — вот это действительно стоящая тема. Не вижу, почему бы трем благородным донам ... |
26.12.2024 | Отмена defer вызова функции в Golang | Недавно столкнулся с такой проблемой, что не всегда приходиться выполнять defer вызов функции. Те кто знают, как работает defer можете листать вниз до реализации моего паттерна.
Представьте, что у вас есть 10 кейсов, в одном из которых не в... |
02.12.2024 | Дженерики в Go | Это первая часть статьи, посвященной дженерикам в Go, из четырех.
Одна из последних и наиболее интересных фич в Golang — поддержка дженериков. Эта серия туториалов будет посвящена тому, что это такое, какую пользу приносит, когда их стоит и... |
02.12.2024 | Конвейеризация: универсальный способ повышения пропускной способности | Что общего между стиральной машиной, CPU и микросервисами? Все они выигрывают от «конвейеризации» (англ. pipelining).
В этой статье мы соберем информацию из разных сфер, и увидим, насколько универсален принцип конвейеризации. Получим интуит... |
26.11.2024 | Работа с куки-файлами хуже сапёрного дела | Если в этом посте вам в основном интересно, как что ломается, сразу можете переходить к последнему разделу.
HTTP-куки — это небольшие информационные добавки, направляемые на клиент с сервера, работающего с JavaScript или HTTP. Куки играют о... |
09.11.2024 | Understanding Go Interfaces: A Deep Dive into Abstraction and Flexibility | In the world of programming, interfaces are like bridges. They connect different parts of a system, allowing them to communicate without knowing the details of each other. In Go, interfaces are a powerful feature that can be both daunting a... |
08.11.2024 | Австралия, Лорд-Хау — самый странный часовой пояс | Часовые пояса представляют собой довольно запутанную концепцию, но не безнадёжно. И далее я опишу точную принципиальную модель, которая вам понадобится для их понимания.
Обсуждение часовых поясов, как правило, заключается в перечислении все... |
05.11.2024 | Погружение в интерфейсы Go | Интерфейсы — одна из самых сложных тем для начинающих в Go. Я решил тщательно разобраться с этой темой и одновременно написать эту статью. После прочтения этой статьи вы сможете ответить на следующие вопросы:
Что такое интерфейс?
Что такое ... |
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 | Kubernetes 1.31: новый VolumeSource, эмуляция старых версий и настройка анонимного доступа к эндпоинтам | Сегодня официально выпустили новую версию Kubernetes — 1.31. Среди главных нововведений — VolumeSource, поддерживающий OCI-образы и/или OCI-артефакты и поле SupplementalGroupsPolicy для контроля дополнительных групп, которые присоединяются ... |
14.08.2024 | Вышел Go 1.23 | 13 августа 2024 года cостоялся релиз языка программирования Go 1.23. Этот проект развивает компания Google при участии сообщества как гибридное решение, сочетающее высокую производительность компилируемых языков с такими достоинствами скрип... |
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 | Оптимизация памяти и управление сборщиком мусора в Go: GOGC и GOMEMLIMIT | Всем привет, меня зовут Нина Пакшина, я работаю Golang разработчиком в Лента Онлайн.
В данной статье я расскажу о том, как управлять сборщиком мусора в Go, как оптимизировать потребление памяти приложением и защититься от ошибки out-of-memo... |