❗ Первый вебинар нашего курса по AI-агентам уже прошёл!
Запись уже выложили на обучающей платформе — можно влетать и догонять с комфортом.
Первые слушатели уже оставили фидбэки — и, кажется, мы попали в точку:
— «теперь наконец понял, как выбирать модели под задачу — раньше брал первую попавшуюся»
— «без лишнего, по делу, в лайве — кайф»
— «огонь, ожидания 100% оправданы лично у меня»
Если хотели вписаться, но сомневались — ещё не поздно. Вебинары идут вживую, записи сохраняются, чат работает, материалы открыты.
⏳ Ещё можно догнать и пройти всё вместе с потоком.
👉 Залетай на курс
Запись уже выложили на обучающей платформе — можно влетать и догонять с комфортом.
Первые слушатели уже оставили фидбэки — и, кажется, мы попали в точку:
— «теперь наконец понял, как выбирать модели под задачу — раньше брал первую попавшуюся»
— «без лишнего, по делу, в лайве — кайф»
— «огонь, ожидания 100% оправданы лично у меня»
Если хотели вписаться, но сомневались — ещё не поздно. Вебинары идут вживую, записи сохраняются, чат работает, материалы открыты.
⏳ Ещё можно догнать и пройти всё вместе с потоком.
👉 Залетай на курс
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁35💯3👏2
Подготовили для вас промпт, который поможет найти боттлнеки в проекте и оптимизировать работу ваших приложений.
Промпт:
You are an expert Golang developer, renowned for your ability to optimize code for maximum performance. Your task is to analyze a given Golang code snippet and identify potential performance bottlenecks using profiling techniques. You will then propose specific code optimizations to address these bottlenecks, explaining the reasoning behind each optimization and estimating the expected performance improvement. Finally, you will outline the steps required to verify the effectiveness of your optimizations through profiling.
Here is the format you will use to analyze the code, identify bottlenecks, propose optimizations, and outline verification steps:
---
## Code Snippet
$code_snippet
## Performance Bottlenecks Identified Through Profiling
$bottleneck_1: [Description of the bottleneck and how it was identified using profiling tools (e.g., pprof)]
$bottleneck_2: [Description of the bottleneck and how it was identified using profiling tools (e.g., pprof)]
...
## Proposed Optimizations
### Optimization for $bottleneck_1
$optimization_1: [Detailed explanation of the proposed code change to address the bottleneck. Include the modified code snippet.]
**Reasoning:** [Explain why this optimization is expected to improve performance.]
**Estimated Performance Improvement:** [Provide an estimate of the expected performance improvement (e.g., percentage reduction in execution time, memory usage).]
### Optimization for $bottleneck_2
$optimization_2: [Detailed explanation of the proposed code change to address the bottleneck. Include the modified code snippet.]
**Reasoning:** [Explain why this optimization is expected to improve performance.]
**Estimated Performance Improvement:** [Provide an estimate of the expected performance improvement (e.g., percentage reduction in execution time, memory usage).]
...
## Verification Steps
1. **Re-profile the code:** [Explain how to re-profile the code after applying the optimizations using the same profiling tools used initially (e.g., pprof).]
2. **Compare profiling results:** [Explain how to compare the profiling results before and after the optimizations to quantify the performance improvement.]
3. **Benchmark the code:** [Explain how to benchmark the code before and after the optimizations to measure the actual performance improvement in a real-world scenario.]
4. **Analyze resource usage:** [Explain how to monitor resource usage (CPU, memory) before and after the optimizations to ensure that the optimizations are not introducing new bottlenecks.]
---
Here is the Golang code snippet you are tasked with optimizing: [ВАШ КОД]
Вы получите пошаговое руководство по анализу кода, выявлению проблемных мест, предложению конкретных решений и проверке их эффективности.
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱7👍4❤3👾2🤔1
👨💻 Как я не знал этого раньше
В Go есть куча интересных возможностей, о которых многие новички и даже опытные разработчики могут не догадываться.
Вот что недавно обнаружил один из наших подписчиков:
💬 Какие фичи в Go вас удивляют? Делитесь в комментариях, вдруг кто-то об этом не знает 👇
P.S. Если хотите задать вопрос сообществу или поделиться историей, заполните нашу гугл-форму.
🐸 Библиотека Go-разработчика #междусобойчик
В Go есть куча интересных возможностей, о которых многие новички и даже опытные разработчики могут не догадываться.
Вот что недавно обнаружил один из наших подписчиков:
Я долго работал с Go и привык, что всё решается через стандартные библиотеки и горутины, но как-то наткнулся на возможность запускать C-код прямо из Go через cgo. Сначала не мог поверить, что это реально работает! Не знал, что Go так легко может взаимодействовать с C, чтобы использовать готовые библиотеки и функции. Это даже оказалось полезным в одном из проектов!
💬 Какие фичи в Go вас удивляют? Делитесь в комментариях, вдруг кто-то об этом не знает 👇
P.S. Если хотите задать вопрос сообществу или поделиться историей, заполните нашу гугл-форму.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13😁3❤2🤔1😢1
Media is too big
VIEW IN TELEGRAM
Как относитесь к созданию своего жпт не через конструктор, а хардкорно через код?
🔥 — я своего завайбкодил
🏃♀️ Ссылка на курс
🔥 — я своего завайбкодил
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱6👍3🔥3🤔2❤1
Ускорьте свою работу в IDE — используйте проверенные комбинации, позволяющие быстро находить команды, генерировать код и редактировать фрагменты без отрыва от клавиатуры:
• Найти действие —
Ctrl + Shift + A
Быстрый поиск любой команды или настройки IDE по её названию.
• Базовое автодополнение —
Ctrl + Space
Подстановка переменных, методов и названий классов на основе текущего контекста.
• Умное автодополнение —
Ctrl + Shift + Space
Предложения на основе типов данных и сигнатур функций.
• Интенции и быстрые исправления —
Alt + Enter
Подсказки по автоматическим рефакторингам, импортам и исправлению ошибок.
• Генерация кода —
Alt + Insert
Автоматическое создание конструкций: конструкторов, геттеров/сеттеров, методов equals/hashCode и пр.
• Параметры метода —
Ctrl + P
Отображение списка параметров функции или метода и подсветка текущего аргумента.
• Сгруппировать выбор —
Ctrl + Shift + W
Поэтапное сужение выделения — от выражения к отдельному слову.
• Расширить выбор —
Ctrl + W
Поэтапное расширение выделения — от слова к целому выражению, блоку, методу.
• Недавние файлы —
Ctrl + E
Быстрый переход к последним открытым файлам и вкладкам.
• Переименовать —
Shift + F6
Интеллектуальное переименование переменных, методов и классов с учётом ссылок.
• Поиск везде — Двойной
Shift
Универсальный поиск по файлам, классам, символам и действиям IDE.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍5🥱4🌚2🔥1
🛠 Интерфейсы с дженериками
Представьте, что ваш код — это парк, а интерфейсы — дорожки между объектами. Что если дорожки могли бы меняться по размеру и форме под любой тип посетителя?
В блоге Go пояснили как это сделать и поделились своими рассуждениями о дженериках.
➡️ Читать статью
🐸 Библиотека Go-разработчика #буст
Представьте, что ваш код — это парк, а интерфейсы — дорожки между объектами. Что если дорожки могли бы меняться по размеру и форме под любой тип посетителя?
В блоге Go пояснили как это сделать и поделились своими рассуждениями о дженериках.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
💯18😁6👍5❤1
🧩 Субботний ребус
Что мы загадали в ребусе? Пишите под спойлер в комментарии 👇
🐸 Библиотека Go-разработчика #междусобойчик
Что мы загадали в ребусе? Пишите под спойлер в комментарии 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
Собрали для вас интересные материалы недели в одном месте.
— Для чего нужен директивный комментарий
//go:nosplit
— revive v1.11.0
Пересмотрены и обновлены сторонние зависимости, введено несколько новых правил проверки, улучшены существующие проверки и устранены различные баги и неточности.
— Свежий Cup o' Go
Ведущие обсуждают выход Go 1.24.5 и Go 1.23.11, а также второй релиз-кандидат Go 1.25. Ключевые предложения в языке (мультиобработчики для
log/slog
и выражения для простых типов) и знакомство с пакетом urfave/cli
для создания CLI-инструментов на Go— Как вывести резюме в топ
— Минорные обновления Go
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Forwarded from Библиотека задач по Go | тесты, код, задания
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по Go | тесты, код, задания
☝️ Последний шанс купить курсы Proglib Academy с доступом навсегда!
Это не просто летняя распродажа, это финал эпохи. Мы дарим скидку 40% на все курсы, включая полностью обновлённый курс по Python (предложение НЕ ДЕЙСТВУЕТ только на курс по AI-агентам для DS-специалистов).
Но главное: с 1 августа доступ ко всем новым курсам станет ограниченным. Успейте инвестировать в свои знания на самых выгодных условиях!
👉 Выбрать курс
Это не просто летняя распродажа, это финал эпохи. Мы дарим скидку 40% на все курсы, включая полностью обновлённый курс по Python (предложение НЕ ДЕЙСТВУЕТ только на курс по AI-агентам для DS-специалистов).
Но главное: с 1 августа доступ ко всем новым курсам станет ограниченным. Успейте инвестировать в свои знания на самых выгодных условиях!
👉 Выбрать курс
❤2🥱1
Senior Golang Developer — от 350 000 ₽, гибрид в Москве.
Go-разработчик в глобальную аналитическую платформу.
Backend Golang Middle — до 200 000 ₽, удаленно в Москве.
Golang-разработчик — от 250 000 ₽, офис в Москве.
Бэкенд-разработчик — от 350 000 ₽, удаленно в Москве.
Golang Разработчик — до 350 000₽, гибрид в Москве.
Бустер — удалённо (не только Москва)
Please open Telegram to view this post
VIEW IN TELEGRAM
😢5🥱1
В долгоживущих сервисах важно применять новые настройки без перезапуска процесса. Рассмотрим, как организовать «горячую» перезагрузку конфигурации.
1. Структура хранения настроек
Используем
atomic.Value
, поскольку он обеспечивает безопасную запись и чтение из любого потока без блокировок.type Config struct {
Port int `yaml:"port"`
LogLevel string `yaml:"log_level"`
FeatureXOn bool `yaml:"feature_x_on"`
}
var config atomic.Value // будет хранить Config
2. Загрузка и инициализация
При старте приложения читаем файл и парсим его один раз.
func loadConfig(path string) (Config, error) {
data, err := os.ReadFile(path)
if err != nil {
return Config{}, err
}
var cfg Config
if err := yaml.Unmarshal(data, &cfg); err != nil {
return Config{}, err
}
return cfg, nil
}
// при старте
initialCfg, err := loadConfig("config.yaml")
if err != nil {
log.Fatalf("Ошибка загрузки конфига: %v", err)
}
config.Store(initialCfg)
Если конфиг битый или недоступен, логгируем и останавливаем запуск — так мы предотвращаем непредсказуемое поведение в продакшене.
3. Наблюдаем за файлом
С помощью библиотеки
fsnotify
отслеживаем изменения на диске. Мы реагируем только на события Write и Create, чтобы не перегружать систему избыточными вызовами.watcher, err := fsnotify.NewWatcher()
if err != nil {
log.Fatal(err)
}
defer watcher.Close()
go func() {
for event := range watcher.Events {
if event.Op&(fsnotify.Write|fsnotify.Create) != 0 {
if newCfg, err := loadConfig("config.yaml"); err == nil {
config.Store(newCfg)
log.Println("⚡️ Конфиг перезагружен:", newCfg)
} else {
log.Println("Ошибка при перезагрузке конфига:", err)
}
}
}
}()
if err := watcher.Add("config.yaml"); err != nil {
log.Fatal(err)
}
В любой части вашего кода обращайтесь к
config.Load().(Config)
. Так вы гарантированно получите последнюю версию настроек без риска состояния гонки.Что можно улучшить
• Добавьте debounce, чтобы игнорировать «шум» при сохранении редактора.
• Внедрите в HTTP-эндпоинт /reload, чтобы рулить перезагрузкой через API.
• Поддержите валидацию новой конфигурации и откат к предыдущей версии при ошибках.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤6👾3
Каждый соискатель мечтает о том, чтобы его резюме попало в поле зрения рекрутера, а для этого нужно быть заметным среди множества других кандидатов.
В карточках разобрали как этого добиться, а в статье вы найдёте более подробные шаги.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱6😁5❤🔥2❤1