Структурируем CLI-проект на Go: https://proglib.io/w/1ea7928d
Bencane
How to Structure a Go Command-Line Project - Benjamin Cane
What is the best project structure for Go command-line applications? Where should packages go, and where should my application code start? Let's discuss a layout I have found useful.
Не совсем актуальный по дате, но актуальный по практической значимости материал о том, как рефакторинг помог ускорить программу на Go в 23 раза.
https://proglib.io/w/3f4c6e82
https://proglib.io/w/3f4c6e82
Habr
Рефакторинг программы на Go: ускорение в 23 раза
Привет! Меня зовут Марко, я работаю в Badoo в отделе «Платформы». У нас довольно много всего написано на Go, и зачастую это критичные к производительности системы. Именно поэтому сегодня я...
Concurrency in Go.pdf
4.3 MB
Concurrency in Go
Tools and Techniques for Developers (2017)
Автор: Katherine Cox-Buday
Эта практическая книга демонстрирует лучшие практики и шаблоны, которые помогут вам включить конкурентность в свои системы.
Автор шаг за шагом проведет вас через этот процесс. Вы поймете, как Go выбирает моделирование конкурентности, какие проблемы возникают из этой модели и как вы можете составлять примитивы в этой модели для решения проблем. Изучите навыки и инструменты, необходимые для уверенного написания и реализации конкурентных систем любого размера.
Книга позволит вам:
- Понять, как Go решает фундаментальные проблемы, которые затрудняют правильное выполнение конкурентности.
- Узнать о ключевых различиях между параллелизмом и конкурентностью.
- Сформировать шаблоны с этими примитивами для написания поддерживаемого конкурентного кода.
- Составить из шаблонов серию приемов, которые позволят писать большие распределенные системы.
- Изучить синтаксис примитивов синхронизации памяти Go и многое другое.
Tools and Techniques for Developers (2017)
Автор: Katherine Cox-Buday
Эта практическая книга демонстрирует лучшие практики и шаблоны, которые помогут вам включить конкурентность в свои системы.
Автор шаг за шагом проведет вас через этот процесс. Вы поймете, как Go выбирает моделирование конкурентности, какие проблемы возникают из этой модели и как вы можете составлять примитивы в этой модели для решения проблем. Изучите навыки и инструменты, необходимые для уверенного написания и реализации конкурентных систем любого размера.
Книга позволит вам:
- Понять, как Go решает фундаментальные проблемы, которые затрудняют правильное выполнение конкурентности.
- Узнать о ключевых различиях между параллелизмом и конкурентностью.
- Сформировать шаблоны с этими примитивами для написания поддерживаемого конкурентного кода.
- Составить из шаблонов серию приемов, которые позволят писать большие распределенные системы.
- Изучить синтаксис примитивов синхронизации памяти Go и многое другое.
Gta — инструмент от DigitalOcean, который позволяет найти пакеты, зависимости которых изменились.
Во время сборки или непрерывной интеграции вам не придется собирать каждый пакет, поскольку вы будете знать, какие пакеты (и зависимости) изменились.
Статья с описанием
Репозиторий
Во время сборки или непрерывной интеграции вам не придется собирать каждый пакет, поскольку вы будете знать, какие пакеты (и зависимости) изменились.
Статья с описанием
Репозиторий
Digitalocean
GTA: Detecting affected dependent Go packages | DigitalOcean
Helping millions of developers easily build, test, manage, and scale applications of any size - faster than ever before.
Статья, в которой показан процесс преобразования старого статического сайта в современный динамический с помощью Buffalo (экосистема веб-разработки на Go).
https://proglib.io/w/a876ac01
https://proglib.io/w/a876ac01
Gopher Guides
Converting a Static Site to Buffalo
Get a quick start on how to take a static web site and make it dynamic with Buffalo, a rapid Go web framework. - Authored by Cory LaNou
Пакет
ioutil
будет исключен из версии Go 1.16: https://proglib.io/w/5bf111d1srcbeat
Go's ioutil package to be deprecated in 1.16
New features may get all the coverage, but work on core packages has not stopped.
Structslop — инструмент, который исследует и рекомендует оптимальное расположение полей структуры. Это поможет уменьшить объем оперативной памяти и сделать код более эффективным.
Подробное описание
Репозиторий
Подробное описание
Репозиторий
Medium
Efficient struct packing guided pass for Go
TL;DR: at Orijtech, we’ve developed a static analysis pass called “structslop” that can run through your Go programs and recommend for you…
Как Go-разработчику дорасти до мидла и выше? У нас есть ответ!
⠀
Уже знакомы с Golang или другим языком программирования, хотите знать, как развиваться дальше? Онлайн-курс «Go-разработчик PRO» поможет вам повысить уровень владения языком и добиться новых высот в профессии!
⠀
За 8 месяцев вы научитесь:
- разрабатывать веб-приложения с микросервисной архитектурой;
- работать с многопоточностью и конкурентностью;
- использовать алгоритмы и паттерны;
- уменьшать время отклика от сервера;
- работать с сетевыми протоколами;
- проектировать приложения и API;
- разворачивать приложения на Go в Docker;
- понимать принципы взаимодействия приложений на Go с операционными системами *nix.
⠀
По окончании курса вас ждёт дипломный проект, который дополнит портфолио. Вы самостоятельно создадите сервис для получения данных о маршрутах с функциями рендеринга через OSRM, сохранения и отдачи данных пользователю.
⠀
Записывайтесь сейчас: https://clc.am/xlWxKg и получите скидку до 60%!
⠀
Уже знакомы с Golang или другим языком программирования, хотите знать, как развиваться дальше? Онлайн-курс «Go-разработчик PRO» поможет вам повысить уровень владения языком и добиться новых высот в профессии!
⠀
За 8 месяцев вы научитесь:
- разрабатывать веб-приложения с микросервисной архитектурой;
- работать с многопоточностью и конкурентностью;
- использовать алгоритмы и паттерны;
- уменьшать время отклика от сервера;
- работать с сетевыми протоколами;
- проектировать приложения и API;
- разворачивать приложения на Go в Docker;
- понимать принципы взаимодействия приложений на Go с операционными системами *nix.
⠀
По окончании курса вас ждёт дипломный проект, который дополнит портфолио. Вы самостоятельно создадите сервис для получения данных о маршрутах с функциями рендеринга через OSRM, сохранения и отдачи данных пользователю.
⠀
Записывайтесь сейчас: https://clc.am/xlWxKg и получите скидку до 60%!
Ускоряем работу с Go и SQLite с помощью пула соединений и подготовленных операторов: https://proglib.io/w/a491a1db
Sandro Turriate
Making SQLite faster in Go
Make sqlite faster with a connection pool and prepared statements.
Команда разработчиков языка выпустила версии Go 1.15.7 и Go 1.14.14 для решения нескольких недавно обнаруженных проблем безопасности: https://proglib.io/w/2215f6bc
Go language Tutorial
Go 1.15.7 and Go 1.14.14 versions are released
Go language team at Google released Go 1.15.7 and Go 1.14.14 versions to address few security issues recently reported
Краткий список изменений, которых стоит ожидать в Golang 1.17: https://proglib.io/w/a04b3037
Twitter
Daniel Martí
Here's a short list of the changes to look forward to for #golang 1.17, to start landing once the merge window opens in a few weeks. Don't get confused with 1.16, releasing next month. 1.17 will come out in seven months. Each change with a link, so you can…
Евгений Радионов, бэкенд-разработчик на Go, делится опытом настройки продвинутого полнотекстового поиска с использованием ElasticSearch и рассказывает, как интегрировать его в приложение на Go так, чтобы это было удобно поддерживать и расширять.
https://proglib.io/w/8e240968
https://proglib.io/w/8e240968
DOU
Строим продвинутый поиск с ElasticSearch
Евгений Радионов, Back-end Dev, за все время работы столкнулся с множеством интересных и сложных задач, в одной из которых и познакомился с ElasticSearch. В этой статье разберем, как настроить продвинутый полнотекстовый поиск с использованием ElasticSearch…
Мэт Райер на dotGo 2017 с докладом «Искусство тестирования»: https://proglib.io/w/34f1552a
YouTube
dotGo 2017 - Mat Ryer - The Art of Testing
Filmed at https://2017.dotgo.eu on November 6th in Paris. More talks on https://dotconferences.com/talks
Testing code feels like science; we setup expectations, control the environment, run repeatable experiments, make assertions about the outcome. Yet in…
Testing code feels like science; we setup expectations, control the environment, run repeatable experiments, make assertions about the outcome. Yet in…
Почему пакеты Go так отличаются от других языков? Это потому, что их надо рассматривать как слои, а не группы.
https://proglib.io/w/de74b266
https://proglib.io/w/de74b266
Go Beyond
Packages as layers, not groups
Packages in Go are not like other languages. Understand how to structure them as your application grows.
Ребята из Razorpay реализовали аналог Python-библиотеки numpy-financial на Go и включили в нее создание графика амортизации. На данный момент в приоритетном порядке перенесены только 4 функции, но работа идет полным ходом. Отлично подойдет для сферы финтех.
https://proglib.io/w/a1ce9982
https://proglib.io/w/a1ce9982
Кратко о востребованности Go-разработчиков от Хабр Карьеры: https://proglib.io/w/b220eb1d
Хабр
Golang: на что рассчитывать специалисту по Go в море IT-специальностей?
В апреле на Хабре публиковалась статья «Зачем вам учить Go», в которой подробно освещались возможности языка и его преимущества. Ну а сейчас — самое время по...
Интенсив по Docker для разработчиков без «капитанской теории». Отправляемся 25 февраля.
На 2 дня оставим за бортом всё то, о чём и так все знают и погрузимся в глубины крутейшей практики. Вы запустите сайт в контейнере, соберёте несколько контейнеров в рабочую систему, запустите готовый pipeline в Gitlab, рассмотрите подводные камни использования stateful и Docker и научитесь обходить ограничения DockerHub. Помимо этого расскажем об особенностях использования контейнеров с ruby, php, python, go, java, c#, c++ и работе Docker в облаках.
Интересно? А ведь это ещё не всё! Почитать всю программу (там много вкусного) и посмотреть реальные примеры практических заданий можно на сайте.
Йо-хо-хо, морские волки! На абордаж!
На 2 дня оставим за бортом всё то, о чём и так все знают и погрузимся в глубины крутейшей практики. Вы запустите сайт в контейнере, соберёте несколько контейнеров в рабочую систему, запустите готовый pipeline в Gitlab, рассмотрите подводные камни использования stateful и Docker и научитесь обходить ограничения DockerHub. Помимо этого расскажем об особенностях использования контейнеров с ruby, php, python, go, java, c#, c++ и работе Docker в облаках.
Интересно? А ведь это ещё не всё! Почитать всю программу (там много вкусного) и посмотреть реальные примеры практических заданий можно на сайте.
Йо-хо-хо, морские волки! На абордаж!