Занимаясь написанием статьи о Data Vault по разведению кроликов, возникла потребность сгенерировать много данных для ClickHouse. Все генераторы, что смотрел - так и не придумал как сделать 50ГБ данных быстро и эффективно с их помощью. Поэтому решил развлечься и субботний день провести со старым другом. Сразу скажу - я не занимаюсь разработкой на Golang. Это скорее хобби. Так что прошу не судить строго.Итак, задача:сгенерировать данные для Data Vault от точки N до текущего днясделать это в форм…
В этой статье мы рассмотрим пример простого HTTP-сервера, написанного на языке программирования Golang, который предоставляет информацию о контейнерах Docker.Ссылка на Githubhttps://github.com/sardor-wd/go-dockerИмпортыМы начинаем с импорта нескольких пакетов которые нам понадобятся, чтобы работать с Docker и HTTP. Это подобно тому, как вы берете инструменты для ремонта, прежде чем начать работу.package main import ( "context" "encoding/json" "fmt" "github.com/…
В данной статье представлен простой способ реализации микросервисной архитектуры с использованием Kafka, Golang и Docker.Если вы сразу хотите перейти к рабочему коду, вот ссылка на репозиторийОбщий процесс работыКлиент отправляет HTTP-запрос на первый микросервис (API Gateway), используя, например, Postman.API Gateway передает запрос в Kafka, откуда его принимает второй микросервис.Второй микросервис обрабатывает запрос и отправляет ответ обратно в Kafka.API Gateway извлекает ответ из Kafka и …
Rust против Go — тема, которая постоянно возникает, и о ней уже много написано. Частично это связано с тем, что разработчики ищут информацию, которая поможет им решить, какой язык использовать для своего следующего (веб) проекта.В конце концов, оба языка можно использовать для написания быстрых и надежных веб-сервисов. С другой стороны, их подходы к достижению этой цели совершенно разные, и трудно найти хорошее сравнение, которое было бы справедливо по отношению к обоим языкам. Этот пост — моя…
Исходный код программы надо визуализировать - отобразить в виде схем для лучшего понимания, изучения, осмысления, создания документации и др.Рисовать схемы вручную никто хочет - надо создавать их полностью автоматически.Предлагаю вниманию несколько инструментов для визуализации кода:Граф зависимостей модулей языка golang, с отображением директорий.Граф подключений к внешним сервисамПриложения для автоматического создания схемы таблиц и колонок в БД Postgres (ERD-diagram)Все инструменты бесплат…
Hello WorldКак-то появилась причина попробовать пописать на Go. На тот момент я знал, что это язык от Google, язык молодой, язык компилируемый, вроде как активноразвивающийся и с зарплатами выше средних. Неплохой набор.В первой попавшейся статье узнаем, что Go к тому же легкий в изучении. Интересно, сколько PHP-программистов стало PHP-программистами, потому что PHP легкий в изучении? И действительно, за пару вечеров можно уже неплохо ориентироваться в языке.Итак, ищем какой-нибудь golang roadm…
Недавно я закончил читать книгу Тейвы Харсаньи "100 ошибок и как их избежать", и вместо того, чтобы писать рецензию (всем, кто работает с Go, стоит ее прочитать), я решил поделиться четырьмя ошибками, которые показались мне интересными и о которых я раньше не знал. #13. Создание пакетов утилит Поэтому я упорно придерживаюсь принципа: в большинстве своих проектов я пишу пакеты утилит в тот момент, когда какой-либо фрагмент кода используется более одного раза. При этом я обычно называ…
Есть такая занимательная структура данных, описанная в статье Russ Cox — sparse map. Она используется, например, в недрах компилятора Go. А ещё в некоторых пакетах его стандартной библиотеки. У неё есть много интересных свойств и, чем больше я о ней думаю, тем больше применений нахожу в своих задачах. Казалось бы, всё так хорошо, что лучше быть просто не может. Однако сегодня я расскажу вам о секретной штуке, которая будет экономить ещё больше бесценных наносекунд! Предисловие Надеюсь, у меня…
Это вторая часть нашей серии о реверс-инжиниринге двоичных файлов Go с помощью Ghidra. В предыдущей статье мы обсуждали, как восстановить имена функций в удаленных файлах Go и как помочь Ghidra распознавать и определять строки в этих двоичных файлах. Мы сосредоточились на двоичных файлах ELF, лишь кратко упомянув различия между PE-файлами.В этой статье будет обсуждаться новая тема - процесс извлечения информации о типе из двоичных файлов Go. Мы также более подробно объясним, как обращаться с ф…