Свежие разборы проектов на Go с канала «Good reviewer - Bad reviewer» (CASPaxos, riot + typo, molecule) и выпуски подкаста Generic Talks о языке Go и сопутствующих темах от этих же ребят:
– Go 1.14 и что он нам несёт
– Таймеры, почему языки такие, GopherСon
– Live show про GolangCI-Lint, настройку линтеров на CI, дизайн API под батчинг по дефолту, кеширование и другие вещи
– Что же там происходит в CPU
– Zig, LLVM и как всегда Go
– Go 1.14 и что он нам несёт
– Таймеры, почему языки такие, GopherСon
– Live show про GolangCI-Lint, настройку линтеров на CI, дизайн API под батчинг по дефолту, кеширование и другие вещи
– Что же там происходит в CPU
– Zig, LLVM и как всегда Go
The-Go-Security-Checklist.pdf
709.2 KB
Сборник лучших практик, которые помогут вам лучше понять приоритеты безопасности при разработке на Golang.
Учимся создавать приложения с помощью Golang и нереляционной СУБД MongoDB на основе базовых операций CRUD, API-интерфейсов RESTful и GraphQL.
https://proglib.io/w/73ce2e11
https://proglib.io/w/73ce2e11
YouTube
Developing Applications with Golang and MongoDB
Learn about how to develop applications with MongoDB and the Go programming language (Golang) through basic CRUD operations, RESTful APIs, and GraphQL with MongoDB Realm.
This video was recorded during the Tracy Developer Meetup for an event found at ht…
This video was recorded during the Tracy Developer Meetup for an event found at ht…
Почему вы не смотрите курсы? Что вам в них не нравится?
Логирование в Golang: выбор системы и ее использование
Язык Go имеет встроенные функции, которые облегчают разработчикам реализацию логирования. Сторонние разработчики также создали дополнительные инструменты для упрощения логирования. Давайте разберемся, какая разница между ними и какой вариант предпочтительнее выбрать.
https://proglib.io/w/273f74dd
Язык Go имеет встроенные функции, которые облегчают разработчикам реализацию логирования. Сторонние разработчики также создали дополнительные инструменты для упрощения логирования. Давайте разберемся, какая разница между ними и какой вариант предпочтительнее выбрать.
https://proglib.io/w/273f74dd
Honeybadger Developer Blog
Logging in Go: Choosing a System and Using it
Go has built-in features to make it easier for programmers to implement logging. Third parties have also built additional tools to make logging easier. What's the difference between them? Which should you choose? In t...
Golang с точки зрения программиста на C
Автор статьи делится мнением, что чем больше вы экспериментируете с Go, тем меньше он будет ощущаться как компилируемый язык (C или C++), и тем больше он будет ощущаться как интерпретируемый язык (Python или Ruby).
https://proglib.io/w/77908202
Автор статьи делится мнением, что чем больше вы экспериментируете с Go, тем меньше он будет ощущаться как компилируемый язык (C или C++), и тем больше он будет ощущаться как интерпретируемый язык (Python или Ruby).
https://proglib.io/w/77908202
PullRequest
Golang from a C Programmer's Perspective
PullRequest is a platform for code review, built for teams of all sizes. Thousands of on-demand vetted, expert engineers and backed by AI.
Пишем простую командную оболочку на Go
В статье описан процесс разработки простой оболочки для UNIX-подобных операционных систем на языке Go, и она займет всего около 60 строк кода.
https://proglib.io/w/80f1e402
В статье описан процесс разработки простой оболочки для UNIX-подобных операционных систем на языке Go, и она займет всего около 60 строк кода.
https://proglib.io/w/80f1e402
Помните пост о TinyGo? Тут подробно описан процесс запуска Golang в браузере с помощью WebAssembly и TinyGo в рамках реализации игры в шахматы: https://proglib.io/w/aafc6df4
productiongo.pdf
1.3 MB
Production Go
Build modern, production-ready systems in Go (2018)
Автор(ы): Herman Schaaf и Shawn Smith
Целью книги является предоставление знаний для написания готового к работе сервиса на Go. Это означает не только написание первоначальной реализации, но и надежное развертывание, а также мониторинг ее производительности.
Книга предназначена для аудитории, которая разбирается в основных темах информатики и практике разработки программного обеспечения. Она охватывает все важные аспекты работы production-системы, включая такие сложные темы, как профилирование использования памяти Go-программой, развертывание и мониторинг приложений, написанных на Go, написание идиоматических тестов и многое другое.
Build modern, production-ready systems in Go (2018)
Автор(ы): Herman Schaaf и Shawn Smith
Целью книги является предоставление знаний для написания готового к работе сервиса на Go. Это означает не только написание первоначальной реализации, но и надежное развертывание, а также мониторинг ее производительности.
Книга предназначена для аудитории, которая разбирается в основных темах информатики и практике разработки программного обеспечения. Она охватывает все важные аспекты работы production-системы, включая такие сложные темы, как профилирование использования памяти Go-программой, развертывание и мониторинг приложений, написанных на Go, написание идиоматических тестов и многое другое.
Качественная подборка статей о тестировании приложений на языке Go, в которой вы увидите не какие-то абстрактные вещи и доводы, что тестирование — это полезно, а реальные примеры написания тестов под прикладные задачи.
https://proglib.io/w/84df9c82
https://proglib.io/w/84df9c82
Статическая компиляция программ на Go
Go создает статические двоичные файлы по умолчанию, если только вы не используете cgo для вызова кода C, в этом случае он создаст динамически связанную библиотеку. Оказывается, что использование cgo является более распространенным явлением, чем предполагают многие, поскольку пакеты os/user и net по умолчанию используют cgo, поэтому при импорте одного (прямого или косвенного) получится нестатический двоичный файл.
https://proglib.io/w/6907fb2b
Go создает статические двоичные файлы по умолчанию, если только вы не используете cgo для вызова кода C, в этом случае он создаст динамически связанную библиотеку. Оказывается, что использование cgo является более распространенным явлением, чем предполагают многие, поскольку пакеты os/user и net по умолчанию используют cgo, поэтому при импорте одного (прямого или косвенного) получится нестатический двоичный файл.
https://proglib.io/w/6907fb2b
www.arp242.net
Statically compiling Go programs
Репозиторий, в котором собраны имплементации и демонстрации самых популярных алгоритмов на языке Go: https://proglib.io/w/d2c49e71
GitHub
GitHub - TheAlgorithms/Go: Algorithms and Data Structures implemented in Go for beginners, following best practices.
Algorithms and Data Structures implemented in Go for beginners, following best practices. - TheAlgorithms/Go
Во время самоизоляции многие работодатели наконец-то признали, что удалённые работники вполне эффективны. Пути назад нет — бизнес идёт туда, где ему выгодно, и скоро всё меньше рабочих мест будут требовать физического присутствия работника в офисе.
Мы предлагаем встретить эти перемены во всеоружии. С 14 по 16 апреля GeekBrains проводит серию бесплатных вебинаров «Все об удалёнке: как работать эффективно и зарабатывать»
Рассмотрим весь путь фрилансера: от принятия решения и выбора биржи, до навыков удалённого делегирования задач и организации работы команды. Пройдёмся по наиболее часто задаваемым вопросам, осветим неочевидные аспекты и проблемы работы из дома.
Переходите по ссылке, чтобы узнать больше и записаться: https://proglib.io/w/b6edc487
Мы предлагаем встретить эти перемены во всеоружии. С 14 по 16 апреля GeekBrains проводит серию бесплатных вебинаров «Все об удалёнке: как работать эффективно и зарабатывать»
Рассмотрим весь путь фрилансера: от принятия решения и выбора биржи, до навыков удалённого делегирования задач и организации работы команды. Пройдёмся по наиболее часто задаваемым вопросам, осветим неочевидные аспекты и проблемы работы из дома.
Переходите по ссылке, чтобы узнать больше и записаться: https://proglib.io/w/b6edc487
Практическая статья о том, как справиться с разношерстностью микросервисов на Go. Пишет Алексей Партилов — техлид команды web-разработки в компании Lamoda.
https://proglib.io/w/eeeccdf0
https://proglib.io/w/eeeccdf0
Хабр
Унифицируй это: как Lamoda делает единообразными свои Go сервисы
Мы широко используем микросервисную архитектуру, хоть и не считаем ее панацеей, и чуть больше 2 лет назад начали переходить на язык Go. Он сравнительно прост и,...
Серия статей о реализации алгоритма Raft (алгоритм для решения задач консенсуса в сети ненадёжных вычислений, используется в Kubernetes) на языке Go:
– Introduction
– Elections
– Commands and log replication
– Persistence and optimizations
– Introduction
– Elections
– Commands and log replication
– Persistence and optimizations
Gops — это диагностический инструмент от Google, который предназначен для отображения и диагностики процессов Go, которые в данный момент выполняются в вашей системе. Расширенные функции, такие как создание отчетов о статистике памяти, отображение трассировки стека, получение профилей pprof и трассировок выполнения, доступны с помощью диагностического агента gops.
Статья: https://proglib.io/w/5bb4c168
Репозиторий: https://proglib.io/w/ecb55f82
Статья: https://proglib.io/w/5bb4c168
Репозиторий: https://proglib.io/w/ecb55f82
Medium
Go: How Does gops Interact with the Runtime?
ℹ️ This article is based on Go 1.13 and gops 0.3.7.
Разбираемся с интернированием строк в Go (метод хранения только одной копии каждого отдельного строкового значения, которое должно быть неизменным): https://proglib.io/w/ea0e6a63
commaok.xyz
Interning strings in Go
This blog post covers string interning in Go.
What is a string? In Go, a string is a (possibly empty) immutable sequence of bytes. The critical word here for our purposes is immutable. Because byte slices are mutable, converting between string and []byte…
What is a string? In Go, a string is a (possibly empty) immutable sequence of bytes. The critical word here for our purposes is immutable. Because byte slices are mutable, converting between string and []byte…
Что выведет программа?
Anonymous Poll
38%
0 1 2 | 0 0 0
34%
0 1 2 | 3 4 5
27%
iota iota iota | iota iota iota
Правильный ответ: 0 1 2 | 0 0 0
В первом случае (A, B, C) у нас базовый пример, когда константа увеличивается от 0 на единицу, а в одной строке все константы получат одинаковые значения (D, E, F).
Обратите внимание, что в примере используется предварительно объявленный идентификатор iota, который представляет последовательные не типизированные целочисленные константы. Go компилятор запускает iota от 0 и увеличивается на единицу для каждой следующей константы. Значение определяется во время компиляции, а не времени выполнения.
Резюмируем:
– ключевое слово iota представляет последовательные целочисленные константы;
– оно обнуляется каждый раз, когда const появляется в исходном коде;
– оно увеличивается после каждой спецификации const.
В первом случае (A, B, C) у нас базовый пример, когда константа увеличивается от 0 на единицу, а в одной строке все константы получат одинаковые значения (D, E, F).
Обратите внимание, что в примере используется предварительно объявленный идентификатор iota, который представляет последовательные не типизированные целочисленные константы. Go компилятор запускает iota от 0 и увеличивается на единицу для каждой следующей константы. Значение определяется во время компиляции, а не времени выполнения.
Резюмируем:
– ключевое слово iota представляет последовательные целочисленные константы;
– оно обнуляется каждый раз, когда const появляется в исходном коде;
– оно увеличивается после каждой спецификации const.