Pull to refresh
19
12

User

Send message

Как мы ускорили Golang-тесты на CI

Level of difficultyEasy
Reading time10 min
Views2.4K

Привет, Хабр 👋! Меня зовут Александр, я занимаюсь разработкой ПО. В этом посте я расскажу про свой опыт, как желание улучшить свой рабочий процесс CI, помогло ускорить все golang пайплайны в PaaS в СберМаркета.

Читать далее
Total votes 15: ↑14.5 and ↓0.5+14
Comments0

Мапы в Go: уровень Pro

Reading time16 min
Views21K

Подробный туториал по процессам записи и чтения данных в мапах Go. Объясняем проблемы переполнения, эвакуации элементов; важность передачи количества элементов при создании мапы. Рассказываем, почему в Go нельзя обращаться к ключу или значению по адресу.

Читать далее
Total votes 19: ↑17 and ↓2+15
Comments10

Обобщённые типы. Часть 2/3. Классы типов и контейнеры

Level of difficultyMedium
Reading time38 min
Views1.8K

Это вторая часть обзора обобщённых типов, в которой мы расскажем о классах типов и типах-контейнерах.

Читать вторую часть обзора
Total votes 5: ↑5 and ↓0+5
Comments0

Обобщённые типы. Часть 3/3. Применение контейнерных типов

Level of difficultyHard
Reading time46 min
Views2.4K

В последней третьей части обзора продемонстрировано, как на основе обобщённых типов-контейнеров реализуются различные ФП-техники “чистого” построения “эффективных” программ. В заключении будет отмечена роль теории категорий в обосновании важности абстракций, построенных над обобщёнными типами.

Читать третью часть обзора
Total votes 5: ↑5 and ↓0+5
Comments1

Tcpdump на разных уровнях

Reading time4 min
Views9.5K

Утилита Tcpdump знакома любому сетевому администратору, с ее помощью мы собираем трафик для последующего анализа. Типичная история – собираем траффик, приходящий на нужный интерфейс и затем уже анализируем его Wireshark. Подход практичный, ведь Wireshark Действительно очень мощный и полезный инструмент и о нем мы напишем еще не одну статью, но сегодня речь пойдет про Tcpdump. Не секрет, что утилита Tcpdump не интерпретирует протоколы прикладного уровня, ограничиваясь работой с транспортным уровнем. Однако, в этой статье мы рассмотрим различные варианты использования утилиты Tcpdump для более глубокой фильтрации трафика.

Итак, Tcpdump - утилита UNIX, позволяющая перехватывать и анализировать сетевой трафик, проходящий или приходящий через компьютер, на котором запущена данная программа.

Читать далее
Total votes 20: ↑19 and ↓1+18
Comments4

Майские мини-ПК: мощные, дорогие и не очень. Весенние новинки 2023 года

Reading time4 min
Views30K
Fotoram-io-22

Весна в самом разгаре, скоро лето, но производители «железа» не отдыхают. Наоборот, разные компании выпускают все больше интересных моделей миниатюрных ПК, которые могут использоваться как для решения домашних задач, так и для работы в офисе. Под катом — подборка наиболее интересных моделей мая. Поехали!
Читать дальше →
Total votes 65: ↑61 and ↓4+57
Comments41

А в чем проблема работать с файлами?

Level of difficultyMedium
Reading time53 min
Views27K

Данные - это важный компонент системы. Приложение может хранить их где угодно, но в результате все сводится к файлам. Файлы - это хорошая абстракция, но она протекает: если не знать того, как работают ОС или гарантии файловой системы, то легко выстрелить себе в ногу.

Меня увлекла тема отказоустойчивости, а конкретно - отказоустойчивой работы с файлами. В этой статье я попытался соединить все полученные знания:

Кто участвует в процессе записи

Ошибки, которые могут произойти

Что от нас зависит, а что нет

И самое главное - как это этого защититься

Читать далее
Total votes 171: ↑170 and ↓1+169
Comments23

Kafka за 20 минут. Ментальная модель и как с ней работать

Level of difficultyMedium
Reading time19 min
Views75K

Привет! Меня зовут Глеб Гончаров, и я руковожу подгруппой ИТ-инфраструктуры в СберМаркете. В работе мы широко используем Kafka как шину данных для микросервисов и не раз убедились на практике, что к инструменту важно подобрать правильный подход. Об этом сегодня и поговорим в двух частях — сначала обсудим основы, а в конце статьи будет ссылка на практические задания.

Читать далее
Total votes 41: ↑41 and ↓0+41
Comments15

Февральские мини-ПК: 5 разных моделей для работы и развлечений

Reading time3 min
Views20K

Продолжаем мониторить рынок миниатюрных ПК, стараясь выбрать наиболее интересные модели. Часть подходит лишь для офисных задач, часть — вполне себе производительные, их можно использовать и для игр. Под катом — подборка устройств, которые нам понравились больше всего. Если у вас есть, что порекомендовать помимо представленных моделей — пишите в комментариях, обсудим.
Читать дальше →
Total votes 35: ↑34 and ↓1+33
Comments15

Всё, о чём должен знать разработчик Телеграм-ботов

Reading time15 min
Views598K

Вы вряд ли найдете в интернете что-то про разработку ботов, кроме документаций к библиотекам, историй "как я создал такого-то бота" и туториалов вроде "как создать бота, который будет говорить hello world". При этом многие неочевидные моменты просто нигде не описаны.

Как вообще устроены боты? Как они взаимодействуют с пользователями? Что с их помощью можно реализовать, а что нельзя?

Подробный гайд о том, как работать с ботами — под катом.

Читать далее
Total votes 127: ↑127 and ↓0+127
Comments73

Делим монорепозиторий библиотеки Go на отдельные модули и адаптируем их для локальной разработки

Reading time3 min
Views4.6K

Библиотека Go в Авито увеличилась с 4 драйверов до 7, и на всё стало не хватать единого модуля. Рассказал, как разделил монорепозиторий на отдельные модули и адаптировал его для разработки в локальной среде.

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments1

Разработка простого DNS сервера на Go, согласно RFC

Level of difficultyMedium
Reading time7 min
Views11K

Привет, Хабр!

В этой статье я хочу рассказать о своем опыте создания DNS сервера. Разрабатывал я его "чисто повеселиться", при разработке будем придерживаться спецификации RFC.

Читать далее
Total votes 42: ↑39 and ↓3+36
Comments10

Huginn. Мозговой центр PaaS

Reading time17 min
Views1.6K

Привет, Хаброжители! Я Саша, Go-разработчик в компании Сбермаркет. Я со своей командой работаю над созданием инструментов PaaS.

PaaS для нас — это не просто микросервисная архитектура. Это целый мир, в котором с самого начала мы почувствовали потребность в создании эффективного хранилища для всех сервисов, чтобы все было наглядно. Именно так началась наша увлекательная история…

Мы автоматизировали процесс регистрации сервисов при их деплое. Теперь каждый раз, когда новый сервис запускается, он регистрируется в нашей системе. Более того, мы расширили этот процесс, чтобы Huginn собирал важные данные о каждом сервисе, такие как манифест приложения при каждом деплое. Вдруг что-то изменится — мы об этом сразу же узнаем и отображаем!

Итак, мы автоматизировали сбор ключевых метрик и метаданных о каждом сервисе в единую систему Хугин. Теперь давайте разберёмся, что именно она умеет и какие проблемы решает.

Читать далее
Total votes 13: ↑12 and ↓1+11
Comments1

Как использовать ресурсы Kubernetes по максимуму для работы с Go-приложениями

Reading time12 min
Views7.6K

Привет! Меня зовут Антон Жуков, я руковожу группой разработки в Сбермаркете. В профессии я уже более 12 лет, с Golang работаю с 2016 года, а с Kubernetes — с 2018 года.

В этой статье расскажу об основах Kubernetes, возможных проблемах и решениях, а также о том, как грамотно использовать ресурсы этой платформы, чтобы выжать максимум из Go-приложений. Кроме того, в конце статьи я опишу кейс настройки GOMAXPROCS на примере нашего приложения и расскажу, как нам удалось повысить его производительность на 20-50%.

Читать далее
Total votes 24: ↑23 and ↓1+22
Comments3

Как подключить технику Xiaomi к локальному серверу на Node.js: первый шаг к настройке своего Умного дома

Level of difficultyEasy
Reading time3 min
Views8.2K

Инструкция для получения доступа к устройству в целях получения и хранения данных с него удобным образом. Зачем? Чтобы в перспективе настроить свой Умный Дом без ограничений приложений, которые предоставляют производители. 

Читать далее
Total votes 10: ↑7 and ↓3+4
Comments5

Как я чуть не выкинул 150к на ветер или история установки приточной вентиляции в квартире

Reading time19 min
Views623K

Как я пришел к покупке приточной вентиляции для квартиры с готовым ремонтом. Как купил ее за 150к и чуть не потратил деньги зря. Статья будет полезна тем, кто планирует купить очиститель воздуха, бризер или приточку.


Читать дальше →
Total votes 375: ↑370 and ↓5+365
Comments595

Хороший ретрай, плохой ретрай, или История одного падения

Level of difficultyMedium
Reading time17 min
Views37K

Порой простое и очевидное решение может потянуть за собой хвост проблем в будущем. Например, добавление ретраев.

Меня зовут Денис Исаев, и я работаю в Яндекс Go. Сегодня я поделюсь опытом решения проблем с отказоустойчивостью из-за ретраев. Основано на реальных инцидентах в системе из 800 микросервисов.

Этот пост — продолжение вымышленных историй о разработчике Васе, который несколько лет назад разбирался с идемпотентностью в распределённых системах. Теперь перед ним новые задачи — получится ли справиться с ними в этот раз? Давайте узнаем.

Читать далее
Total votes 152: ↑152 and ↓0+152
Comments32

Conc: новая библиотека для управления конкурентностью в Go

Reading time3 min
Views6.4K

Одной из главных фишек языка Go является удобная работа с конкурентностью. Однако, в больших проектах всё равно возникают такие проблемы как утечка горутин, некорректная обработка паник в горутинах, плохая читаемость кода.

Как указывает автор библиотеки в своей статье, он часто сталкивается с подобными проблемами и связанными с ними ошибками при работе с горутинами, что побудило его создать свою библиотеку conc.

Давайте посмотрим, на что она способна.

Читать далее
Total votes 17: ↑14 and ↓3+11
Comments10

4k @ 144Hz: DP, HDMI, USB-C Alt-Mode & cables…

Reading time11 min
Views59K

Я недавно сделал себе небольшой апгрейд и у меня появился монитор 4k@144Hz. Разумеется, на 144Hz он не заработал. Потому что нюансы. Мне пришлось в это нырнуть глубже, чем хотелось бы...

Спойлеры: DP, USB-C Alt-mode, Thunderbolt, USB4 3x2, 40Gbps, HDMI.
Оглавление: кабели, протоколы, режимы.

Лыдыбр: Моя старая видеокарта на компьютере сумела завести его на 4k @ 60Hz с помощью Display Port. (Либо 2k @ 144Hz). Это её техническое ограничение, больше она не может. Дальше я попытался воткнуть в монитор ноутбук (все 5 шт, какие нашлись у меня и знакомых) и обнаружил, что всё настолько сложно, что мне потребовалось несколько заходов чтения спецификации, пока я "это завёл". Выписываю свои наблюдения и эксперименты. Актуальность - первая половина 2022 года. Монитор under study - Gigabyte M32U, хотя, в принципе, это не существенно для обсуждаемого вопроса. У монитора разъёмы HDMI, DP, USB-C.

Разбирать проблему я буду слоями. Начём с физики.

Читать далее
Total votes 143: ↑143 and ↓0+143
Comments135

JsonDiscovery: Меняем опыт просмотра JSON в браузере

Reading time3 min
Views34K

Сегодня я хочу рассказать о JsonDiscovery, браузерном расширении для просмотра JSON. Возможно вы скажете: «у нас и так полно подобных расширений!». Да, полно, но фичи JsonDiscovery отличают его от других и делают его действительно мощным.


Давайте же взглянем поближе...


Total votes 75: ↑74 and ↓1+73
Comments32
1
23 ...

Information

Rating
488-th
Location
Россия
Registered
Activity