Gotraning — это материал для любого разработчика среднего уровня, который имеет некоторый опыт работы с другими языками программирования и хочет изучать Go. Материал идеально подходит для тех, кто хочет начать обучение изучению го или для тех, кто хочет лучше понять язык и его внутреннюю среду.
Примечание. Этот материал предназначен для обучения в группе с тренером или же с ментором, так как код хорошо прокомментирован, но в нем отсутствуют некоторые контекстуальные концепции и идеи, которые будут рассмотрены в классе. Также вы можете внести свой вклад в развитие, создав новую учетную запись. :)
Примечание. Этот материал предназначен для обучения в группе с тренером или же с ментором, так как код хорошо прокомментирован, но в нем отсутствуют некоторые контекстуальные концепции и идеи, которые будут рассмотрены в классе. Также вы можете внести свой вклад в развитие, создав новую учетную запись. :)
GitHub
gotraining/topics/go/README.md at master · ardanlabs/gotraining
Go Training Class Material : . Contribute to ardanlabs/gotraining development by creating an account on GitHub.
DockerSlim — прекрасный репозиторий с открытым исходным кодом, написанный на Go. Его использование — это большой шаг в правильном направлении! ;)
"Продолжай делать то, что делаешь. Не нужно ничего менять. Используй базовое изображение, которое хочешь. Используй менеджер пакетов, который хочешь. Не беспокойся о ручной оптимизации свое Dockerfile. Тебе не нужно выбрасывать свои инструменты и рабочий процесс, чтобы иметь небольшие изображения контейнеров" — обо всем этом беспокоится docker-slim.
"Продолжай делать то, что делаешь. Не нужно ничего менять. Используй базовое изображение, которое хочешь. Используй менеджер пакетов, который хочешь. Не беспокойся о ручной оптимизации свое Dockerfile. Тебе не нужно выбрасывать свои инструменты и рабочий процесс, чтобы иметь небольшие изображения контейнеров" — обо всем этом беспокоится docker-slim.
16 избранных ссылок на материалы о языке Go для начинающих
Подборка лучших статей о языке Go для читателей различного круга интересов и уровня подготовки, на английском и русском языках.
Golang: основы для начинающих (rus)
Трюки с использованием срезов
5 советов по использованию строк
Типы данных Struct, Map, Array и Slice
Понятное объяснение указателей Go менее чем в 800 слов
Туториал по каналам Go
Разработка с использованием каналов
Аксиомы каналов
Наглядная визуализация структур Go
Понимание panic-ошибок
3 наиболее распространенных ловушки языка Go (rus)
Как обойти подводные камни
Основные подводные камни
50 оттенков Go: ловушки, подводные камни и распространенные ошибки новичков
Неофициальный список частых вопросов и ответов
Лекции Техносферы: Программирование на Go (rus)
Подборка лучших статей о языке Go для читателей различного круга интересов и уровня подготовки, на английском и русском языках.
Golang: основы для начинающих (rus)
Трюки с использованием срезов
5 советов по использованию строк
Типы данных Struct, Map, Array и Slice
Понятное объяснение указателей Go менее чем в 800 слов
Туториал по каналам Go
Разработка с использованием каналов
Аксиомы каналов
Наглядная визуализация структур Go
Понимание panic-ошибок
3 наиболее распространенных ловушки языка Go (rus)
Как обойти подводные камни
Основные подводные камни
50 оттенков Go: ловушки, подводные камни и распространенные ошибки новичков
Неофициальный список частых вопросов и ответов
Лекции Техносферы: Программирование на Go (rus)
Tproger
Golang: основы для начинающих
Golang, или Go — язык программирования, начало которого было положено в 2007 году сотрудниками компании Google. Это быстрый, статически типизированный, компилируемый язык, который создает впечатление динамически типизированного и интерпретируемого языка.…
Многие платят за образование, но после выпуска работают за зарплату ниже рынка, только чтобы получить опыт работы. МТС и Сколково создали образовательную программу для выпускников бакалавриата и магистратуры(возраст - 19-24 года), которая поможет подтянуть навыки и скиллы и, что самое главное, получить реальный опыт работы над проектом.
Программа платная, но у тебя есть возможность выиграть 100% грант на обучение. Узнай о программе, перейдя по ссылке https://prglb.ru/33gwx со своего ПК, найди все подсказки, информацию об обучении и сразу же стартуй с одного из этапов квеста.
Программа платная, но у тебя есть возможность выиграть 100% грант на обучение. Узнай о программе, перейдя по ссылке https://prglb.ru/33gwx со своего ПК, найди все подсказки, информацию об обучении и сразу же стартуй с одного из этапов квеста.
Как начать работать с Docker
Docker раскрывает потенциал вашей организации, предоставляя разработчикам и ИТ-специалистам свободу создавать, управлять и защищать критически важные для бизнеса приложения, не опасаясь блокирования технологий или инфраструктуры. Docker позволяет объединять традиционные и облачные приложения, созданные на Windows Server, Linux и мэйнфреймах, в автоматизированную и безопасную цепочку поставок, улучшая сотрудничество между разработчиками и сокращая время окупаемости.
Docker можно использовать по-разному. Например, он предлагает одноразовую среду, которую можно использовать для изучения новых технологий. Docker предоставляет удобный способ иметь локальные среды разработки, которые часто соответствуют производственной среде. Docker также имеет популярный способ конфигурирования, сохранения и совместного использования серверных сред с использованием контейнеров, который помогает в установке приложения или большого стека с помощью простой команды запуска, например, «docker pull» или «docker run».
В этой статье описано когда и зачем использовать Docker.
Docker раскрывает потенциал вашей организации, предоставляя разработчикам и ИТ-специалистам свободу создавать, управлять и защищать критически важные для бизнеса приложения, не опасаясь блокирования технологий или инфраструктуры. Docker позволяет объединять традиционные и облачные приложения, созданные на Windows Server, Linux и мэйнфреймах, в автоматизированную и безопасную цепочку поставок, улучшая сотрудничество между разработчиками и сокращая время окупаемости.
Docker можно использовать по-разному. Например, он предлагает одноразовую среду, которую можно использовать для изучения новых технологий. Docker предоставляет удобный способ иметь локальные среды разработки, которые часто соответствуют производственной среде. Docker также имеет популярный способ конфигурирования, сохранения и совместного использования серверных сред с использованием контейнеров, который помогает в установке приложения или большого стека с помощью простой команды запуска, например, «docker pull» или «docker run».
В этой статье описано когда и зачем использовать Docker.
go.dev
Deploying Go servers with Docker - The Go Programming Language
How to use Docker's new official base images for Go.
Fuzz-тестирование в Go
Fuzzing — это метод тестирования, который загружает нашу программу случайными данными. Он дополняет обычное тестирование и позволяет разработчикам находить ошибки, которые было бы трудно найти при вводе вручную. Fuzzing довольно легко настроить в программах Go и может быть адаптирован практически всеми видами кода.
Где можно узнать больше?
Презентация о фаззинге на митапе Google TechTalk.
Учебники, примеры, обсуждения, исследовательские предложения и другие ресурсы, связанные с фаззингом — тут.
Fuzzing — это метод тестирования, который загружает нашу программу случайными данными. Он дополняет обычное тестирование и позволяет разработчикам находить ошибки, которые было бы трудно найти при вводе вручную. Fuzzing довольно легко настроить в программах Go и может быть адаптирован практически всеми видами кода.
Где можно узнать больше?
Презентация о фаззинге на митапе Google TechTalk.
Учебники, примеры, обсуждения, исследовательские предложения и другие ресурсы, связанные с фаззингом — тут.
YouTube
Zurich Go Meetup: Go-Fuzz: Practical Fuzzing with Go
A Google TechTalk, 2019/09/26, presented by Roberto Clapis.
ABSTRACT: Humans are usually not good at identifying edge cases in their code, this talk will explain some techniques to automate this process and efficiently find surprising bugs.
About the speaker:…
ABSTRACT: Humans are usually not good at identifying edge cases in their code, this talk will explain some techniques to automate this process and efficiently find surprising bugs.
About the speaker:…
Быстрый старт: Golang & MongoDB
Полезная серия статей о том, как подключить и использовать MongoDB.
В первом уроке рассматривается, как установить связь между языком и базой данных.
Во втором уроке продолжается работа с материалом из первого урока, но также показано подключение к определенной коллекции для создания новых документов.
В третьем уроке показано чтение документов из MongoDB и создание запросов для получения документов на основе определенных критериев.
Полезная серия статей о том, как подключить и использовать MongoDB.
В первом уроке рассматривается, как установить связь между языком и базой данных.
Во втором уроке продолжается работа с материалом из первого урока, но также показано подключение к определенной коллекции для создания новых документов.
В третьем уроке показано чтение документов из MongoDB и создание запросов для получения документов на основе определенных критериев.
MongoDB
Quick Start: Golang & MongoDB - Starting and Setup | MongoDB Blog
Go and MongoDB - a powerful match made in JSON and Go and in this Quick Start series you'll learn how to put that power to use.
Hugo-темы
Docsy — это тема Hugo для наборов технической документации, обеспечивающая простую навигацию, структуру сайта и многое другое. Это неофициально активно поддерживаемый продукт Google, написанный на Go. Он является самым быстрым в мире статическим движком для сайтов.
Docsy — это тема Hugo для наборов технической документации, обеспечивающая простую навигацию, структуру сайта и многое другое. Это неофициально активно поддерживаемый продукт Google, написанный на Go. Он является самым быстрым в мире статическим движком для сайтов.
#beginner #best_practices
Немного лучших практик по Go начинающим разработчикам.
https://prglb.ru/4edc3
Немного лучших практик по Go начинающим разработчикам.
https://prglb.ru/4edc3
peter.bourgon.org
Peter Bourgon · Go best practices, six years in
Generally good things to do when writing Go code, in 2016 and beyond.
На языке С++ можно написать любое приложение для любой задачи. Правда, он настолько сложный, что освоить все тонкости довольно трудно.
Go — простой и удобный язык, который был создан в Google на замену C и C++. Если вы решили изучать Go, советую посмотреть бесплатное занятие Нетологии «Программирование на Go: практика для новичков», чтобы:
• узнать о специфике языка и библиотек,
• решить простую задачу и проверить Go в деле,
• выяснить, подходит ли Go для ваших задач.
Подробности и регистрация по ссылке: http://netolo.gy/faA
Go — простой и удобный язык, который был создан в Google на замену C и C++. Если вы решили изучать Go, советую посмотреть бесплатное занятие Нетологии «Программирование на Go: практика для новичков», чтобы:
• узнать о специфике языка и библиотек,
• решить простую задачу и проверить Go в деле,
• выяснить, подходит ли Go для ваших задач.
Подробности и регистрация по ссылке: http://netolo.gy/faA
В статье приводятся ряд отличительных особенностей языка Go, выделяемых одним из разработчиков Google Cloud. Он объясняет причину перехода на Go с Python, Java и JavaScript в некоторых из своих проектов. Основные особенности: в Go уделяется особое внимание прямой совместимости и зависимости, у языка нет функциональных особенностей, которые ухудшают читабельность, а также он поставляется из коробки со всем, что действительно нужно (базовая библиотека тестов, надежные сетевые и синхронизирующие примитивы и шаблоны, и многое другое).
https://benjamincongdon.me/blog/2019/11/11/The-Value-in-Gos-Simplicity/
https://benjamincongdon.me/blog/2019/11/11/The-Value-in-Gos-Simplicity/
benjamincongdon.me
The Value in Go's Simplicity
After using Go for a couple years, I’ve really come to appreciate its
simplicity. I started writing Go at work a couple months ago, and have found it
really easy to iterate on – much more so than Python and Java.
simplicity. I started writing Go at work a couple months ago, and have found it
really easy to iterate on – much more so than Python and Java.
Как вы думаете, что выведет данный код? u := url.URL{Scheme: "http", Host: "localhost"} fmt.Printf("%s", u)
anonymous poll
Print http://localhost – 166
👍👍👍👍👍👍👍 73%
Нет правильного ответа – 39
👍👍 17%
Compile error – 13
👍 6%
Print http:localhost – 8
▫️ 4%
👥 226 people voted so far.
anonymous poll
Print http://localhost – 166
👍👍👍👍👍👍👍 73%
Нет правильного ответа – 39
👍👍 17%
Compile error – 13
👍 6%
Print http:localhost – 8
▫️ 4%
👥 226 people voted so far.
Ответ:
http://localhost
Пакет url (import "net/url") парсит URL-адреса и реализует экранирование запроса.
Нужные нам символы подставляются автоматически исходя из схемы: scheme://[userinfo@host]/path?query#fragment
Пример с официального сайта:
package main
import (
"fmt"
"log"
"net/url"
)
func main() {
u, err := url.Parse("http://bing.com/search?q=dotnet")
if err != nil {
log.Fatal(err)
}
u.Scheme = "https"
u.Host = "google.com"
q := u.Query()
q.Set("q", "golang")
u.RawQuery = q.Encode()
fmt.Println(u)
}
Ответ: https://google.com/search?q=golang
http://localhost
Пакет url (import "net/url") парсит URL-адреса и реализует экранирование запроса.
Нужные нам символы подставляются автоматически исходя из схемы: scheme://[userinfo@host]/path?query#fragment
Пример с официального сайта:
package main
import (
"fmt"
"log"
"net/url"
)
func main() {
u, err := url.Parse("http://bing.com/search?q=dotnet")
if err != nil {
log.Fatal(err)
}
u.Scheme = "https"
u.Host = "google.com"
q := u.Query()
q.Set("q", "golang")
u.RawQuery = q.Encode()
fmt.Println(u)
}
Ответ: https://google.com/search?q=golang
Bing
dotnet - Bing
Intelligent search from Bing makes it easier to quickly find what you’re looking for and rewards you.
В связи с приближающимся Новым годом, оставим здесь основные слайды и сслыки 2019 года, связанные с Go.
Ускорить разработку. Гибко масштабировать. Обеспечить безопасную работу сайта… Если от этих фраз ты начинаешь гореть, тебе пора на онлайн-интенсив по Django Framework от GeekBrains. Научим быстро и качественно реализовывать веб-проекты, избегать распространенных ошибок при создании приложений с нуля.
Два продуктивных дня, две практические работы и собственный проект для портфолио — все это ты сделаешь под контролем эксперта-куратора. Каждому участнику выдаем именной сертификат.
До 16 декабря курс стоит на 40% дешевле!
Подробная программа, стоимость и условия по ссылке:
https://bit.ly/38uejp6
Два продуктивных дня, две практические работы и собственный проект для портфолио — все это ты сделаешь под контролем эксперта-куратора. Каждому участнику выдаем именной сертификат.
До 16 декабря курс стоит на 40% дешевле!
Подробная программа, стоимость и условия по ссылке:
https://bit.ly/38uejp6
Довольно интересное чтиво о принципах управления версиями в Go.
Обфускация - это процесс приведения исходного или исполняемого кода программы к виду, сохраняющему её функциональность, но затрудняющему анализ, понимание алгоритмов работы и модификацию при декомпиляции.
Обфускация, как правило, применяется для следующего: затруднения декомпиляции/отладки и изучения программ с целью обнаружения функциональности; затруднения декомпиляции проприетарных программ с целью предотвращения обратной разработки; оптимизации программы с целью уменьшения размера кода.
Применяйте обфускацию в своих проектах с помощью готовых решений.
Обфускация, как правило, применяется для следующего: затруднения декомпиляции/отладки и изучения программ с целью обнаружения функциональности; затруднения декомпиляции проприетарных программ с целью предотвращения обратной разработки; оптимизации программы с целью уменьшения размера кода.
Применяйте обфускацию в своих проектах с помощью готовых решений.
GitHub
GitHub - mvdan/garble-fork: *fork* of https://github.com/burrowers/garble
*fork* of https://github.com/burrowers/garble. Contribute to mvdan/garble-fork development by creating an account on GitHub.
Несколько месяцев назад была анонсирована версия 1.13 языка Go, но сейчас не за горами версия 1.14, которая уже наделала много шума.
Чтобы не вносить путаницу, сегодня речь пойдет о планах на грядущую версию, в слайдах.
Чтобы не вносить путаницу, сегодня речь пойдет о планах на грядущую версию, в слайдах.
Google Docs
What's coming in Go 1.14
What's coming in Go 1.14 GoSheffield, 2019 - Daniel Martí
Сегодня вспомним основы языка Go и пробежимся по более сложным вещам: данные, инициализация, интерфейсы, пустой идентификатор, многопоточность, ошибки и многое другое.
Blogspot
Основы Go
Основы Go: список статей
Обработка ошибок в любом языке программирования занимает особое место, Go не является исключением. Давайте подробнее разберемся с обработкой ошибок и в конечном итоге поймем, что ошибки в Go следует рассматривать не как причину боли, а как гибкий и мощный инструмент контроля.
evilmartians.com
Errors in Go: From denial to acceptance—Martian Chronicles, Evil Martians’ team blog
Practical advice on getting the most out of handling errors "the Go way" from the creator of imgproxy and Overmind.