Clean Services in Go
Я облазил весь интернет в поисках шаблона, который позволил бы мне и моей команде использовать единообразный шаблон, чтобы все инженеры знали, где что искать и где быстро освоить, а также возможности тестирования, изоляции, переносимости и многого другого.
Пока что я не нашел паттерна, который мог бы дать мне это в чистом виде, я рассмотрел factory, builder, options, hexagonal и множество других, и ни один из них не дал мне того, что я хочу, но я нашел хорошее место для структурирования паттерна и хотел бы представить его широкой индустрии.
https://medium.com/@B1scuit/clean-services-in-go-63a7cc953841
👉 @golang_lib
Я облазил весь интернет в поисках шаблона, который позволил бы мне и моей команде использовать единообразный шаблон, чтобы все инженеры знали, где что искать и где быстро освоить, а также возможности тестирования, изоляции, переносимости и многого другого.
Пока что я не нашел паттерна, который мог бы дать мне это в чистом виде, я рассмотрел factory, builder, options, hexagonal и множество других, и ни один из них не дал мне того, что я хочу, но я нашел хорошее место для структурирования паттерна и хотел бы представить его широкой индустрии.
https://medium.com/@B1scuit/clean-services-in-go-63a7cc953841
👉 @golang_lib
👍3
Бенчмаркинг кода Go
Если вы уже некоторое время программируете на Go, вам, вероятно, очень нравится инструментарий, который поставляется вместе с ним. Сам язык до краев наполнен такими полезными инструментами, как go test, go fmt, go build и т. д. Мы уже рассказывали о тестировании. Сегодня мы рассмотрим, как можно провести бенчмаркинг нашего Go-кода.
https://dev.to/jpoly1219/benchmarking-go-code-1k23
👉 @golang_lib
Если вы уже некоторое время программируете на Go, вам, вероятно, очень нравится инструментарий, который поставляется вместе с ним. Сам язык до краев наполнен такими полезными инструментами, как go test, go fmt, go build и т. д. Мы уже рассказывали о тестировании. Сегодня мы рассмотрим, как можно провести бенчмаркинг нашего Go-кода.
https://dev.to/jpoly1219/benchmarking-go-code-1k23
👉 @golang_lib
👍2
Production Ready Go Concurrency
Параллелизм - это одна из тех вещей, в которых легко ошибиться, даже при наличии функций параллелизма в Go. Давайте рассмотрим, что следует учитывать при написании продакшена с использованием параллелизма.
Руководство разделено на три части, каждая из которых имеет свою цель. Сначала мы поговорим о "правилах большого пальца", которые обычно являются правильными. Вторая часть посвящена тому, что нужно использовать для написания параллельного кода. И наконец, мы расскажем о том, как написать собственные примитивы параллелизма.
Прежде чем мы начнем, я должен отметить, что у многих из этих рекомендаций есть условия, при которых они не являются лучшим выбором. Основными ситуациями будут производительность и прототипирование.
https://www.storj.io/blog/production-concurrency
👉 @golang_lib
Параллелизм - это одна из тех вещей, в которых легко ошибиться, даже при наличии функций параллелизма в Go. Давайте рассмотрим, что следует учитывать при написании продакшена с использованием параллелизма.
Руководство разделено на три части, каждая из которых имеет свою цель. Сначала мы поговорим о "правилах большого пальца", которые обычно являются правильными. Вторая часть посвящена тому, что нужно использовать для написания параллельного кода. И наконец, мы расскажем о том, как написать собственные примитивы параллелизма.
Прежде чем мы начнем, я должен отметить, что у многих из этих рекомендаций есть условия, при которых они не являются лучшим выбором. Основными ситуациями будут производительность и прототипирование.
https://www.storj.io/blog/production-concurrency
👉 @golang_lib
👍4
📌Должность: Ведущий разработчик Golang
Форма занятости: Полная занятость
Место работы: Удаленно
Заработная плата: От 4,000 до 6000 долларов США в месяц
Мы дружный коллектив серийных предпринимателей, за плечами которых более 5 успешных стартапов на мировом рынке.
В нашей команде открыта вакансия Ведущего разработчика Golang, который умеет выстраивать архитектуру проекта, мыслит как разработчик, и не просто "специалист с YouTube". Вы будете работать над передовым проектом по автоматизации социальной активности и анализу поведения.
Основные обязанности:
- Руководство разработкой архитектуры проекта
- Разработка бэкенда нашего продукта
- Руководство командой разработчиков
- Участие во всех фазах жизненного цикла разработки
- Перевод сложных функциональных и технических требований в подробную архитектуру и дизайн
Требования:
- Опыт разработки на Golang не менее 4 лет
- Опыт работы с Go, RabbitMQ, MySQL, и Redis
- Знание различных дизайнов, архитектурных шаблонов и инструментов
- Сильные навыки решения проблем и отладки
- Навыки письменной и устной коммуникации
- Умение эффективно руководить командой и выдвигать проекты вперед
Если вы опытный разработчик Golang и ищете роль руководителя, мы хотели бы с вами встретиться. Для получения дополнительной информации, пожалуйста, свяжитесь с @miminator.
#go #golang #lead
Форма занятости: Полная занятость
Место работы: Удаленно
Заработная плата: От 4,000 до 6000 долларов США в месяц
Мы дружный коллектив серийных предпринимателей, за плечами которых более 5 успешных стартапов на мировом рынке.
В нашей команде открыта вакансия Ведущего разработчика Golang, который умеет выстраивать архитектуру проекта, мыслит как разработчик, и не просто "специалист с YouTube". Вы будете работать над передовым проектом по автоматизации социальной активности и анализу поведения.
Основные обязанности:
- Руководство разработкой архитектуры проекта
- Разработка бэкенда нашего продукта
- Руководство командой разработчиков
- Участие во всех фазах жизненного цикла разработки
- Перевод сложных функциональных и технических требований в подробную архитектуру и дизайн
Требования:
- Опыт разработки на Golang не менее 4 лет
- Опыт работы с Go, RabbitMQ, MySQL, и Redis
- Знание различных дизайнов, архитектурных шаблонов и инструментов
- Сильные навыки решения проблем и отладки
- Навыки письменной и устной коммуникации
- Умение эффективно руководить командой и выдвигать проекты вперед
Если вы опытный разработчик Golang и ищете роль руководителя, мы хотели бы с вами встретиться. Для получения дополнительной информации, пожалуйста, свяжитесь с @miminator.
#go #golang #lead
👍5
Создание и тестирование REST API на Go с помощью Gorilla Mux и PostgreSQL
В этом уроке будет показано, как можно создать REST API на базе PostgreSQL в Go, используя Gorilla Mux для маршрутизации. В уроке будет использована разработка, управляемая тестами, и в завершение будет рассказано, как можно постоянно тестировать базу данных в процессе разработки.
https://semaphoreci.com/community/tutorials/building-and-testing-a-rest-api-in-go-with-gorilla-mux-and-postgresql
👉 @golang_lib
В этом уроке будет показано, как можно создать REST API на базе PostgreSQL в Go, используя Gorilla Mux для маршрутизации. В уроке будет использована разработка, управляемая тестами, и в завершение будет рассказано, как можно постоянно тестировать базу данных в процессе разработки.
https://semaphoreci.com/community/tutorials/building-and-testing-a-rest-api-in-go-with-gorilla-mux-and-postgresql
👉 @golang_lib
👍3👎1
Создаем Pong в вашем терминале
Узнайте, как создать игру Pong в терминале с помощью Golang. Earthly гарантирует последовательную сборку вашей игры Pong на базе Go в любой среде разработки.
Часть 1 https://earthly.dev/blog/pongo/
Часть 2 https://earthly.dev/blog/pong-part2/
👉 @golang_lib
Узнайте, как создать игру Pong в терминале с помощью Golang. Earthly гарантирует последовательную сборку вашей игры Pong на базе Go в любой среде разработки.
Часть 1 https://earthly.dev/blog/pongo/
Часть 2 https://earthly.dev/blog/pong-part2/
👉 @golang_lib
👍3🔥1
Создание безопасного сервиса обмена заметками в Go
В этой статье я буду использовать Go для разработки небольшого веб-сервиса, который может быть использован людьми или организациями для обмена секретами в несколько более приватной форме. У каждого из нас иногда возникает необходимость поделиться секретом с коллегой или другим человеком. Это может быть API-ключ, пароль или даже конфиденциальные данные клиента. Когда мы делимся секретами через такие каналы, как Slack, Teams или Email, мы, по сути, отправляем секрет на серверы совершенно незнакомого человека. Мы не контролируем, как обрабатываются данные, как долго они будут храниться на серверах третьих лиц и кто именно имеет к ним доступ. Передача секретов напрямую через Slack или Teams может иметь и другие нежелательные побочные эффекты. Например, новые сотрудники, добавленные в существующий канал, могут обнаружить ранее переданные конфиденциальные данные в истории чатов канала. Это уже само по себе может быть нарушением безопасности, если эти сотрудники не были заранее допущены к работе. Общие секреты и/или конфиденциальные данные никогда не должны передаваться напрямую через (ненадежные) сторонние каналы.
https://dusted.codes/building-a-secure-note-sharing-service-in-go
👉 @golang_lib
В этой статье я буду использовать Go для разработки небольшого веб-сервиса, который может быть использован людьми или организациями для обмена секретами в несколько более приватной форме. У каждого из нас иногда возникает необходимость поделиться секретом с коллегой или другим человеком. Это может быть API-ключ, пароль или даже конфиденциальные данные клиента. Когда мы делимся секретами через такие каналы, как Slack, Teams или Email, мы, по сути, отправляем секрет на серверы совершенно незнакомого человека. Мы не контролируем, как обрабатываются данные, как долго они будут храниться на серверах третьих лиц и кто именно имеет к ним доступ. Передача секретов напрямую через Slack или Teams может иметь и другие нежелательные побочные эффекты. Например, новые сотрудники, добавленные в существующий канал, могут обнаружить ранее переданные конфиденциальные данные в истории чатов канала. Это уже само по себе может быть нарушением безопасности, если эти сотрудники не были заранее допущены к работе. Общие секреты и/или конфиденциальные данные никогда не должны передаваться напрямую через (ненадежные) сторонние каналы.
https://dusted.codes/building-a-secure-note-sharing-service-in-go
👉 @golang_lib
👍4
Конкурентность в Go: пять примеров
Я Артем Чаадаев, Golang-разработчик в МТС Digital. Традиционно считается, что главная фича Go – это «многопоточность из коробки». Этому посвящено немало статей, авторы которых показывают, какие есть примитивы конкурентности в рамках языка. В процессе изучения этих статей я понял, что на начальном этапе изучения языка мне тяжело начать применять конкурентный код не имея каких-то простых наглядных примеров.
Поэтому я собрал в одной статье наиболее распространенные примеры использования конкурентного кода в Go на основе личного опыта.
https://habr.com/ru/companies/ru_mts/articles/680324/
👉 @golang_lib
Я Артем Чаадаев, Golang-разработчик в МТС Digital. Традиционно считается, что главная фича Go – это «многопоточность из коробки». Этому посвящено немало статей, авторы которых показывают, какие есть примитивы конкурентности в рамках языка. В процессе изучения этих статей я понял, что на начальном этапе изучения языка мне тяжело начать применять конкурентный код не имея каких-то простых наглядных примеров.
Поэтому я собрал в одной статье наиболее распространенные примеры использования конкурентного кода в Go на основе личного опыта.
https://habr.com/ru/companies/ru_mts/articles/680324/
👉 @golang_lib
👍11
Полное руководство по линтингу программ на Go
Линтинг - это процесс выявления закономерностей в коде и составления отчетов о них с целью улучшения согласованности и выявления ошибок на ранних этапах разработки. Это особенно полезно при работе в команде, так как помогает сделать весь код одинаковым, независимо от того, кто его пишет, что снижает сложность и упрощает сопровождение кода. В этой статье я продемонстрирую комплексную настройку линтинга для программ на Go и расскажу о том, как лучше всего внедрить ее в существующий проект.
https://freshman.tech/linting-golang/
👉 @golang_lib
Линтинг - это процесс выявления закономерностей в коде и составления отчетов о них с целью улучшения согласованности и выявления ошибок на ранних этапах разработки. Это особенно полезно при работе в команде, так как помогает сделать весь код одинаковым, независимо от того, кто его пишет, что снижает сложность и упрощает сопровождение кода. В этой статье я продемонстрирую комплексную настройку линтинга для программ на Go и расскажу о том, как лучше всего внедрить ее в существующий проект.
https://freshman.tech/linting-golang/
👉 @golang_lib
👍5
Media is too big
VIEW IN TELEGRAM
Пишем gRPC сервис на Go - Сервис авторизации / УЛЬТИМАТИВНЫЙ гайд
- Напишем контракт protobuf, разберемся с кодогенерацией
- Научимся работать с ошибками и логами
- Настроим миграции для БД
- Настроим автоматический деплой через GitHub Actions, напишем для этого workflow
- и др.
00:00 Вступление
01:00 Мой Телеграм-канал, зачем на него подписываться
02:04 Теоретический ликбез
06:49 SSO или Auth?
07:58 Авторизация и аутентификация - в чем разница?
08:31 Архитектура авторизации в нашем сервисе
09:51 Что такое JWT и зачем он нужен?
14:01 Архитектура приложения
16:33 Protobuf контракт
31:24 Пишем SSO: каркас и структура проекта
38:03 Конфигурация приложения
52:32 Настраиваем логгер - log.slog
01:03:56 gRPC-сервер и хэндлеры
01:18:48 Запуск и проверка приложения
01:22:04 Graceful shutdown
01:27:08 Хэндлер Login()
01:34:28 Хэндлер Register()
01:36:01 Хэндлер IsAdmin()
01:36:53 Сервисный слой
01:46:27 Метод RegisterNewUser() и хэширование паролей
01:52:05 Метод Login() и сравнение хэшей паролей
01:58:00 Создание JWT-токена
02:04:45 Миграции базы данных
02:23:05 Слой работы с данными: реализация Storage
02:32:09 Собираем все компоненты воедино
02:37:11 Пишем функциональные тесты
03:05:22 Интеграция с другим сервисом: URL Shortener
03:15:05 Покупка облачного сервера для деплоя
03:19:16 GitHub Actions: настраиваем автоматический деплой
03:36:53 Тестируем задеплоенный сервис
03:41:23 Заключение
03:41:35 Наше сообщество - Gopher Club
03:43:16 Как поддержать развитие канала
Исходный код https://github.com/GolangLessons/sso/tree/guide-version
источник
👉 @golang_lib
- Напишем контракт protobuf, разберемся с кодогенерацией
- Научимся работать с ошибками и логами
- Настроим миграции для БД
- Настроим автоматический деплой через GitHub Actions, напишем для этого workflow
- и др.
00:00 Вступление
01:00 Мой Телеграм-канал, зачем на него подписываться
02:04 Теоретический ликбез
06:49 SSO или Auth?
07:58 Авторизация и аутентификация - в чем разница?
08:31 Архитектура авторизации в нашем сервисе
09:51 Что такое JWT и зачем он нужен?
14:01 Архитектура приложения
16:33 Protobuf контракт
31:24 Пишем SSO: каркас и структура проекта
38:03 Конфигурация приложения
52:32 Настраиваем логгер - log.slog
01:03:56 gRPC-сервер и хэндлеры
01:18:48 Запуск и проверка приложения
01:22:04 Graceful shutdown
01:27:08 Хэндлер Login()
01:34:28 Хэндлер Register()
01:36:01 Хэндлер IsAdmin()
01:36:53 Сервисный слой
01:46:27 Метод RegisterNewUser() и хэширование паролей
01:52:05 Метод Login() и сравнение хэшей паролей
01:58:00 Создание JWT-токена
02:04:45 Миграции базы данных
02:23:05 Слой работы с данными: реализация Storage
02:32:09 Собираем все компоненты воедино
02:37:11 Пишем функциональные тесты
03:05:22 Интеграция с другим сервисом: URL Shortener
03:15:05 Покупка облачного сервера для деплоя
03:19:16 GitHub Actions: настраиваем автоматический деплой
03:36:53 Тестируем задеплоенный сервис
03:41:23 Заключение
03:41:35 Наше сообщество - Gopher Club
03:43:16 Как поддержать развитие канала
Исходный код https://github.com/GolangLessons/sso/tree/guide-version
источник
👉 @golang_lib
👍18
Go — 100 вопросов/заданий с собеседований
В этой статье разберём 100 вопросов, они покрывают львиную долю того, что могут спросить на собеседовании джуниор Go-разработчика с практически любой специализацией. Конечно же, в реальной работе на Go требуются немного другие скиллы, чем умение быстро ответить на любой вопрос. Однако сложилась добрая традиция делать из собеседования викторину с главным призом в виде трудоустройства — к этому нужно быть готовым.
Тем не менее, я уверен, что эта статья будет очень полезна и начинающим, и бывалым гоферам. К каждому вопросу я привёл подробный ответ, поэтому можно использовать этот список как справочник с самой основной теорией по Go. Вперемешку с вопросами также и задачи, есть простые/средние/сложные. Некоторые из этих заданий прямо классические и 99% попадутся на собесе, так что полезно будет их прорешать.
https://habr.com/ru/articles/786826/
👉 @golang_lib
В этой статье разберём 100 вопросов, они покрывают львиную долю того, что могут спросить на собеседовании джуниор Go-разработчика с практически любой специализацией. Конечно же, в реальной работе на Go требуются немного другие скиллы, чем умение быстро ответить на любой вопрос. Однако сложилась добрая традиция делать из собеседования викторину с главным призом в виде трудоустройства — к этому нужно быть готовым.
Тем не менее, я уверен, что эта статья будет очень полезна и начинающим, и бывалым гоферам. К каждому вопросу я привёл подробный ответ, поэтому можно использовать этот список как справочник с самой основной теорией по Go. Вперемешку с вопросами также и задачи, есть простые/средние/сложные. Некоторые из этих заданий прямо классические и 99% попадутся на собесе, так что полезно будет их прорешать.
https://habr.com/ru/articles/786826/
👉 @golang_lib
👍5❤3🔥2
Простые приемы экономии памяти в Go
Если только вы не создаете прототип сервиса, вам, вероятно, небезразлично, сколько памяти использует ваше приложение. При меньшем объеме памяти снижаются затраты на инфраструктуру, а масштабирование становится немного проще/замедленнее. Несмотря на то, что Go известен тем, что не потребляет много памяти, есть способы еще больше снизить ее потребление. Некоторые из них требуют большого количества рефакторинга, но многие очень просты в исполнении.
https://www.ribice.ba/golang-memory-savings/
👉 @golang_lib
Если только вы не создаете прототип сервиса, вам, вероятно, небезразлично, сколько памяти использует ваше приложение. При меньшем объеме памяти снижаются затраты на инфраструктуру, а масштабирование становится немного проще/замедленнее. Несмотря на то, что Go известен тем, что не потребляет много памяти, есть способы еще больше снизить ее потребление. Некоторые из них требуют большого количества рефакторинга, но многие очень просты в исполнении.
https://www.ribice.ba/golang-memory-savings/
👉 @golang_lib
👍2
Go: точечная вставка значения в структуру
Пакетом dot решается проблема добавления данных во вложенных структурах, ассоциативных массивах, срезах и каналах любой сложности и различных типов данных. Если точный путь к требуемому полю известен, но на этом пути имеется карта, нужно сначала корректно ее инициализировать, проверить наличие такого ключа, а затем вставить значение.
Для простой структуры этот пакет не нужен, а вот для иерархии посложнее проект dot Golang с открытым исходным кодом придется кстати.
https://medium.com/@mowshon/go-insert-the-value-into-the-structure-with-a-dot-5e806ae96455
👉 @golang_lib
Пакетом dot решается проблема добавления данных во вложенных структурах, ассоциативных массивах, срезах и каналах любой сложности и различных типов данных. Если точный путь к требуемому полю известен, но на этом пути имеется карта, нужно сначала корректно ее инициализировать, проверить наличие такого ключа, а затем вставить значение.
Для простой структуры этот пакет не нужен, а вот для иерархии посложнее проект dot Golang с открытым исходным кодом придется кстати.
https://medium.com/@mowshon/go-insert-the-value-into-the-structure-with-a-dot-5e806ae96455
👉 @golang_lib
👍1👎1
Игрушечный сервер удаленного входа в систему
Реализация программы, похожей на крошечный ssh-сервер, но без защиты. Код можете найти на github здесь, а я объясню, как она работает, в этой статье.
https://jvns.ca/blog/2022/07/28/toy-remote-login-server/
👉 @golang_lib
Реализация программы, похожей на крошечный ssh-сервер, но без защиты. Код можете найти на github здесь, а я объясню, как она работает, в этой статье.
https://jvns.ca/blog/2022/07/28/toy-remote-login-server/
👉 @golang_lib
👍2
Делаем RPG на Go: часть 0
В этой серии статей мы будем изучать движок Ebitengine и создадим RPG в процессе.
Что от вас ожидается:
Вам интересна разработка игр на Go
Вы уже владеете этим языком программирования
Никаких шуточек про название движка Ebitengine
Это не курс по программированию на Go, а я не буду убеждать вас, что разработка игр на Go — нечто великолепное. Однако, если вам любопытна эта тема, то мне есть, чем с вами поделиться.
https://habr.com/ru/articles/791192/
👉 @golang_lib
В этой серии статей мы будем изучать движок Ebitengine и создадим RPG в процессе.
Что от вас ожидается:
Вам интересна разработка игр на Go
Вы уже владеете этим языком программирования
Никаких шуточек про название движка Ebitengine
Это не курс по программированию на Go, а я не буду убеждать вас, что разработка игр на Go — нечто великолепное. Однако, если вам любопытна эта тема, то мне есть, чем с вами поделиться.
https://habr.com/ru/articles/791192/
👉 @golang_lib
👍4
Gotify/server
Простой сервер для отправки и получения сообщений в реальном времени по WebSocket. (Включает элегантный web-ui)
Нам нужен был простой сервер для отправки и получения сообщений (в реальном времени по WebSocket). Для этого существовало не так много проектов с открытым исходным кодом, а большинство существующих были заброшены. Также одним из требований была возможность самостоятельного хостинга. Мы знаем, что существует множество бесплатных и коммерческих push-сервисов.
Фичи
отправка сообщений через REST-API
принимать сообщения через WebSocket
управление пользователями, клиентами и приложениями
Плагины
Web-UI -> ./ui
CLI для отправки сообщений -> gotify/cli
Android-приложение -> gotify/android
https://github.com/gotify/server
👉 @golang_lib
Простой сервер для отправки и получения сообщений в реальном времени по WebSocket. (Включает элегантный web-ui)
Нам нужен был простой сервер для отправки и получения сообщений (в реальном времени по WebSocket). Для этого существовало не так много проектов с открытым исходным кодом, а большинство существующих были заброшены. Также одним из требований была возможность самостоятельного хостинга. Мы знаем, что существует множество бесплатных и коммерческих push-сервисов.
Фичи
отправка сообщений через REST-API
принимать сообщения через WebSocket
управление пользователями, клиентами и приложениями
Плагины
Web-UI -> ./ui
CLI для отправки сообщений -> gotify/cli
Android-приложение -> gotify/android
https://github.com/gotify/server
👉 @golang_lib
👍4
Как управлять секретами приложений Go с помощью Vault
Поскольку современное программное обеспечение очень сложное, оно должно использовать секреты и конфиденциальную информацию, такую как ключи API, токены, а также устаревшие имена пользователей и пароли для подключения к удаленным серверам и базам данных.
Если раньше их можно было хранить вместе с самим кодом, то сейчас - особенно в свете движения за 12-факторные приложения - это уже не так. Хранить любую конфиденциальную информацию в коде считается дурным тоном - и на то есть веские причины.
В связи с этим был разработан целый ряд подходов и инструментов, позволяющих не выносить учетные данные за пределы кодовых баз, обеспечивая их безопасность и доступ к коду по мере необходимости.
https://www.twilio.com/en-us/blog/manage-go-application-secrets-using-vault
👉 @golang_lib
Поскольку современное программное обеспечение очень сложное, оно должно использовать секреты и конфиденциальную информацию, такую как ключи API, токены, а также устаревшие имена пользователей и пароли для подключения к удаленным серверам и базам данных.
Если раньше их можно было хранить вместе с самим кодом, то сейчас - особенно в свете движения за 12-факторные приложения - это уже не так. Хранить любую конфиденциальную информацию в коде считается дурным тоном - и на то есть веские причины.
В связи с этим был разработан целый ряд подходов и инструментов, позволяющих не выносить учетные данные за пределы кодовых баз, обеспечивая их безопасность и доступ к коду по мере необходимости.
https://www.twilio.com/en-us/blog/manage-go-application-secrets-using-vault
👉 @golang_lib
👍2👎1
Apress_Pro_Go_The_Complete_Guide_to_Programming_Reliable_and_Efficient.pdf
17.1 MB
Pro Go: The Complete Guide to Programming Reliable and Efficient Software Using Golang
Автор: Adam Freeman (2022)
Автор бестселлеров Адам Фриман объясняет, как получить максимальную отдачу от Go, начиная с основ и заканчивая самыми продвинутыми и сложными функциями языка. Вы узнаете, как Go строит простую и согласованную систему типов для создания комплексной и продуктивной разработки, позволяющей создавать быстрые и надежные приложения, работающие на разных платформах.
Во время чтения книги вы:
✔️Получите четкое представление о языке и инструментах Go;
✔️Получите глубокие знания стандартной библиотеки Go;
✔️Используете Go для одновременных/параллельных задач;
✔️Используете Go для клиентской и серверной разработки.
👉 @golang_lib
Автор: Adam Freeman (2022)
Автор бестселлеров Адам Фриман объясняет, как получить максимальную отдачу от Go, начиная с основ и заканчивая самыми продвинутыми и сложными функциями языка. Вы узнаете, как Go строит простую и согласованную систему типов для создания комплексной и продуктивной разработки, позволяющей создавать быстрые и надежные приложения, работающие на разных платформах.
Во время чтения книги вы:
✔️Получите четкое представление о языке и инструментах Go;
✔️Получите глубокие знания стандартной библиотеки Go;
✔️Используете Go для одновременных/параллельных задач;
✔️Используете Go для клиентской и серверной разработки.
👉 @golang_lib
👍4👎1
Golang: обработка десятков тысяч одновременных HTTP-запросов даже на Raspberry Pi
Привет! Сегодня мы будем развлекаться с одновременными HTTP-запросами и тем, как обрабатывать действительно большое их количество с минимальным потреблением оперативной памяти. Чтобы сделать этот процесс безумным, я выберу RaspberryPi 4B в качестве сервера и Macbook Air в качестве клиента.
https://waclawthedev.medium.com/golang-handling-tens-of-thousands-of-simultaneous-http-requests-even-on-raspberry-pi-5115ca9b152d
👉 @golang_lib
Привет! Сегодня мы будем развлекаться с одновременными HTTP-запросами и тем, как обрабатывать действительно большое их количество с минимальным потреблением оперативной памяти. Чтобы сделать этот процесс безумным, я выберу RaspberryPi 4B в качестве сервера и Macbook Air в качестве клиента.
https://waclawthedev.medium.com/golang-handling-tens-of-thousands-of-simultaneous-http-requests-even-on-raspberry-pi-5115ca9b152d
👉 @golang_lib
👍4🔥2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Устранение ошибок, связанных с исчерпанием памяти, в моем веб-приложении Golang
В начале этого года я создал приложение с открытым исходным кодом под названием PicoShare. Это простое веб-приложение на языке Golang для обмена файлами. Я использую его для отправки файлов, которые слишком велики для вложений в электронную почту, но я не хочу, чтобы получатель имел дело с Dropbox или Google Drive.
https://mtlynch.io/notes/picoshare-perf/
👉 @golang_lib
В начале этого года я создал приложение с открытым исходным кодом под названием PicoShare. Это простое веб-приложение на языке Golang для обмена файлами. Я использую его для отправки файлов, которые слишком велики для вложений в электронную почту, но я не хочу, чтобы получатель имел дело с Dropbox или Google Drive.
https://mtlynch.io/notes/picoshare-perf/
👉 @golang_lib
👍1🔥1