Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Изучаем Golang
№1. Установка Go, выбор IDE, первая программа
№2. Переменные, константы. Типы. Области видимости. Преобразование типов
№3. Функции (основы)
№4. Функции (advanced)
№5. Условный оператор (if/else). Логические операторы
№6. Циклы (for, for как while). Инкремент. Декремент
№7. Циклы (2). Continue. Break
№8. Switch .. case
№9. Указатели (pointers)
№10. Указатели (2). Usecases
№11. Кастомные типы. Структуры(1)
№12. Методы
№13. Интерфейсы
№14. Структуры (2) Встраивание типов (Embedding)
№15. Массивы (arrays). Слайсы (slices)(1)
№16. Слайсы (slices)(2)
№17. Слайсы (slices)(3)
№18. Мапы (maps)
№19. Concurrency (1). Goroutines. Defer. Panic/Recover
№20. Concurrency (2). WaitGroup. Data Race. Muxtex/RWMutex
№21. Concurrency (3). Nil, Unbuffered, Buffered channels. Deadlock.
№22. Concurrency (4). Select. Graceful shutdown.
№23. Concurrency (5). Context
№24. Concurrency (6). ErrGroup. Канал как Mutex. Промисы на каналах
№25. Concurrency (7). Atomic
№26. Дженерики(Generics)
№27. Пакеты (Packages)
№28. Модули (Modules)
Все видео доступны на youtube
👉 @golang_lib
№1. Установка Go, выбор IDE, первая программа
№2. Переменные, константы. Типы. Области видимости. Преобразование типов
№3. Функции (основы)
№4. Функции (advanced)
№5. Условный оператор (if/else). Логические операторы
№6. Циклы (for, for как while). Инкремент. Декремент
№7. Циклы (2). Continue. Break
№8. Switch .. case
№9. Указатели (pointers)
№10. Указатели (2). Usecases
№11. Кастомные типы. Структуры(1)
№12. Методы
№13. Интерфейсы
№14. Структуры (2) Встраивание типов (Embedding)
№15. Массивы (arrays). Слайсы (slices)(1)
№16. Слайсы (slices)(2)
№17. Слайсы (slices)(3)
№18. Мапы (maps)
№19. Concurrency (1). Goroutines. Defer. Panic/Recover
№20. Concurrency (2). WaitGroup. Data Race. Muxtex/RWMutex
№21. Concurrency (3). Nil, Unbuffered, Buffered channels. Deadlock.
№22. Concurrency (4). Select. Graceful shutdown.
№23. Concurrency (5). Context
№24. Concurrency (6). ErrGroup. Канал как Mutex. Промисы на каналах
№25. Concurrency (7). Atomic
№26. Дженерики(Generics)
№27. Пакеты (Packages)
№28. Модули (Modules)
Все видео доступны на youtube
👉 @golang_lib
👍5
📘️ Gopherlings
Изучайте язык Go, исправляя маленькие ошибки в программах
https://github.com/soypat/gopherlings
👉 @golang_lib
Изучайте язык Go, исправляя маленькие ошибки в программах
https://github.com/soypat/gopherlings
👉 @golang_lib
GitHub
GitHub - soypat/gopherlings: 📘️ Learn Go by fixing tiny incorrect programs
📘️ Learn Go by fixing tiny incorrect programs. Contribute to soypat/gopherlings development by creating an account on GitHub.
👍3
Ребята из DevCrowd проводят исследование Go-разработчиков:
- Какие навыки для go-разработчиков самые важные
- Какие инструменты используются в работе
- Как попадают в профессию и куда из нее уходят
- Полезные для развития каналы, курсы и книги
Проходите опрос, рассказывайте про ваш опыт и помогите сделать исследование максимально охватным. Его результаты будут в открытом доступе, и помогут вам сравнить свои ожидания от Go-разработчиков с рыночными, построить план своего развития, и просто понять, что происходит с индустрией!
👉 Пройти опрос
- Какие навыки для go-разработчиков самые важные
- Какие инструменты используются в работе
- Как попадают в профессию и куда из нее уходят
- Полезные для развития каналы, курсы и книги
Проходите опрос, рассказывайте про ваш опыт и помогите сделать исследование максимально охватным. Его результаты будут в открытом доступе, и помогут вам сравнить свои ожидания от Go-разработчиков с рыночными, построить план своего развития, и просто понять, что происходит с индустрией!
👉 Пройти опрос
👍1
Подборка web-фреймворков для Golang
Beego
Если нужен быстрый запуск API-интерфейсов REST, веб- и серверных приложений в Go, то лучшего варианта не найти. Golang-разработчики зачастую сравнивают Beego с Django в Python. Достоинство Beego — отсутствие необходимости установки сторонних производителей. Это, фактически, полноценный фреймворк Model-View-Controller, причём у него есть собственные библиотеки и встроенный инструмент Bee, который даёт возможность находить изменения кода.
https://github.com/beego/beego
Kit
Инструмент для работы с микросервисами в любом масштабе. Микросервисы часто требуют специализированной поддержки, которую Kit без проблем предоставляет.
https://github.com/go-kit/kit
Echo
Облегчённый, гибкий и расширяемый веб-фреймворк. Позволяет создавать надёжные и масштабируемые RESTful API, имеет встроенное промежуточное ПО и даёт возможность определять своё собственное.
https://github.com/labstack/echo
Fiber
Простой но мощный фреймворк, который был создан на базе Fasthttp — самого быстрого HTTP-движка для Go. Fiber разработали для ускорения работы с нулевым распределением памяти и возможностями производительности. Плюс ко всему, этот фреймворк ещё и компактен, он без проблем позволяет интегрировать сторонние библиотеки с Martini. Fiber обеспечивает необходимую масштабируемость при сокращении накладных расходов.
https://github.com/gofiber/fiber
Fasthttp
Fasthttp обеспечивает быстрый HTTP-сервер и клиент API. Он может обрабатывать более 100 000 запросов в секунду и свыше 1 млн одновременно открытых соединений. Фреймворк рассчитан на относительно низкое потребление памяти и обеспечивает простую поддержку обновления соединения через RequestCtx.Hijack.
https://github.com/valyala/fasthttp
Gorilla
Gorilla практически безупречно работает со всеми повторно используемыми элементами и компонентами HTTP-библиотеки. Её главные достоинства в том, что она предлагает модульность и масштабируемость в качестве основных функций. И проблемы «засорения» устаревшим функционалом в случае Gorilla нет — всё отлично спроектировано.
https://github.com/gorilla/
👉 @golang_lib
Beego
Если нужен быстрый запуск API-интерфейсов REST, веб- и серверных приложений в Go, то лучшего варианта не найти. Golang-разработчики зачастую сравнивают Beego с Django в Python. Достоинство Beego — отсутствие необходимости установки сторонних производителей. Это, фактически, полноценный фреймворк Model-View-Controller, причём у него есть собственные библиотеки и встроенный инструмент Bee, который даёт возможность находить изменения кода.
https://github.com/beego/beego
Kit
Инструмент для работы с микросервисами в любом масштабе. Микросервисы часто требуют специализированной поддержки, которую Kit без проблем предоставляет.
https://github.com/go-kit/kit
Echo
Облегчённый, гибкий и расширяемый веб-фреймворк. Позволяет создавать надёжные и масштабируемые RESTful API, имеет встроенное промежуточное ПО и даёт возможность определять своё собственное.
https://github.com/labstack/echo
Fiber
Простой но мощный фреймворк, который был создан на базе Fasthttp — самого быстрого HTTP-движка для Go. Fiber разработали для ускорения работы с нулевым распределением памяти и возможностями производительности. Плюс ко всему, этот фреймворк ещё и компактен, он без проблем позволяет интегрировать сторонние библиотеки с Martini. Fiber обеспечивает необходимую масштабируемость при сокращении накладных расходов.
https://github.com/gofiber/fiber
Fasthttp
Fasthttp обеспечивает быстрый HTTP-сервер и клиент API. Он может обрабатывать более 100 000 запросов в секунду и свыше 1 млн одновременно открытых соединений. Фреймворк рассчитан на относительно низкое потребление памяти и обеспечивает простую поддержку обновления соединения через RequestCtx.Hijack.
https://github.com/valyala/fasthttp
Gorilla
Gorilla практически безупречно работает со всеми повторно используемыми элементами и компонентами HTTP-библиотеки. Её главные достоинства в том, что она предлагает модульность и масштабируемость в качестве основных функций. И проблемы «засорения» устаревшим функционалом в случае Gorilla нет — всё отлично спроектировано.
https://github.com/gorilla/
👉 @golang_lib
👍6
Паттерны в Golang
Паттерн Builder в Golang
Директор в паттерне Builder в Golang
Паттерн Стратегия в Golang
источник
👉 @golang_lib
Паттерн Builder в Golang
Директор в паттерне Builder в Golang
Паттерн Стратегия в Golang
источник
👉 @golang_lib
👍4
how-to-code-in-go.pdf
2.8 MB
How To Code in Go
Автор: Mark Bates (2021)
Эта книга призвана познакомить вас с написанием программ на языке программирования Go. Вы узнаете, как писать полезные инструменты и приложения, которые можно запускать на удаленных серверах или локальных системах Windows, macOS и Linux для разработки.
👉 @golang_lib
Автор: Mark Bates (2021)
Эта книга призвана познакомить вас с написанием программ на языке программирования Go. Вы узнаете, как писать полезные инструменты и приложения, которые можно запускать на удаленных серверах или локальных системах Windows, macOS и Linux для разработки.
👉 @golang_lib
👍4
DDD в Go: натягивание совы на глобус?
Как-то раз я сидел в баре с давним приятелем, с которым раньше мне довелось поработать на поза-поза-позапрошлой работе. Он из сомневающихся по поводу перехода на Go, ярый приверженец своего нынешнего языка. Хочу сказать, что он делает действительно классные вещи, пишет безупречный код, у него есть, чему поучиться. Но к Go у него отношение не слишком позитивное. Как он сказал: “Go — это *****код (плохой код)”. И в качестве одного из аргументов привел то, насколько, по его мнению, криво в Go реализована обработка ошибок. В чем-то он прав — в моем текущем не самом большом проекте на Go конструкция “if err != nil” встречается 1132 раза.
https://habr.com/ru/companies/constanta/articles/675408/
👉 @golang_lib
Как-то раз я сидел в баре с давним приятелем, с которым раньше мне довелось поработать на поза-поза-позапрошлой работе. Он из сомневающихся по поводу перехода на Go, ярый приверженец своего нынешнего языка. Хочу сказать, что он делает действительно классные вещи, пишет безупречный код, у него есть, чему поучиться. Но к Go у него отношение не слишком позитивное. Как он сказал: “Go — это *****код (плохой код)”. И в качестве одного из аргументов привел то, насколько, по его мнению, криво в Go реализована обработка ошибок. В чем-то он прав — в моем текущем не самом большом проекте на Go конструкция “if err != nil” встречается 1132 раза.
https://habr.com/ru/companies/constanta/articles/675408/
👉 @golang_lib
👍3❤1👎1💯1
Bhagvan_Kommadi_Learn_Data_Structures_and_Algorithms_with_Golang.pdf
5.6 MB
Learn Data Structures and Algorithms with Golang: Level up your Go programming skills to develop faster and more efficient code
Автор: Bhagvan Kommadi (2019)
Golang - один из самых быстроразвивающихся языков программирования. Его скорость, простота и надежность делают его идеальным выбором для создания надежных приложений. В связи с этим возникает необходимость в прочном фундаменте структур данных и алгоритмов на Go, чтобы создавать масштабируемые приложения.
Книга начинается с введения в структуры данных и алгоритмы Go. Вы узнаете, как хранить данные с помощью связанных списков, массивов, стеков и очередей. Далее вы узнаете, как реализовать алгоритмы сортировки и поиска, а также двоичные деревья поиска. Эта книга также поможет вам повысить производительность ваших приложений за счет структурирования типов данных и применения хэш-структур при разработке алгоритмов. Наконец, вы сможете применять традиционные структуры данных для решения реальных задач.
👉 @golang_lib
Автор: Bhagvan Kommadi (2019)
Golang - один из самых быстроразвивающихся языков программирования. Его скорость, простота и надежность делают его идеальным выбором для создания надежных приложений. В связи с этим возникает необходимость в прочном фундаменте структур данных и алгоритмов на Go, чтобы создавать масштабируемые приложения.
Книга начинается с введения в структуры данных и алгоритмы Go. Вы узнаете, как хранить данные с помощью связанных списков, массивов, стеков и очередей. Далее вы узнаете, как реализовать алгоритмы сортировки и поиска, а также двоичные деревья поиска. Эта книга также поможет вам повысить производительность ваших приложений за счет структурирования типов данных и применения хэш-структур при разработке алгоритмов. Наконец, вы сможете применять традиционные структуры данных для решения реальных задач.
👉 @golang_lib
👍3
Советы и рекомендации при работе с дженериками
https://appliedgo.com/blog/a-tip-and-a-trick-when-working-with-generics
👉 @golang_lib
https://appliedgo.com/blog/a-tip-and-a-trick-when-working-with-generics
👉 @golang_lib
👍4
👍4
Погружение в исходные коды Caddy: узнайте, какие архитектурные решения и подходы использовали разработчики второй версии популярного веб-сервера.
https://sourcegraph.com/notebooks/Tm90ZWJvb2s6MTM2Nw==
👉 @golang_lib
https://sourcegraph.com/notebooks/Tm90ZWJvb2s6MTM2Nw==
👉 @golang_lib
👍2
Media is too big
VIEW IN TELEGRAM
Майкл Стапельберг: Почему я написал свой собственный rsync
Я стал философски против использования программ на Си в моем доме, поэтому я заменяю старые программы на Си новыми программами на Go для большего удовольствия, производительности, обучения и безопасности!
В этом докладе вы узнаете больше о том, как работает rsync, а также о том, как и где я запускаю свою собственную реализацию.
rsync - это всего лишь одна часть большой головоломки. Я также (вкратце) расскажу о router7, моем собственном домашнем интернет-маршрутизаторе, который работает на gokrazy, моей собственной платформе Go-приложений (не только) для Raspberry Pi.
источник
👉 @golang_lib
Я стал философски против использования программ на Си в моем доме, поэтому я заменяю старые программы на Си новыми программами на Go для большего удовольствия, производительности, обучения и безопасности!
В этом докладе вы узнаете больше о том, как работает rsync, а также о том, как и где я запускаю свою собственную реализацию.
rsync - это всего лишь одна часть большой головоломки. Я также (вкратце) расскажу о router7, моем собственном домашнем интернет-маршрутизаторе, который работает на gokrazy, моей собственной платформе Go-приложений (не только) для Raspberry Pi.
источник
👉 @golang_lib
👍3🤔2
Packt.Microservices.with.Go.pdf
4.2 MB
Microservices with Go: Building scalable and reliable microservices with Go
Автор: Alexander Shuiskov (2022)
Вы узнаете о важности использования правильных принципов и стандартов для достижения ключевых преимуществ микросервисной архитектуры. В следующих главах вы узнаете, почему язык программирования Go является одним из самых популярных языков для разработки микросервисов, и заложите основы для следующих глав книги. Вы изучите основополагающие аспекты разработки микросервисов на языке Go, включая обнаружение сервисов, сериализацию данных, синхронное и асинхронное взаимодействие, развертывание и тестирование. После изучения аспектов разработки вы перейдете к темам обслуживания и надежности. Последняя часть посвящена более продвинутым темам разработки микросервисов Go, включая надежность системы, наблюдаемость, сопровождаемость и масштабируемость.
👉 @golang_lib
Автор: Alexander Shuiskov (2022)
Вы узнаете о важности использования правильных принципов и стандартов для достижения ключевых преимуществ микросервисной архитектуры. В следующих главах вы узнаете, почему язык программирования Go является одним из самых популярных языков для разработки микросервисов, и заложите основы для следующих глав книги. Вы изучите основополагающие аспекты разработки микросервисов на языке Go, включая обнаружение сервисов, сериализацию данных, синхронное и асинхронное взаимодействие, развертывание и тестирование. После изучения аспектов разработки вы перейдете к темам обслуживания и надежности. Последняя часть посвящена более продвинутым темам разработки микросервисов Go, включая надежность системы, наблюдаемость, сопровождаемость и масштабируемость.
👉 @golang_lib
👍2
Как контейнеризировать приложение Golang с помощью Docker для разработки и производства
Вы хотите написать приложение на языке Golang, контейнеризированное с помощью Docker? Цель этой статьи - помочь вам быстро получить приложение Golang в контейнере для разработки (с горячей загрузкой) и для использования в продакшне.
https://bartlomiejmika.com/post/2022/how-to-containerize-a-golang-app-with-docker-for-development-and-production/
👉 @golang_lib
Вы хотите написать приложение на языке Golang, контейнеризированное с помощью Docker? Цель этой статьи - помочь вам быстро получить приложение Golang в контейнере для разработки (с горячей загрузкой) и для использования в продакшне.
https://bartlomiejmika.com/post/2022/how-to-containerize-a-golang-app-with-docker-for-development-and-production/
👉 @golang_lib
👍3
✌️ Привет, на связи организатор IT-конференций Podlodka Crew! Вы можете знать нас по подкасту Podlodka, где мы обсуждаем актуальные вопросы и проблемы отрасли.
🦹♂️ Высокопроизводительные backend-сервисы можно разрабатывать на разных стеках, но именно Golang для этого создан. Это его суперспособность. Чтобы вы могли использовать её в полной мере, для второго сезона Podlodka Go Crew мы выбрали тему Highload на Go.
Уже 11 сентября вместе с экспертами из Авито, Ozon Tech и других топовых компаний:
✔️ заглянем под капот устройства памяти;
✔️ научимся превентивно находить потенциальные очаги чрезмерной нагрузки;
✔️ посмотрим на лучшие практики нагрузочного тестирования;
✔️ изучим масштабируемую технологию NATS JetStream для очередей и асинхронной коммуникации.
🎁 Бонус: каждый желающий сможет выступить на открытом микрофоне!
Let’s Go! Билеты уже в продаже. Успей забрать свой по сниженной цене 👉 https://podlodka.io/gocrew
🦹♂️ Высокопроизводительные backend-сервисы можно разрабатывать на разных стеках, но именно Golang для этого создан. Это его суперспособность. Чтобы вы могли использовать её в полной мере, для второго сезона Podlodka Go Crew мы выбрали тему Highload на Go.
Уже 11 сентября вместе с экспертами из Авито, Ozon Tech и других топовых компаний:
✔️ заглянем под капот устройства памяти;
✔️ научимся превентивно находить потенциальные очаги чрезмерной нагрузки;
✔️ посмотрим на лучшие практики нагрузочного тестирования;
✔️ изучим масштабируемую технологию NATS JetStream для очередей и асинхронной коммуникации.
🎁 Бонус: каждый желающий сможет выступить на открытом микрофоне!
Let’s Go! Билеты уже в продаже. Успей забрать свой по сниженной цене 👉 https://podlodka.io/gocrew
👍2
go-from-the-beginning.pdf
429.8 KB
Go, from the beginning
Chris Noring (2022)
In this book you will learn the following:
Build Console apps
Create Web APIs
Test your code
Create and publish reusable packages that others can consume
Organize your files in a project
Work with files and directories
Parse text with the string library and regular expressions.
👉 @golang_lib
Chris Noring (2022)
In this book you will learn the following:
Build Console apps
Create Web APIs
Test your code
Create and publish reusable packages that others can consume
Organize your files in a project
Work with files and directories
Parse text with the string library and regular expressions.
👉 @golang_lib
👍2
Бессерверная разработка приложений на Golang с использованием AWS
Бессерверные приложения в последнее время набирают популярность благодаря своей масштабируемости и простоте. В этой статье мы создадим простое приложение TODO на языке Golang с использованием бессерверных технологий AWS: Lambda, APIGateway и DynamoDB.
https://rtoch.com/posts/serverless-golang-with-lambda-and-dynamo/
👉 @golang_lib
Бессерверные приложения в последнее время набирают популярность благодаря своей масштабируемости и простоте. В этой статье мы создадим простое приложение TODO на языке Golang с использованием бессерверных технологий AWS: Lambda, APIGateway и DynamoDB.
https://rtoch.com/posts/serverless-golang-with-lambda-and-dynamo/
👉 @golang_lib
👍1
Предотвращаем утечки памяти в Go, ч. 1. Ошибки бизнес-логики
Можно любить Go за многое: за простоту и строгость, за горутины и каналы, за реализацию параллельного и асинхронного программирования, за продвинутый планировщик, за аллокатор с большим количеством оптимизаций, за высокую производительность.
Но, по сообщениям некоторых пользователей, у программ, написанных на Go, течёт память. Issue-трекер языка Go на github по запросам «high memory usage», «memory leak», «out of memory» выдаёт сотни и тысячи тикетов. А в самом популярном вопросе на stackoverflow по словосочетанию «golang memory» автор пытается разобраться, почему потребление оперативной памяти в рантайме в 4 раза превышает количество реально сделанных аллокаций. Обращения, в которых люди рапортуют о перерасходе оперативной памяти в Go, стали массовым явлением.
Что же это — утечки памяти, вызванные программистскими ошибками, или ожидаемое поведение рантайма языка? Мы попытаемся разобраться в причинах этого явления и сформулировать общие рекомендации, которые помогут в отладке проблем с потреблением памяти.
https://habr.com/ru/companies/ncloudtech/articles/675390/
👉 @golang_lib
Можно любить Go за многое: за простоту и строгость, за горутины и каналы, за реализацию параллельного и асинхронного программирования, за продвинутый планировщик, за аллокатор с большим количеством оптимизаций, за высокую производительность.
Но, по сообщениям некоторых пользователей, у программ, написанных на Go, течёт память. Issue-трекер языка Go на github по запросам «high memory usage», «memory leak», «out of memory» выдаёт сотни и тысячи тикетов. А в самом популярном вопросе на stackoverflow по словосочетанию «golang memory» автор пытается разобраться, почему потребление оперативной памяти в рантайме в 4 раза превышает количество реально сделанных аллокаций. Обращения, в которых люди рапортуют о перерасходе оперативной памяти в Go, стали массовым явлением.
Что же это — утечки памяти, вызванные программистскими ошибками, или ожидаемое поведение рантайма языка? Мы попытаемся разобраться в причинах этого явления и сформулировать общие рекомендации, которые помогут в отладке проблем с потреблением памяти.
https://habr.com/ru/companies/ncloudtech/articles/675390/
👉 @golang_lib
👍4