Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate
👨💻🧩 Психология и ИТ: 17 личностных качеств, необходимых для успешной карьеры
В статье разберем, какие качества необходимы для успешного старта в IT-сфере.
Читать статью
#новость
В статье разберем, какие качества необходимы для успешного старта в IT-сфере.
Читать статью
#новость
👍8😁2🌚2❤1
Представьте, что вы оказались в сложной ситуации, и вам нужно принять решение. Какого сотрудника вы возьмете в команду?
Anonymous Poll
18%
С достойным портфолио и хард-скиллами, но неприятного в общении
61%
Легкого в общении и целеустремленного, но проседающего в технических навыках
20%
Посмотреть результаты
🌚9😁1
Команда Sourcegraph делится опытом оптимизации некоторых базовых математических операций в Code AI и описывает различные этапы оптимизации, начиная с простой реализации на Go и постепенно углубляясь в оптимизацию: от loop unrolling до bounds check elimination.
Но настоящий прорыв произошел при использовании SIMD (single instruction, multiple data) и quantization. Этот опыт показал, насколько мощным может быть низкоуровневое программирование даже в таком высокоуровневом языке, как Go👇
🔗 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🌚2
⚡️Самые полезные каналы по Go в одной папке
В ней:
➖ канал для подготовки к собеседованиям
➖ интересные задачи
➖ основной канал (этот)
➖ книги по Go
➖ лучшие вакансии из сферы
➖ и наш чат, в котором можно общаться и задавать вопросы
Добавляйте 👉 тык сюда
В ней:
Добавляйте 👉 тык сюда
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍5🥱3🌚2👏1
🧰 Goyek — библиотека для автоматизации задач, в которой последние определяются в стиле Cobra, а экшены напоминают юнит-тесты.
В версии 2.1 добавлена поддержка параллельного выполнения задач.
👉 GitHub
В версии 2.1 добавлена поддержка параллельного выполнения задач.
package main
import (
"flag"
"github.com/goyek/goyek/v2"
"github.com/goyek/x/cmd"
)
var msg = flag.String("msg", "greeting message", "Hello world!")
var hello = flow.Define(goyek.Task{
Name: "hello",
Usage: "demonstration",
Action: func(a *goyek.A) {
a.Log(*msg)
cmd.Exec(a, "go version")
},
})
👉 GitHub
👍10
📌 Подборка докладов с конференций Saint HighLoad++ и HighLoad++ 2023:
🌐 Внутренняя платформа для разработки и разработчиков: за что платит бизнес? / Александр Чубинский
🌐 Авито Автозагрузка: как качать миллионы фотографий в сутки / Евгений Толмачев (Авито)
🌐 Ах, как хочется вернуться, ворваться в монолит! / Павел Лакосников (Авито)
🌐 YTsaurus SPYT: помогаем планировщику Apache Spark быть ещё эффективнее / Алексей Шишкин (Яндекс)
🌐 YTsaurus: опыт эксплуатации хранилища из 180К дисков / Павел Сушин (Яндекс)
🌐 YTsaurus — это будущее DWH, и в Яндекс Маркете оно наступило / Филипп Козьмин (Яндекс Маркет)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🌚2
💬 Как вам новый метод HTTP-роутинга
👉 Подробнее
[METHOD ][HOST]/[PATH]
, который ждет нас в Go 1.22?mux := http.NewServeMux()
mux.HandleFunc("GET 127.0.0.1/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello")
})
mux.HandleFunc("GET localhost/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Bonjour")
})
👉 Подробнее
🤔25👍15🔥7🌚1
Руководство основано на документации и дополнено наглядными примерами от автора.
👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20
🔄 Использование RabbitMQ streams в Go
Ранее Percy Bolmér исследовал возможности использования RabbitMQ в Go для построения Event Driven Architecture.
В новом руководстве он затрагивает тему Streams, которые привнесли в RabbitMQ множество функций и ранее были преимуществом Kafka.
📌 Из руководства вы узнаете:
🔸Что такое streams и как они работают
🔸Как использовать streams в Go
🔸Stream Core/Plugin и основные различия
🔸Subentries и Compression
🔸Deduplication
Ранее Percy Bolmér исследовал возможности использования RabbitMQ в Go для построения Event Driven Architecture.
В новом руководстве он затрагивает тему Streams, которые привнесли в RabbitMQ множество функций и ранее были преимуществом Kafka.
📌 Из руководства вы узнаете:
🔸Что такое streams и как они работают
🔸Как использовать streams в Go
🔸Stream Core/Plugin и основные различия
🔸Subentries и Compression
🔸Deduplication
🔥19👍2
В настоящее время, в отличие от Python или NodeJS, Go не позволяет указывать зависимости разработки отдельно от зависимостей приложения. Однако автор предпочитает явно указывать зависимости разработки для лучшей воспроизводимости.
Работая над новым CLI-инструментом для проверки неработающих URL-адресов в файлах markdown, автор столкнулся с интересным соглашением: можно указать зависимости разработки в файле
tools.go
и затем исключить их при сборке бинарного файла, используя тег сборки.Вот как это работает. Предположим, у нашего проекта
foo
есть следующая структура:foo
├── go.mod
├── go.sum
└── main.go
Файл
main.go
содержит простую функцию "hello-world", использующую стороннюю зависимость:package main
import (
"fmt"
// Cowsay - это сторонняя зависимость приложения
cowsay "github.com/Code-Hex/Neo-cowsay"
)
func main() {
fmt.Println(cowsay.Say(cowsay.Phrase("Hello, World!")))
}
Здесь
Neo-cowsay
— это зависимость приложения. Для инициализации проекта запускаются следующие команды:go mod init example.com/foo # создает файлы go.mod и go.sum
go mod tidy # устанавливает зависимости приложения
Теперь предположим, что мы хотим добавить следующие зависимости разработки:
golangci-lint
для линтинга проекта в CI и gofumpt
как более строгий gofmt
. Поскольку эти инструменты не импортируются напрямую, они не отслеживаются инструментарием сборки.Но можно воспользоваться следующим воркфлоу:
1. Разместить файл
tools.go
в корневой директории.2. Импортировать зависимости разработки в этом файле.
3. Запустить
go mod tidy
, чтобы отслеживать как зависимости приложения, так и зависимости разработки через go.mod
и go.sum
.4. Указать тег сборки в
tools.go
, чтобы исключить зависимости разработки из бинарного файла.В этом случае файл
tools.go
выглядит следующим образом:// go:build tools
package tools
import (
// Зависимости разработки
_ "github.com/golangci/golangci-lint/cmd/golangci-lint"
_ "mvdan.cc/gofumpt"
)
Теперь, если вы запустите
go mod tidy
, инструментарий Go будет отслеживать зависимости через файлы go.mod
и go.sum
. Вы можете проверить зависимости в go.mod
.Хотя зависимости разработки отслеживаются вместе с зависимостями приложения, тег сборки
// go:build tools
в начале файла tools.go
скажет инструментарию сборки игнорировать их при создании бинарного файла.Из корневой директории
foo
можно собрать проект, запустив:go build main.go
Это создаст бинарный файл
main
в корневой директории. Чтобы убедиться, что бинарный файл не содержит зависимости разработки, запустите:go tool nm main | grep -Ei 'golangci-lint|gofumpt'
Это не вернет ничего, если зависимости разработки не упакованы в бинарный файл.
Но если вы сделаете это для зависимости приложения, она выведет артефакты:
go tool nm main | grep -Ei 'cowsay'
Команда выведет:
1000b6d40 T github.com/Code-Hex/Neo-cowsay.(*Cow).Aurora
1000b6fb0 T github.com/Code-Hex/Neo-cowsay.(*Cow).Aurora.func1
1000b5610 T github.com/Code-Hex/Neo-cowsay.(*Cow).Balloon
1000b6020 T github.com/Code-Hex/Neo-cowsay.(*Cow).Balloon.func1
...
Если по какой-то причине вы хотите включить зависимости разработки в свой бинарный файл, вы можете передать тег
tools
при сборке бинарного файла:go build --tags tools main.go
#tip
Please open Telegram to view this post
VIEW IN TELEGRAM
Redowan's Reflections
Omitting dev dependencies in Go binaries
As of now, unlike Python or NodeJS, Go doesn’t allow you to specify your development
dependencies separately from those of the application. However, I like to specify the dev
dependencies explicitly for better reproducibility.
While working on a new CLI tool…
dependencies separately from those of the application. However, I like to specify the dev
dependencies explicitly for better reproducibility.
While working on a new CLI tool…
👍33❤2🤔2🥱2
testing
и дополнен библиотекой Gomega.Фреймворк предоставляет подход к написанию тестов, близкий к методологии BDD, и используется для упрощения процесса написания сложных тестовых сценариев, делая вывод тестов более читаемым и понятным.
👉 GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - onsi/gomega: Ginkgo's Preferred Matcher Library
Ginkgo's Preferred Matcher Library. Contribute to onsi/gomega development by creating an account on GitHub.
🥱12👍6❤2🥰2
🤖 Команда Google недавно сделала новое семейство мультимодальных ИИ-моделей Gemini доступным через API с щедрым уровнем бесплатного использования, а также выпустила SDK для нескольких популярных ЯП, включая Go.
Eli Bendersky показал простой пример работы с Go SDK, в котором текстовые вопросы к модели сочетаются с изображениями.
👉 Подробнее
Eli Bendersky показал простой пример работы с Go SDK, в котором текстовые вопросы к модели сочетаются с изображениями.
👉 Подробнее
🔥14❤2👍2🤩2🌚2
Go-разрабы, кто-то из вас уже попробовал новый редактор Zed? Если да, то как впечатления?👇
Forwarded from Библиотека программиста | программирование, кодинг, разработка
Программируйте со скоростью мысли
🛠 Zed — высокопроизводительный многопользовательский редактор кода с открытым исходным кодом от создателей Atom и Tree-sitter. Он сочетает в себе мощь IDE с оперативностью легкого редактора, обеспечивая производительность, которую вы можете почувствовать под рукой.
📌 Он написан на Rust и поддерживает:
✅ Полное синтаксическое дерево для каждого буфера по мере ввода, обеспечивая точную подсветку кода, автоматический отступ, просмотр схемы с возможностью поиска
✅ GitHub Copilot с возможностью генерации/рефакторинга кода с помощью GPT-4
✅ Встроенный полнофункциональный терминал для доступа к командной строке
✅ Модальное редактирования в стиле Vim, а также использование хоткеев и командной палитры
✅ Работу с кодом на любом устройстве
✅ Набор светлых/темных тем, а также возможности кастомизации
✅ Каналы для обсуждения, планирования и написания кода с командой, включая возможности аудио и текстового чата
👉 GitHub
👉 Сайт
🤔21🥱10❤5👍1
Внутри каждого из нас живет критик. А как вы справляетесь со своим?
Anonymous Poll
22%
Хвалю себя за маленькие шаги
38%
Трезво оцениваю ситуацию
11%
Заменяю негативные мысли позитивными
14%
Критикую его в ответ
40%
Не справляюсь
2%
Свой вариант (напишу в комментарии)
Хотите интегрировать функциональность JavaScript в Go-проект? Просто используйте goja, движок ECMAScript/JavaScript, разработанный на чистом Go.
Он позволяет интегрировать функциональность JavaScript непосредственно в проекты на Go, без необходимости использования внешних JS-движков👇
🔗 GitHub
Он позволяет интегрировать функциональность JavaScript непосредственно в проекты на Go, без необходимости использования внешних JS-движков👇
🔗 GitHub
❤14😁11🌚5👍3🤔3