Сортировка — это процесс упорядочивания элементов в массиве или списке по определенному критерию (например, по возрастанию или убыванию). В программировании это одна из базовых задач, которая помогает эффективно искать, обрабатывать и анализировать данные. Давайте разберем основные алгоритмы сортировки, их принципы работы и сложность на примерах реализации на языке Go.Введение в алгоритмы сортировкиСуществует несколько способов сортировки данных. Основные алгоритмы можно разделить на две катего…
Рассмотрим в этой статье несколько наиболее распространенных паттернов проектирования в Golang, дополнив их практическими примерами.Фасад, Стратегия, Прокси, АдаптерПаттерн "Фасад"Фасад — это паттерн проектирования, который предоставляет простой интерфейс для работы с сложной системой. Вместо того чтобы разбираться с множеством деталей и компонентов, мы можем использовать фасад, который берёт на себя всю работу "под капотом". Простыми словами Фасад — это как кнопка "Выполни…
Зачем нужна авторизация? Какие проблемы она решает и в каких ситуациях будет полезна? Рассмотрим модели организации контроля доступа и способы их реализации.Привет, Хабр! Меня зовут Олег Козырев. Senior Golang инженер в BigTech-компании, ментор и блогер. Обучаю людей backend-разработке и консультирую по вопросам IT. Веду каналы «IT и жизнь»: в телеграме и на Ютюб. А главным героем этой статьи по мотивам моего доклада для GolangConf будет мой кот. Он проведёт нас по тернистому пути создания плат…
Здравствуйте, уважаемые, Гоферы 👋Go 1.24 уже на подходе, и это обновление обещает различные улучшения. Давайте посмотри ключевые нововведения, которые Go 1.24 принесет разработчикам.1. Обобщенная типология (Generics)Итак, что такое определение типа? Определение типа, это когда мы создаем новый тип int или управляем новым типом из int, создавая новый отдельный тип на основе существующего. Это позволяет добавить поведение к новому типу, определив его методы. Так, здесь я могу определить метод v…
Всем привет! Существует достаточно много решений для локального и удаленного сбора и чтения логов с различных систем. В разные периоды времени как для рабочих задач, так и для домашнего стенда мне приходилось настраивать разные системы, и хочу заметить, что некоторые из них достаточно сложны в своей конфигурации. Одини из самых популярных систем управления логами являются ELK стек, Graylog и Loki, это отличные решения, когда нужно обрабатывать журналы с большого количества машин, но достаточно …
Сортировка — это процесс упорядочивания элементов в массиве или списке по определенному критерию (например, по возрастанию или убыванию). В программировании это одна из базовых задач, которая помогает эффективно искать, обрабатывать и анализировать данные. Давайте разберем основные алгоритмы сортировки, их принципы работы и сложность на примерах реализации на языке Go.Введение в алгоритмы сортировкиСуществует несколько способов сортировки данных. Основные алгоритмы можно разделить на две катего…
Так случается, что команда решает вынести часть проекта в open source и использовать ее как внешнюю зависимость. Как правило, это самостоятельный пакет или инструмент, лишенный какой-либо бизнес-специфики, способный принести пользу сообществу и получить дальнейшее развитие. Большинство коммерческих разработчиков имеет персональные профили на открытых платформах и поддерживает собственные портфолио, поэтому при переносе мы хотим сохранить авторство и историю коммитов. Основная сложность здесь в …
Привет, Хабр! Меня зовут Владислав Белогрудов, я работаю в команде разработки интерфейсов и сервисов управления в YADRO. Мой текущий проект — информационная система на Go. В рамках проекта я подробно изучил, как работать со слайсами — одной из самых популярных структур в Go. На первый взгляд, использовать ее достаточно просто, но, когда берешься писать код, возникают вопросы: как передавать и изменять слайсы, насколько большими их делать.Под катом рассмотрим, что такое слайсы и string (строки) …
Все инновации так или иначе будут связаны с глобальными, распределенными системами в которых ключевую роль будут играть периферийные вычисления.Многие из инструментов, которые мы успешно используем для решения текущих задач, могут быть неадекватными для новых вызовов.В качестве примера таких инструментов, можно привести Ansible и SSH. Ansible, как известно использует SSH в качестве основного транспорта для выполнения команд на удаленных машинах. Это своего рода RPC для системных администраторов…