Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate
🐧📖 ТОП-10 книг по Linux в 2023 году
Популярные книги по изучению Linux на русском языке, опубликованные за последние несколько лет.
Читать статью
Популярные книги по изучению Linux на русском языке, опубликованные за последние несколько лет.
Читать статью
👍12🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16⚡2🤔2❤1
Процесс оптимизации компилятора с использованием информации о поведении приложений называется Profile-Guided Optimization (PGO) (также известный как Feedback-Directed Optimization (FDO)).
Это перевод того самого гайда от Michael Pratt в официальном блоге Go. И да, в комментариях делятся, что в некоторых кейсах использование PGO дало прирост производительности 5-7%.
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Profile-guided optimization в Go 1.21
В Go 1.20 была выпущена предварительная версия profile-guided optimization (PGO) , которую пользователи могли протестировать. После устранения известных ограничений в предварительной версии и...
❤6🔥3👍1
🔧Pixel 2 — новая, быстрая библиотека 2D игр на Go. Это обновленный форк оригинальной библиотеки Pixel от faiface, задуманный как инициатива сообщества по продолжению разработки библиотеки.
🔗 GitHub & Wiki
🔗 GitHub & Wiki
GitHub
GitHub - faiface/pixel: A hand-crafted 2D game library in Go
A hand-crafted 2D game library in Go. Contribute to faiface/pixel development by creating an account on GitHub.
🔥15
Говорят, что слепой десятипальцевый метод печати на клавиатуре повышает производительность и позволяет не отвлекаться на клавиатуру. А вы им владеете?
Anonymous Poll
26%
Да, это действительно повышает производительность
22%
Да, но он не сильно влияет на производительность
21%
Нет, но хочу освоить
17%
Нет, не вижу в нем смысла
14%
Посмотреть результаты
🥱5
🚀Улучшение HTTP server routing в Go 1.22
Скудные возможности http.ServeMux привели к появлению целой индустрии сторонних библиотек. Новый мультиплексор значительно сократит разрыв с существующими сторонними пакетами и упростит жизнь Go-разработчикам.
Eli Bendersky делится мыслями о новом мультиплексоре (mux) и сравнивает новый подход с примерами из блога:
🔸REST Servers in Go: Part 1 - standard library
🔸REST Servers in Go: Part 2 - using a router package
👉 Читать перевод
Скудные возможности http.ServeMux привели к появлению целой индустрии сторонних библиотек. Новый мультиплексор значительно сократит разрыв с существующими сторонними пакетами и упростит жизнь Go-разработчикам.
Eli Bendersky делится мыслями о новом мультиплексоре (mux) и сравнивает новый подход с примерами из блога:
🔸REST Servers in Go: Part 1 - standard library
🔸REST Servers in Go: Part 2 - using a router package
👉 Читать перевод
Хабр
Улучшенная маршрутизация HTTP-серверов в Go 1.22
В Go 1.22 ожидается появление интересного предложения - расширение возможностей по поиску шаблонов (pattern-matching) в мультиплексоре, используемом по умолчанию для обслуживания HTTP в пакете...
👍14🔥4❤1🥱1
1️⃣Готовим иконку
$
magick convert icon.png -define icon:auto-resize=256,128,64,48,32,16 icon.ico
$
convert icon_16.png icon_32.png icon_48.png icon_256.png -colors 256 icon.ico
2️⃣Создаем файлы .syso
$
go install github.com/akavel/rsrc@latest
$
rsrc -arch 386 -ico icon.ico
$
rsrc -arch amd64 -ico icon.ico
3️⃣Go автоматически выберет любой соответствующий файл .syso в каталоге пакета main и включит его в исполняемый файл, созданный для Windows
👉 Подробнее
#go #tip
Please open Telegram to view this post
VIEW IN TELEGRAM
hjr265.me
Adding Icons for Go-built Windows Executable
I have been using Windows for video games only for several years now. But that changed a little as I started working on Printd, Toph’s print server daemon.
An executable file (.exe) on Windows can provide its icons. If you build a Go program for Windows you…
An executable file (.exe) on Windows can provide its icons. If you build a Go program for Windows you…
👍17🤔4🔥2
Знаете ли вы, что существует минимальная Go-ориентированная реализация Linux для систем вроде Raspberry Pi и не только.
Gokrazy позволяет деплоить Go-программы как appliances на таких устройствах (представьте себе что-нибудь минимальное, например Alpine Linux, но только для Go).
👉 Сайт проекта & GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍6
$
gosh -pln '"Hello, World!"'
$
gosh -n -b 'count := 0' -e 'count++' -a-pln 'count'
$
gosh -i -w-pln 'strings.ReplaceAll(string(_l.Text()), "mod/pkg", "mod/v2/pkg")' -- abc.go xyz.go
$
gosh -http-handler 'http.FileServer(http.Dir("/tmp/xxx"))'
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
utilities/gosh/_gosh.DOC.md at master · nickwells/utilities
miscellaneous useful commands, including 'gosh' the Go scripting tool - nickwells/utilities
🥱21👍9
Поделитесь в комментариях
#холивар
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱4
Курсы для тех, кто хочет получить новые скиллы или перейти в другую компанию на грейд выше
🔥Начните с демо-доступа или бесплатных вебинаров с преподавателем
🔹 Математика для Data Science
Самый хардкорный курс по вышмату! Идеален для тех, кто переходит в DS.
🔹 Алгоритмы и структуры данных
Курс, который на практике познакомит со сложными алгоритмами и научит писать более короткий и эффективный код.
🔹 Базовые модели ML и приложения
Познакомит с основными моделями машинного обучения, заложите основу для дальнейшего изучения более сложных нейронных сетей
🔹Архитектуры и шаблоны
проектирования
Освойте основные паттерны проектирования и прокачайте навыки построения архитектуры программного обеспечения
Приятного обучения и ваш промокод на скидку 30% до 25 октября – MIDDLE
🔥Начните с демо-доступа или бесплатных вебинаров с преподавателем
🔹 Математика для Data Science
Самый хардкорный курс по вышмату! Идеален для тех, кто переходит в DS.
🔹 Алгоритмы и структуры данных
Курс, который на практике познакомит со сложными алгоритмами и научит писать более короткий и эффективный код.
🔹 Базовые модели ML и приложения
Познакомит с основными моделями машинного обучения, заложите основу для дальнейшего изучения более сложных нейронных сетей
🔹Архитектуры и шаблоны
проектирования
Освойте основные паттерны проектирования и прокачайте навыки построения архитектуры программного обеспечения
Приятного обучения и ваш промокод на скидку 30% до 25 октября – MIDDLE
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Sam Rose для блога Encore создал интерактивный гайд, в котором исследует различные методы повтора запросов к серверу и показывает, почему одни методы лучше других. В качестве бонуса — небольшая реализация идеальной стратегии на Go.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤7👏1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Интенсив «Архитектуры и шаблоны проектирования» для middle и senior-разработчиков
Проверьте свои знания, ответив на 8 вопросов – https://proglib.io/w/68a66cf6
🧐 Кому подойдет?
Разработчикам, которые знают любой объектно-ориентированный язык программирования.
🧐 Как проходит обучение?
В течение всего интенсива вы будете создавать игру «Звездные войны». У вас будет собственный корабль, который научится летать по полю битвы, стрелять основным оружием и применять секретное оружие.
👉 Подробная программа обучения
👉 Купить со скидкой 30%
Промокод MIDDLE действует до 25 октября
Проверьте свои знания, ответив на 8 вопросов – https://proglib.io/w/68a66cf6
🧐 Кому подойдет?
Разработчикам, которые знают любой объектно-ориентированный язык программирования.
🧐 Как проходит обучение?
В течение всего интенсива вы будете создавать игру «Звездные войны». У вас будет собственный корабль, который научится летать по полю битвы, стрелять основным оружием и применять секретное оружие.
👉 Подробная программа обучения
👉 Купить со скидкой 30%
Промокод MIDDLE действует до 25 октября
🌚2🔥1
💪Популярный Go-ютубер Anthony GG делится своим подходом к структурированию проектов на Go.
📺 Смотреть
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱34👍8😁3
🚀System Design 101
Готовитесь к собеседованию по проектированию систем или просто хотите понять принцип работы сложных систем? Тогда репозиторий ByteByteGo точно для вас.
👉 GitHub
Готовитесь к собеседованию по проектированию систем или просто хотите понять принцип работы сложных систем? Тогда репозиторий ByteByteGo точно для вас.
👉 GitHub
🔥21❤4👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30
This media is not supported in your browser
VIEW IN TELEGRAM
⚒️Templ — язык HTML-шаблонов для Go с отличными инструментами для разработчиков.
Инструмент позволяет создавать компоненты, которые отображают фрагменты HTML и компонуют их для создания экранов, страниц, документов и приложений.
📌Под капотом:
• Рендеринг на стороне сервера: можно развернуть как бессерверную функцию, Docker-контейнер или стандартную программу Go.
• Статический рендеринг: создавайте статические HTML-файлы для деплоя по вашему выбору.
• Скомпилированный код: компоненты компилируются в код Go.
• Использование Go: вызовите любой код Go и используйте стандартные операторы
• Не требует использования клиентского или серверного JavaScript.
• Поставляется с автодополнением IDE.
🎙 Кстати, инструмент среди прочих недавно обсудили в подкасте «РАДИО-Т» (00:26:52-00:50:36).
Инструмент позволяет создавать компоненты, которые отображают фрагменты HTML и компонуют их для создания экранов, страниц, документов и приложений.
📌Под капотом:
• Рендеринг на стороне сервера: можно развернуть как бессерверную функцию, Docker-контейнер или стандартную программу Go.
• Статический рендеринг: создавайте статические HTML-файлы для деплоя по вашему выбору.
• Скомпилированный код: компоненты компилируются в код Go.
• Использование Go: вызовите любой код Go и используйте стандартные операторы
if
, switch
и for
.• Не требует использования клиентского или серверного JavaScript.
• Поставляется с автодополнением IDE.
templ Hello(name string) {
<div>Hello, { name }</div>
}
templ Greeting(person Person) {
<div class="greeting">
@Hello(person.Name)
</div>
}
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24👍5🌚1
📊 Эффективная работа с JSON в Go
В статье рассматриваются основные подходы для работы с JSON в языке Go. Большое внимание уделено определениям из документации, а также конкретным примерам.
🔗 Читать статью
🔗 Зеркало
В статье рассматриваются основные подходы для работы с JSON в языке Go. Большое внимание уделено определениям из документации, а также конкретным примерам.
🔗 Читать статью
🔗 Зеркало
🔥9
При развертывании приложений в продакшене сборка двоичных файлов с информацией о версии и другими метаданными помогает улучшить процессы мониторинга, регистрации данных и отладки за счет добавления идентификационной информации для отслеживания версий сборок.
Поскольку эти значения постоянно меняются, внесение этих данных в исходный код и их изменение при каждой сборке становится непростой задачей, где могут возникнуть ошибки.
В Go эту проблему можно решить с помощью опции
Этот флаг предоставляет возможность изменять поведение компоновщика и управлять различными аспектами процесса сборки. Вот некоторые примеры того, как может быть использован флаг
1️⃣Установка значений переменных во время компиляции: можно использовать флаг для установки значений переменных во время компиляции, что может быть полезно для внедрения информации о версии, времени сборки или других метаданных в исполняемый файл.
$
2️⃣Оптимизация размера бинарного файла: флаг может быть использован для удаления информации об отладке и символов таблицы, что может значительно уменьшить размер исполняемого файла.
$
3️⃣Изменение поведения компоновщика: можно также изменять другие параметры компоновщика, например, задавать кастомный файл запуска или изменять поведение компоновщика по умолчанию.
$
4️⃣Изменение имени выходного файла: флаг может быть использован для задания кастомного имени выходного файла во время компиляции.
$
👉 Подробнее
#tip
Поскольку эти значения постоянно меняются, внесение этих данных в исходный код и их изменение при каждой сборке становится непростой задачей, где могут возникнуть ошибки.
В Go эту проблему можно решить с помощью опции
-ldflags
команды go build
. Флаг -ldflags
в Go используется для передачи определенных инструкций компоновщику (linker) во время сборки программы. Этот флаг предоставляет возможность изменять поведение компоновщика и управлять различными аспектами процесса сборки. Вот некоторые примеры того, как может быть использован флаг
-ldflags
:1️⃣Установка значений переменных во время компиляции: можно использовать флаг для установки значений переменных во время компиляции, что может быть полезно для внедрения информации о версии, времени сборки или других метаданных в исполняемый файл.
$
go build -ldflags "-X main.version=1.0.0"
2️⃣Оптимизация размера бинарного файла: флаг может быть использован для удаления информации об отладке и символов таблицы, что может значительно уменьшить размер исполняемого файла.
$
go build -ldflags "-s -w"
3️⃣Изменение поведения компоновщика: можно также изменять другие параметры компоновщика, например, задавать кастомный файл запуска или изменять поведение компоновщика по умолчанию.
$
go build -ldflags "-extldflags '-static'"
4️⃣Изменение имени выходного файла: флаг может быть использован для задания кастомного имени выходного файла во время компиляции.
$
go build -ldflags "-o custom_name"
#tip
Please open Telegram to view this post
VIEW IN TELEGRAM
Digitalocean
Использование ldflags для установки информации о версиях в приложениях Go | DigitalOcean
При развертывании приложений в производственной среде сборка двоичных файлов с информацией о версии и другими метаданными помогает улучшить процессы монитори…
🔥23👍6❤2