Библиотека Go-разработчика | Golang
23.3K subscribers
2.08K photos
42 videos
87 files
4.45K links
Все самое полезное для Go-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/32d20779

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
Gotraning — это материал для любого разработчика среднего уровня, который имеет некоторый опыт работы с другими языками программирования и хочет изучать Go. Материал идеально подходит для тех, кто хочет начать обучение изучению го или для тех, кто хочет лучше понять язык и его внутреннюю среду.
Примечание. Этот материал предназначен для обучения в группе с тренером или же с ментором, так как код хорошо прокомментирован, но в нем отсутствуют некоторые контекстуальные концепции и идеи, которые будут рассмотрены в классе. Также вы можете внести свой вклад в развитие, создав новую учетную запись. :)
DockerSlim — прекрасный репозиторий с открытым исходным кодом, написанный на Go. Его использование — это большой шаг в правильном направлении! ;)

"Продолжай делать то, что делаешь. Не нужно ничего менять. Используй базовое изображение, которое хочешь. Используй менеджер пакетов, который хочешь. Не беспокойся о ручной оптимизации свое Dockerfile. Тебе не нужно выбрасывать свои инструменты и рабочий процесс, чтобы иметь небольшие изображения контейнеров" — обо всем этом беспокоится docker-slim.
Многие платят за образование, но после выпуска работают за зарплату ниже рынка, только чтобы получить опыт работы. МТС и Сколково создали образовательную программу для выпускников бакалавриата и магистратуры(возраст - 19-24 года), которая поможет подтянуть навыки и скиллы и, что самое главное, получить реальный опыт работы над проектом.

Программа платная, но у тебя есть возможность выиграть 100% грант на обучение. Узнай о программе, перейдя по ссылке https://prglb.ru/33gwx со своего ПК, найди все подсказки, информацию об обучении и сразу же стартуй с одного из этапов квеста.
Как начать работать с Docker

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

Docker можно использовать по-разному. Например, он предлагает одноразовую среду, которую можно использовать для изучения новых технологий. Docker предоставляет удобный способ иметь локальные среды разработки, которые часто соответствуют производственной среде. Docker также имеет популярный способ конфигурирования, сохранения и совместного использования серверных сред с использованием контейнеров, который помогает в установке приложения или большого стека с помощью простой команды запуска, например, «docker pull» или «docker run».

В этой статье описано когда и зачем использовать Docker.
Fuzz-тестирование в Go
Fuzzing — это метод тестирования, который загружает нашу программу случайными данными. Он дополняет обычное тестирование и позволяет разработчикам находить ошибки, которые было бы трудно найти при вводе вручную. Fuzzing довольно легко настроить в программах Go и может быть адаптирован практически всеми видами кода.

Где можно узнать больше?
Презентация о фаззинге на митапе Google TechTalk.
Учебники, примеры, обсуждения, исследовательские предложения и другие ресурсы, связанные с фаззингом — тут.
Быстрый старт: Golang & MongoDB
Полезная серия статей о том, как подключить и использовать MongoDB.

В первом уроке рассматривается, как установить связь между языком и базой данных.
Во втором уроке продолжается работа с материалом из первого урока, но также показано подключение к определенной коллекции для создания новых документов.
В третьем уроке показано чтение документов из MongoDB и создание запросов для получения документов на основе определенных критериев.
Hugo-темы
Docsy — это тема Hugo для наборов технической документации, обеспечивающая простую навигацию, структуру сайта и многое другое. Это неофициально активно поддерживаемый продукт Google, написанный на Go. Он является самым быстрым в мире статическим движком для сайтов.
На языке С++ можно написать любое приложение для любой задачи. Правда, он настолько сложный, что освоить все тонкости довольно трудно.

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/
Как вы думаете, что выведет данный код? 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.
Ответ:
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
В связи с приближающимся Новым годом, оставим здесь основные слайды и сслыки 2019 года, связанные с Go.
Ускорить разработку. Гибко масштабировать. Обеспечить безопасную работу сайта… Если от этих фраз ты начинаешь гореть, тебе пора на онлайн-интенсив по Django Framework от GeekBrains. Научим быстро и качественно реализовывать веб-проекты, избегать распространенных ошибок при создании приложений с нуля.

Два продуктивных дня, две практические работы и собственный проект для портфолио — все это ты сделаешь под контролем эксперта-куратора. Каждому участнику выдаем именной сертификат.

До 16 декабря курс стоит на 40% дешевле!
Подробная программа, стоимость и условия по ссылке:
https://bit.ly/38uejp6
Довольно интересное чтиво о принципах управления версиями в Go.
Обфускация - это процесс приведения исходного или исполняемого кода программы к виду, сохраняющему её функциональность, но затрудняющему анализ, понимание алгоритмов работы и модификацию при декомпиляции.

Обфускация, как правило, применяется для следующего: затруднения декомпиляции/отладки и изучения программ с целью обнаружения функциональности; затруднения декомпиляции проприетарных программ с целью предотвращения обратной разработки; оптимизации программы с целью уменьшения размера кода.

Применяйте обфускацию в своих проектах с помощью готовых решений.
Несколько месяцев назад была анонсирована версия 1.13 языка Go, но сейчас не за горами версия 1.14, которая уже наделала много шума.
Чтобы не вносить путаницу, сегодня речь пойдет о планах на грядущую версию, в слайдах.
Сегодня вспомним основы языка Go и пробежимся по более сложным вещам: данные, инициализация, интерфейсы, пустой идентификатор, многопоточность, ошибки и многое другое.
Обработка ошибок в любом языке программирования занимает особое место, Go не является исключением. Давайте подробнее разберемся с обработкой ошибок и в конечном итоге поймем, что ошибки в Go следует рассматривать не как причину боли, а как гибкий и мощный инструмент контроля.