🤔 Какие вебинары вам действительно нужны?
Привет, Go-разработчики! 👋
Мы готовим новые вебинары и хотим сделать их максимально полезными для вас. Это поможет нам не только создавать актуальный контент, но и развивать проект, находя новые точки контактов для вас.
Ваши ответы дадут нам понимание, какие темы и форматы действительно важны, а также помогут сделать вебинары интереснее и продуктивнее.
Заполнение займет всего пару минут, а нам это очень поможет! Спасибо, что участвуете в нашем развитии! 💙
👉 Пройти опрос
Привет, Go-разработчики! 👋
Мы готовим новые вебинары и хотим сделать их максимально полезными для вас. Это поможет нам не только создавать актуальный контент, но и развивать проект, находя новые точки контактов для вас.
Ваши ответы дадут нам понимание, какие темы и форматы действительно важны, а также помогут сделать вебинары интереснее и продуктивнее.
Заполнение займет всего пару минут, а нам это очень поможет! Спасибо, что участвуете в нашем развитии! 💙
👉 Пройти опрос
👍2
🎧 Новый выпуск подкаста о Go
В последнем эпизоде подкаста Cup o' Go ведущие обсуждают актуальные события в мире Go.
Основные темы выпуска:
➖ Обновления безопасности: релизы Go 1.23.6, 1.22.12 и кандидат на релиз 1.24rc3, включающие важные исправления уязвимостей.
➖ Предложение по автоматизации миграций: принятие предложения
➖ Атаки на цепочки поставок: обсуждение недавней вредоносной активности, использующей кэширование Go Module Proxy для сохранения вредоносных пакетов.
🖇 Слушать обсуждение новостей
🐸 Библиотека Go разработчика #подкаст
В последнем эпизоде подкаста Cup o' Go ведущие обсуждают актуальные события в мире Go.
Основные темы выпуска:
cmd/fix
для автоматизации простых депрекаций.🖇 Слушать обсуждение новостей
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2
⏳Разбираем cron-like решения
Иногда в приложениях нужно выполнять задачи по расписанию: чистить кеши, отправлять отчёты или делать бэкапы. В Go есть несколько способов — от стандартных инструментов до сторонних библиотек.
➖ Простой вариант —
➖ Сторонние библиотеки
robfig/cron поддерживает синтаксис crontab для планирования задач:
gocron предлагает простой API для повторяющихся задач:
➖ Системный
Вместо того чтобы держать Go-процесс постоянно запущенным, можно использовать системный демон
Если нужна простая задержка – хватит
➡️ Разбор всех вариантов — в статье
🐸 Библиотека Go разработчика
Иногда в приложениях нужно выполнять задачи по расписанию: чистить кеши, отправлять отчёты или делать бэкапы. В Go есть несколько способов — от стандартных инструментов до сторонних библиотек.
time.AfterFunc()
или time.Ticker()
time.AfterFunc
позволяет выполнить функцию однократно после заданной задержки:time.AfterFunc(3*time.Second, func() {
fmt.Println("Executed after 3 seconds")
})
ticker
используется для периодического выполнения задач через определенные интервалы времени:ticker := time.NewTicker(2 * time.Second)
defer ticker.Stop()
for i := 0; i < 3; i++ {
<-ticker.C
fmt.Println("Task executed at:", time.Now())
}
robfig/cron
и gocron
robfig/cron поддерживает синтаксис crontab для планирования задач:
c := cron.New()
// Планируем задачу каждые 5 секунд
c.AddFunc("*/5 * * * * *", func() {
fmt.Println("Cron job executed at:", time.Now())
})
c.Start()
gocron предлагает простой API для повторяющихся задач:
s := gocron.NewScheduler(time.UTC)
s.Every(10).Seconds().Do(func() {
fmt.Println("Scheduled task executed at:", time.Now())
})
s.StartAsync()
cron
Вместо того чтобы держать Go-процесс постоянно запущенным, можно использовать системный демон
cron
для выполнения Go-скриптов.* * * * * /path/to/your-go-program
Если нужна простая задержка – хватит
time.Ticker()
. Если расписание сложнее – берём cron
или gocron
.Please open Telegram to view this post
VIEW IN TELEGRAM
👍23❤4
Forwarded from Proglib.academy | IT-курсы
Как применять сторителлинг на IT-собеседовании
Чтобы выделиться среди других кандидатов, можно использовать сторителлинг — инструмент, который помогает не только запомниться работодателю, но и показать свои софт-скиллы и опыт в выгодном свете.
➡️ Что внутри статьи:
▪️ Почему сторителлинг работает лучше сухого перечисления навыков.
▪️ Советы по созданию историй для IT-собеседований.
▪️ Готовые примеры успешных историй.
🔗 Читать статью
🔵 Чтобы подготовиться к IT-собеседованию, попробуйте наш курс «Алгоритмы и структуры данных»
Чтобы выделиться среди других кандидатов, можно использовать сторителлинг — инструмент, который помогает не только запомниться работодателю, но и показать свои софт-скиллы и опыт в выгодном свете.
▪️ Почему сторителлинг работает лучше сухого перечисления навыков.
▪️ Советы по созданию историй для IT-собеседований.
▪️ Готовые примеры успешных историй.
🔗 Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Go 1.24 привнес нововведение — пакет weak, который позволяет использовать слабые указатели для оптимизации работы с памятью.
Обычно, когда в Go создается переменная, она не удаляется из памяти, пока на нее есть ссылки. Это приводит к возможным утечкам памяти в кэше или структурах данных, которые «забывают» очистить объекты.
Слабые указатели решают эту проблему: они не мешают сборке мусора — объект удаляется, если на него нет сильных ссылок.
package main
import (
"fmt"
"runtime/weak"
)
func main() {
obj := &struct{ Data string }{"Hello, Weak!"}
ref := weak.New(obj) // Создаем слабую ссылку
obj = nil // Убираем сильную ссылку
runtime.GC() // Принудительно запускаем GC
if ref.Get() == nil {
fmt.Println("Object was garbage collected!")
} else {
fmt.Println("Object is still alive:", ref.Get())
}
}
Важно:
weak.Get()
возвращает nil
, если объект был удален сборщиком мусора.Пример кэширования с weak:
cache := make(map[string]*weak.Ref)
func getCachedData(key string) *Data {
if ref, found := cache[key]; found {
if data := ref.Get().(*Data); data != nil {
return data
}
}
newData := fetchDataFromDB(key)
cache[key] = weak.New(newData)
return newData
}
Если кэшированный объект перестанет использоваться, Go автоматически освободит память.
📎 Подробнее про слабые указатели
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22🤔5❤3👍1👾1
🛠 Разработка CLI-приложения с миграциями и генерацией кода
Показываем ещё один пример приложения на Go. В нём можно попрактиковать:
• Настройку окружения: подключение PostgreSQL к Go.
• Работу с миграциями: управление схемами базы данных.
• Генерацию кода: ускоряем разработку и минимизируем ошибки.
• CLI-инструменты: автоматизация работы с БД.
Как это можно использовать
1️⃣ Менеджер задач. Создаешь CLI-приложение, где можно добавлять, удалять и редактировать задачи в БД.
2️⃣ Блог-платформа. Автоматически генерируешь код для работы с постами, комментариями и пользователями.
3️⃣ CRM-система. База клиентов, заказы, отчеты – все управляется через CLI.
🖇 В статье всё подробно разобрано с кодом и пояснениями.
🐸 Библиотека Go разработчика
Показываем ещё один пример приложения на Go. В нём можно попрактиковать:
• Настройку окружения: подключение PostgreSQL к Go.
• Работу с миграциями: управление схемами базы данных.
• Генерацию кода: ускоряем разработку и минимизируем ошибки.
• CLI-инструменты: автоматизация работы с БД.
Как это можно использовать
🖇 В статье всё подробно разобрано с кодом и пояснениями.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍5
🔄 Асинхронное кэширование в Go
SturdyC – это легковесная, но мощная библиотека кэширования для Go, которая поможет уменьшить нагрузку и повысить производительность.
🔍 Что делает SturdyC особенным
• Объединение запросов (Request Coalescing). Предотвращает лавины запросов, если кэш отсутствует.
• Асинхронное обновление данных. Данные обновляются в фоне, не блокируя основной поток.
• Минимизация блокировок. Неблокирующие чтения + умное шардирование.
• Гибкие настройки. Адаптируется под разные сценарии кэширования.
Пример использования:
➡️ Репозиторий проекта на GitHub
🐸 Библиотека Go разработчика
SturdyC – это легковесная, но мощная библиотека кэширования для Go, которая поможет уменьшить нагрузку и повысить производительность.
🔍 Что делает SturdyC особенным
• Объединение запросов (Request Coalescing). Предотвращает лавины запросов, если кэш отсутствует.
• Асинхронное обновление данных. Данные обновляются в фоне, не блокируя основной поток.
• Минимизация блокировок. Неблокирующие чтения + умное шардирование.
• Гибкие настройки. Адаптируется под разные сценарии кэширования.
Пример использования:
package main
import (
"fmt"
"github.com/viccon/sturdyc"
"time"
)
func main() {
cache := sturdyc.New[string, string](time.Minute)
cache.Set("user_1", "John Doe")
value, found := cache.Get("user_1")
if found {
fmt.Println("User found in cache:", value)
} else {
fmt.Println("User not in cache")
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
🏗 🔨 Как не сломать продакшен: 8 основных паттернов распределенных систем
Разработка распределённых систем сопряжена с множеством вызовов: от управления состоянием и взаимодействия сервисов до обработки отказов и масштабирования. Чтобы упростить решение этих задач, инженеры используют проверенные временем архитектурные паттерны.
В статье рассматриваются ключевые шаблоны, помогающие строить надёжные и эффективные распределённые системы.
➡️ Читать статью
🐸 Библиотека devops'a
Разработка распределённых систем сопряжена с множеством вызовов: от управления состоянием и взаимодействия сервисов до обработки отказов и масштабирования. Чтобы упростить решение этих задач, инженеры используют проверенные временем архитектурные паттерны.
В статье рассматриваются ключевые шаблоны, помогающие строить надёжные и эффективные распределённые системы.
➡️ Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
🎨 Gowall: цветовая палитра начинается с вдохновения
Gowall – это CLI-инструмент, который превращает любое изображение в красивую цветовую схему. Поддерживает Catppuccin, Nord, Gruvbox, Solarized и другие темы. Для тех, кто устал настраивать цвета вручную.
Что умеет Gowall:
✅ Извлекать цветовую схему из любого изображения.
✅ Преобразовывать изображения в пиксель-арт.
✅ Масштабировать картинки с улучшением качества.
✅ Автоматически инвертировать цвета и заменять их на заданные.
Написан на Go для разработчиков, дизайнеров и любителей кастомизации!
🖇 Исходный код проекта в репозитории
🐸 Библиотека Go разработчика
Gowall – это CLI-инструмент, который превращает любое изображение в красивую цветовую схему. Поддерживает Catppuccin, Nord, Gruvbox, Solarized и другие темы. Для тех, кто устал настраивать цвета вручную.
Что умеет Gowall:
Написан на Go для разработчиков, дизайнеров и любителей кастомизации!
🖇 Исходный код проекта в репозитории
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🆚 Go vs C#
Выбор языка — это всегда компромисс между производительностью, удобством и экосистемой. Давайте разберёмся, чем отличаются Go и C#.
➖ Область применения
• Go: создан Google, ориентирован на простоту, скорость и параллельность. Отлично подходит для облачных сервисов, микросервисов и высоконагруженных систем.
• C#: язык Microsoft, мощный инструмент для корпоративных решений, игр (Unity) и десктопных приложений.
➖ Кроссплатформенность
• Go: отлично компилируется под разные платформы без зависимостей.
• C#: поддерживает кроссплатформенность через .NET Core, но требует среды выполнения.
➖ Система типов
• Go: строгая, но минималистичная. Отсутствует наследование, но есть интерфейсы.
• C#: мощная объектно-ориентированная система с поддержкой дженериков, интерфейсов и функционального программирования.
➖ Где какой язык лучше
Выбирайте Go, если:
✅ Нужна максимальная производительность без лишней сложности.
✅ Работаете с микросервисами, API, контейнерами, облачными сервисами.
✅ Важна лёгкость развертывания без сложных зависимостей.
Выбирайте C#, если:
✅ Разрабатываете десктопные приложения или сервисы под Windows.
✅ Нужна мощная экосистема с продвинутыми библиотеками.
✅ Создаёте игры на Unity.
➡️ Подробное сравнение в статье
🐸 Библиотека Go разработчика
Выбор языка — это всегда компромисс между производительностью, удобством и экосистемой. Давайте разберёмся, чем отличаются Go и C#.
• Go: создан Google, ориентирован на простоту, скорость и параллельность. Отлично подходит для облачных сервисов, микросервисов и высоконагруженных систем.
• C#: язык Microsoft, мощный инструмент для корпоративных решений, игр (Unity) и десктопных приложений.
• Go: отлично компилируется под разные платформы без зависимостей.
• C#: поддерживает кроссплатформенность через .NET Core, но требует среды выполнения.
• Go: строгая, но минималистичная. Отсутствует наследование, но есть интерфейсы.
• C#: мощная объектно-ориентированная система с поддержкой дженериков, интерфейсов и функционального программирования.
Выбирайте Go, если:
Выбирайте C#, если:
➡️ Подробное сравнение в статье
Please open Telegram to view this post
VIEW IN TELEGRAM
😁37👍11❤4👾3😢1
Нашли удобный ресурс для изучения Go на примерах кода. Он построен в формате "пример + объяснение". Темы сгруппированы по уровням сложности, начиная с основ синтаксиса и заканчивая конкурентным программированием.
Примеры тем:
🔹 Переменные и типы данных — объявление переменных, использование const и :=.
🔹 Циклы и условия — for, if-else, switch.
🔹 Функции и замыкания — объявление, передача аргументов, использование анонимных функций.
🔹 Структуры и интерфейсы — работа со сложными типами данных.
🔹 Горутины и каналы — конкурентное программирование в Go.
🔹 Файлы, потоки, HTTP-запросы — ввод-вывод, сетевое взаимодействие.
🖇 Изучить примеры Go-кода
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6😁6👍5
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования
🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion
#️⃣C#
Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования
🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion
#️⃣C#
Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
📊 Как себя чувствует IT-рынок в 2025 году?
Друзья, запускаем важное исследование рынка труда в IT!
Нам очень важно понять:
• Как изменились зарплаты
• Что происходит с наймом
• Есть ли сокращения или рост
🔐 Опрос полностью анонимный
⏱️ Займёт всего 3-5 минут
📈 Результаты опубликуем в подробной статье
Ваши ответы помогут составить реальную картину происходящего в индустрии.
👉 Пройти опрос
Друзья, запускаем важное исследование рынка труда в IT!
Нам очень важно понять:
• Как изменились зарплаты
• Что происходит с наймом
• Есть ли сокращения или рост
🔐 Опрос полностью анонимный
⏱️ Займёт всего 3-5 минут
📈 Результаты опубликуем в подробной статье
Ваши ответы помогут составить реальную картину происходящего в индустрии.
👉 Пройти опрос
Компания Dagger решила сделать смелый шаг — полностью заменить фронтенд на React с TypeScript на Go с WebAssembly.
Почему отказались от React
• Две кодовые базы (TypeScript для фронтенда и Go для бекенда) замедляли разработку и усложняли поддержку.
• Несогласованность логики: приходилось дублировать бизнес-логику между Go и TypeScript.
• Зависимость от фронтенд-стека: сложности в поиске разработчиков с опытом React.
Как реализовали новый интерфейс
1. Использовали Go-app — фреймворк для создания PWA на Go.
2. Перенесли бизнес-логику из React в Go, избегая двойного кода.
3. Настроили сборку под WebAssembly для запуска Go-кода прямо в браузере
В результате время выпуска новых фич сократилось на треть.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20⚡5👾4👍3🎉2
😳 Если бы языки программирования были девушками
Выбрать язык — всё равно что найти идеального партнера. Кто-то западает на строгую типизацию, кто-то ищет простоту и гибкость, а некоторые готовы углубиться в самые сложные алгоритмы отношений.
Мы заглянули в Тиндер разработчика и нашли там Go. Как вам? 😏
Еще большепрекрасных дам языков программирования — в нашем канале Библиотека программиста.
Свайпайте и выбирайте свой мэтч ❤️
🐸 Библиотека Go разработчика
Выбрать язык — всё равно что найти идеального партнера. Кто-то западает на строгую типизацию, кто-то ищет простоту и гибкость, а некоторые готовы углубиться в самые сложные алгоритмы отношений.
Мы заглянули в Тиндер разработчика и нашли там Go. Как вам? 😏
Еще больше
Свайпайте и выбирайте свой мэтч ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10🥱5😢3🥰1
🛠 CQRS и паттерн «Репозиторий»
Перепутанные SQL-запросы, сложный рефакторинг и отсутствие тестируемости — частые проблемы монолитных приложений.
Решить их помогают проверенные архитектурные паттерны: CQRS, который разделяет чтение и запись, и паттерн «Репозиторий», который упрощает работу с базой
➖ Что такое CQRS
CQRS (Command Query Responsibility Segregation) — это архитектурный паттерн, который разделяет операции чтения и записи. Вместо одного интерфейса для всех операций мы получаем две независимые модели.
Пример интерфейсов:
➖ Что такое паттерн «Репозиторий»
Паттерн «Репозиторий» — это слой между бизнес-логикой и источником данных. Он инкапсулирует логику доступа к базе и предоставляет простой интерфейс для работы с данными.
Пример паттерна «Репозиторий»:
Такой интерфейс можно реализовать для разных источников данных — in-memory, MSSQL, PostgreSQL или Redis.
CQRS — это официант, который принимает заказы, а «Репозиторий» — повар. Главное — чтобы заказ не завис на «кухне»... или в deadlock’е.
🖇 Подробнее об этих подходах
🐸 Библиотека Go разработчика
Перепутанные SQL-запросы, сложный рефакторинг и отсутствие тестируемости — частые проблемы монолитных приложений.
Решить их помогают проверенные архитектурные паттерны: CQRS, который разделяет чтение и запись, и паттерн «Репозиторий», который упрощает работу с базой
CQRS (Command Query Responsibility Segregation) — это архитектурный паттерн, который разделяет операции чтения и записи. Вместо одного интерфейса для всех операций мы получаем две независимые модели.
Пример интерфейсов:
// Интерфейс для записи
type UserCommand interface {
Create(user *User) error
Update(user *User) error
Delete(id int) error
}
// Интерфейс для чтения
type UserQuery interface {
GetByID(id int) (*User, error)
ListAll() ([]*User, error)
}
Паттерн «Репозиторий» — это слой между бизнес-логикой и источником данных. Он инкапсулирует логику доступа к базе и предоставляет простой интерфейс для работы с данными.
Пример паттерна «Репозиторий»:
type UserRepository interface {
GetByID(id int) (*User, error)
Create(user *User) error
Update(user *User) error
Delete(id int) error
}
Такой интерфейс можно реализовать для разных источников данных — in-memory, MSSQL, PostgreSQL или Redis.
CQRS — это официант, который принимает заказы, а «Репозиторий» — повар. Главное — чтобы заказ не завис на «кухне»... или в deadlock’е.
🖇 Подробнее об этих подходах
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱16👍10😁2❤1
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
🐳 Делаем конкурента DeepSeek R1-Zero на домашней пекарне: метод GRPO в Unsloth
Обычно LLM требуют мощных GPU, но теперь даже на видеокарте с ограниченной памятью можно обучать модели логического рассуждения.
💡 Фишка — новый алгоритм GRPO, который позволяет моделям развивать логическое мышление без вмешательства человека.
Подробнее в нашей статье: https://proglib.io/sh/MyBCbq9is5
Обычно LLM требуют мощных GPU, но теперь даже на видеокарте с ограниченной памятью можно обучать модели логического рассуждения.
💡 Фишка — новый алгоритм GRPO, который позволяет моделям развивать логическое мышление без вмешательства человека.
Подробнее в нашей статье: https://proglib.io/sh/MyBCbq9is5
👍4❤2
🌳 Бинарное дерево поиска (BST) в Go
BST — это бинарное дерево, где:
• Значение в левой ветви меньше значения в узле.
• Значение в правой ветви больше значения в узле.
Такое свойство обеспечивает эффективный поиск, вставку и удаление — в среднем за O(log n).
Пример реализации:
Как это работает?
1️⃣ Вставка:
• Если значение меньше текущего узла, идём в левое поддерево.
• Если больше — в правое.
• Если узел пуст, создаём новый.
2️⃣ Поиск:
• Сравниваем искомое значение с текущим.
• Меньше — идём влево, больше — вправо, равное — нашли.
3️⃣ Обход:
• In-order обход (LNR) обходит узлы в отсортированном порядке.
💬 А вы уже реализовали BST? Делитесь опытом и вопросами в комментариях!
🐸 Библиотека Go разработчика
BST — это бинарное дерево, где:
• Значение в левой ветви меньше значения в узле.
• Значение в правой ветви больше значения в узле.
Такое свойство обеспечивает эффективный поиск, вставку и удаление — в среднем за O(log n).
Пример реализации:
// Node — узел бинарного дерева
type Node struct {
Value int
Left *Node
Right *Node
}
// Insert — вставка нового значения в дерево
func (n *Node) Insert(value int) {
if value < n.Value {
if n.Left == nil {
n.Left = &Node{Value: value}
} else {
n.Left.Insert(value)
}
} else if value > n.Value {
if n.Right == nil {
n.Right = &Node{Value: value}
} else {
n.Right.Insert(value)
}
}
}
// Search — поиск значения в дереве
func (n *Node) Search(value int) *Node {
if n == nil {
return nil
}
if n.Value == value {
return n
} else if value < n.Value {
return n.Left.Search(value)
} else {
return n.Right.Search(value)
}
}
// InOrderTraversal — обход дерева в порядке (LNR)
func (n *Node) InOrderTraversal() {
if n == nil {
return
}
n.Left.InOrderTraversal()
fmt.Print(n.Value, " ")
n.Right.InOrderTraversal()
}
Как это работает?
• Если значение меньше текущего узла, идём в левое поддерево.
• Если больше — в правое.
• Если узел пуст, создаём новый.
• Сравниваем искомое значение с текущим.
• Меньше — идём влево, больше — вправо, равное — нашли.
• In-order обход (LNR) обходит узлы в отсортированном порядке.
💬 А вы уже реализовали BST? Делитесь опытом и вопросами в комментариях!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19👍17🥱4😁2
⚠️ В машинном обучении, как в любви: слишком идеальные предсказания – это подозрительно!
Когда модель слишком прилипчива к тренировочным данным, результат оказывается… ну, как в отношениях, когда всё кажется идеальным, но реальность ломает сердце.
❌ Оверфиттинг (Overfitting) – модель так хорошо запомнила тренировочные данные, что на реальных данных начинает путаться.
💔 В любви: «Я выбрал идеального партнёра по профилю, а в жизни выяснилось, что его «идеальность» – всего лишь иллюзия!»
❌ Андерфиттинг (Underfitting) – модель обучена настолько поверхностно, что предсказывает мэтчи случайным образом.
💔 В любви: «Мне нравятся только люди с именем Александр, а всех остальных я даже не замечаю – бедный фильтр!»
❌ Неправильный выбор фичей (Feature Selection Fail) – если модель опирается на неважные признаки, она предсказывает мэтчи хуже случайности.
💔 В любви: «Ты любишь авокадо? Значит, мы созданы друг для друга!» – а потом оказывается, что это вовсе не про важное.
🎯 На вебинаре мы разобрали, как избежать этих ошибок и создать работающую модель для speed dating, которая на самом деле помогает находить любовь! Вчера мы не просто говорили о любви – мы её предсказывали!
🔥 Спасибо всем, кто был с нами и участвовал!
💘 Как же это было?
Если ты пропустил вебинар или хочешь пересмотреть запись – просто перейди по [ссылке] и получи видео 😉
Когда модель слишком прилипчива к тренировочным данным, результат оказывается… ну, как в отношениях, когда всё кажется идеальным, но реальность ломает сердце.
❌ Оверфиттинг (Overfitting) – модель так хорошо запомнила тренировочные данные, что на реальных данных начинает путаться.
💔 В любви: «Я выбрал идеального партнёра по профилю, а в жизни выяснилось, что его «идеальность» – всего лишь иллюзия!»
❌ Андерфиттинг (Underfitting) – модель обучена настолько поверхностно, что предсказывает мэтчи случайным образом.
💔 В любви: «Мне нравятся только люди с именем Александр, а всех остальных я даже не замечаю – бедный фильтр!»
❌ Неправильный выбор фичей (Feature Selection Fail) – если модель опирается на неважные признаки, она предсказывает мэтчи хуже случайности.
💔 В любви: «Ты любишь авокадо? Значит, мы созданы друг для друга!» – а потом оказывается, что это вовсе не про важное.
🎯 На вебинаре мы разобрали, как избежать этих ошибок и создать работающую модель для speed dating, которая на самом деле помогает находить любовь! Вчера мы не просто говорили о любви – мы её предсказывали!
🔥 Спасибо всем, кто был с нами и участвовал!
💘 Как же это было?
Если ты пропустил вебинар или хочешь пересмотреть запись – просто перейди по [ссылке] и получи видео 😉
🥱4👾4
Forwarded from Библиотека питониста | Python, Django, Flask
📢 Где «выстрелит» твой стартап: 8 площадок для запуска и продвижения IT-проекта
Собрали для тебя проверенные места, где можно бесплатно показать свой продукт первым пользователям и даже найти инвестора. Работает как для зарубежного, так и для российского рынка.
👍 Ссылка на статью: https://proglib.io/sh/LrcFGsnuyU
Собрали для тебя проверенные места, где можно бесплатно показать свой продукт первым пользователям и даже найти инвестора. Работает как для зарубежного, так и для российского рынка.
👍 Ссылка на статью: https://proglib.io/sh/LrcFGsnuyU
👍3