Обновить
184.3

Go *

Компилируемый, многопоточный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Реверс бинарных файлов Golang с использование GHIDRA. Часть 2

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели4.2K

Это вторая часть нашей серии о реверс-инжиниринге двоичных файлов Go с помощью Ghidra. В предыдущей статье мы обсуждали, как восстановить имена функций в удаленных файлах Go и как помочь Ghidra распознавать и определять строки в этих двоичных файлах. Мы сосредоточились на двоичных файлах ELF, лишь кратко упомянув различия между PE-файлами.

В этой статье будет обсуждаться новая тема - процесс извлечения информации о типе из двоичных файлов Go. Мы также более подробно объясним, как обращаться с файлами Windows PE. И, наконец, мы исследуем различия между различными версиями Go, включая изменения, произошедшие со времени нашей последней публикации в блоге.

Читать далее

Битва за производительность: SparseMap vs GenerationsMap

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели5.9K

Есть такая занимательная структура данных, описанная в статье Russ Cox — sparse map.


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


У неё есть много интересных свойств и, чем больше я о ней думаю, тем больше применений нахожу в своих задачах. Казалось бы, всё так хорошо, что лучше быть просто не может. Однако сегодня я расскажу вам о секретной штуке, которая будет экономить ещё больше бесценных наносекунд!


Читать дальше →

В Go меняется фундаментальная вещь — цикл

Время на прочтение2 мин
Охват и читатели33K

Если раньше в циклах были проблемы с замыканиями, так как переменная цикла имела скоуп всего цикла, а не одной его итерации, то в 1.22 это поведение поменяют.


проще показать на примере:


 funcs := []func(){}

 for i := 0; i < 5; i++ {
  funcs = append(funcs, func() {
   fmt.Println(i)
  })
 }

 funcs[0]()

Последняя строка примера напечатает 5 в go 1.21, но в go 1.22 будет уже интуитивно понятный 0.

Читать дальше →

Конкурентность — это не параллелизм

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели24K

Это полное изложение замечательного доклада Роба Пайка "Concurrency is Not Parallelism". Иллюстрации и диаграммы воссозданы, исходный код взят дословно со слайдов, за исключением комментариев, которые в некоторых местах были расширены.

Читать далее

Книги для Golang-разработчиков: подборка для программистов с опытом

Время на прочтение4 мин
Охват и читатели10K

Привет, Хабр! Относительно недавно мы уже публиковали подборку книг по Go для начинающих разработчиков. Теперь пришёл черёд изданий для специалистов с опытом. В этой статье рассказываем о книгах для программистов, у которых уже есть опыт работы с Golang и кто готов двигаться дальше. Книги актуальные, написаны как на русском, так и на английском языке. Как всегда, просьба: если у вас есть собственные предпочтения, расскажите о них в комментариях.

Читать далее

Планирование в Go: Часть III — Конкурентность

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели7.9K

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

Читать далее

Книга «Golang для профи: Создаем профессиональные утилиты, параллельные серверы и сервисы, 3-е изд.»

Время на прочтение12 мин
Охват и читатели14K
image Привет, Хаброжители!

Язык Go — это простой и понятный язык для создания высокопроизводительных систем будущего. Используйте Go в реальных производственных системах. В новое издание включены такие темы, как создание серверов и клиентов RESTful, знакомство с дженериками Go и разработка серверов и клиентов gRPC.

Третье издание «Golang для профи» исследует практические возможности Go и описывает такие продвинутые темы, как параллелизм и работа сборщика мусора Go, использование Go с Docker, разработка мощных утилит командной строки, обработка данных в формате JSON (JavaScript Object Notation) и взаимодействие с базами данных. Кроме того, книга дает дополнительные сведения о работе внутренних механизмов Go, знание которых позволит оптимизировать код на Go и использовать типы и структуры данных новыми и необычными способами.

Также охватываются некоторые нюансы и идиомы языка Go, предлагаются упражнения и приводятся ссылки на ресурсы для закрепления полученных знаний.

Станьте опытным программистом на Go, создавая системы и внедряя передовые методы программирования на Go в свои проекты!
Читать дальше →

Приглашаем на Ozon Tech Community Go Meetup

Время на прочтение2 мин
Охват и читатели1.8K

Всем привет! Я – Влад, руководитель группы поисковой оптимизации в Ozon. 

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

Направление отвечает за разработку инструментов, которыми активно пользуются наши покупатели и продавцы. Сюда входит абсолютно всё, что нужно для того, чтобы продавец смог предложить товар или услугу, а покупатель — сделать заказ.

И нам есть чем поделиться. Приглашаем на открытый Ozon Tech Community Go Meetup, 20 сентября в Москве. На митапе подробно обсудим Go и технологии, которые мы используем в разработке маркетплейса Ozon. Узнаем, как устроена разработка доставки и пути совершения покупки. 

Читать далее

Дебажим Golang с помощью Delve

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели25K

В этой статье мы рассмотрим, как дебажить программы, написанные на Golang, с помощью Delve. Delve — это сторонний отладчик для Go, скачать на github по ссылке https://github.com/go-delve/delve. Это хорошая альтернатива отладчику GDB golang (https://golang.org/doc/gdb), так как Delve куда больше возможностей для работы.

Читать далее

Разворачиваем приложение в кластере Kubernetes под управлением Deckhouse c помощью werf

Уровень сложностиСредний
Время на прочтение24 мин
Охват и читатели9.5K

В статье мы рассмотрим, как подступиться к миру Kubernetes в первый раз — развернуть кластер под управлением платформы Deckhouse, разработать и подготовить приложение, развернуть его с помощью утилиты werf, предназначенной для построения рабочего процесса по принципам CI/CD, а также настроить сертификаты для доступа по HTTPS.

Читать далее

Стоит ли идти на курсы IT преподавателем?

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели8.9K

В рамках данного текста я попробую ответить вам и себе на вопрос из заголовка - "Стоит ли идти читать курсы по программированию?" Будет честно, если также я обозначу, что далее вы не найдете ответа на вопрос: стоит ли идти на IT-курсы учиться.

Я решил написать этот текст после четырех лет чтения лекций. Я вел лекции в Otus по курсу GO и несколько раз появлялся на курсе 'Архитектор высоких нагрузок'. Сейчас я преподаю уже не так часто, но меня еще можно услышать/увидеть на курсе Golang.”

Читать далее

Практика Go — Обработка ошибок (2 часть)

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели8.1K

Сборник реальных советов по написанию сопровождаемых программ на языке Go. Автор - Dave Cheney, опытный разработчик на Go и один из его ведущих пропагандистов.

Читать далее

Практика Go — Обработка ошибок (1 часть)

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели10K

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

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

Читать далее

Ближайшие события

Практика Go — Concurrency

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели19K

Сборник реальных советов по написанию сопровождаемых программ на языке Go. Автор - Dave Cheney, опытный разработчик на Go и один из его ведущих пропагандистов.

Читать далее

Чему вы научитесь на бесплатном курсе VK Education по Go?

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6.3K

Привет, Хабр! Меня зовут Антон Сулаев, я руководитель команды бэкенд-разработки Почты Mail.ru в VK и по совместительству ведущий преподаватель онлайн-курса «Разработка веб-сервисов на Golang». Недавно мы рассказали об открытии набора на новые бесплатные курсы VK Education по нескольким востребованным направлениям — программирование на Python и Go, а также техподдержка.

В этой статье мы подробнее расскажем о курсе «Разработка веб-сервисов на Golang», слушатели которого смогут развить навыки программирования на этом языке и научатся использовать его в серверной веб-разработке.

Читать далее

Практика Go — Основы

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели19K

Сборник реальных советов по написанию сопровождаемых программ на языке Go. Автор - Dave Cheney, опытный разработчик на Go и один из его ведущих пропагандистов.

Читать далее

Шпаргалка для собеса по GoLang

Время на прочтение30 мин
Охват и читатели84K

"Правильно заданный вопрос - половина ответа". Осваиваю профессию Prompt Engineering. Это ответы на вопросы. Мопед не мой. Спасибо, Codeium. Не обрабатывал наводящие подвопросы, а надо бы. Но может быть кому-то пригодится и в таком виде.

Читать далее

Как школьник с эпилеписей разбирался, или опыт участия в True Tech Hack

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели1.9K

Все слышали про "эпилепсию", иногда натыкались на видео с пометкой "epilepsy warning". И вроде бы понятно, что это что-то связанное с резкими мерцаниями и переменами цветов, но так ли все просто на самом деле? На True Tech Hack одной из задач учатников стала "Адаптация фильмов для людей с особыми потребностями", а одной из таких потребностей стала возможность фильтровать или изменять сцены, которые могли бы вызвать эпилептические припадки. Именно о решении мною этой задачи я и хочу рассказать далее.

Читать далее

Мультиплатформенность приложений в 2023

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели19K

Где в 2023 году искать настоящую нативную кроссплатформенность?

Я прошел Golang → Rust → C# → Python → Java → Kotlin → Free Pascal, в поисках мультиплатфореммнного GUI, для десктопов и мобильных и кое что нашел.

Многие считают что web или pwa это и есть кроссплатформенность, многие считают, что это Flutter или electron, но что там на самом деле?

Узнать

Лучший regexp для Go. Benchmark c другими ЯП. Сравнение библиотек

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели6.3K

"Не используйте регулярки - иначе вместо 1 проблемы, у вас их станет 2!" - как то так говорят знатоки... А что остается делать непослушным, желающим эффективный поиск по большому количеству шаблонов?

Да, для такой довольно специфичной проблемы существуют крутые решения вроде Ragel или re2c. Тем не менее, для своего проекта мне показалось нецелесообразным пока осваивать эти прекрасные технологии.

В этой статье мы рассмотрим альтернативы стандартной библиотеке для регулярных выражений в Go, проведем их бенчмарк по скорости и потребляемой памяти. А также с практической точки зрения рассмотрим различия между ними.

Читать далее

Вклад авторов