Channel: Библиотека Go-разработчика | Golang
🦫 Самоучитель по Go для начинающих. Часть 5
Продолжаем освежать в памяти основы Go. На этот раз карточки про условия и циклы.
➡️ Самоучитель часть 5
🐸 Библиотека Go-разработчика #буст
Продолжаем освежать в памяти основы Go. На этот раз карточки про условия и циклы.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱4👍3❤1🔥1
Когда рост объёмов данных начинает давить на реляционную СУБД, каждая секунда простоя превращается в потерянные возможности и недовольных пользователей.
Представьте, что вы безболезненно переводите свой монолит на гибкую NoSQL-архитектуру — и при этом сохраняете доступность на пике нагрузки.
Для этого мы подготовили вам промпт:
You are a highly experienced Golang developer specializing in database migrations, particularly from SQL to NoSQL databases. You possess a deep understanding of database architecture, data modeling, and performance optimization. Your goal is to analyze a given SQL database schema and propose a robust and efficient migration strategy to a NoSQL database, considering data integrity, scalability, and maintainability.
Here is the format you will use to reason through the migration and come up with a fantastic recommendation:
---
## SQL Database Schema
$sql_schema_description (Provide a detailed description of the SQL schema, including tables, columns, data types, relationships, and indexes.)
## NoSQL Database Choice and Justification
$nosql_database (Specify the chosen NoSQL database type (e.g., MongoDB, Cassandra, DynamoDB) and provide a detailed justification for its selection based on the SQL schema and anticipated application needs. Consider factors like data model flexibility, scalability requirements, query patterns, and operational overhead.)
## Data Modeling Strategy for NoSQL
$data_modeling_strategy (Describe how the SQL data will be transformed and modeled within the chosen NoSQL database. Include specific examples of how tables and relationships will be represented in the NoSQL data model. Address potential denormalization strategies and trade-offs.)
## Migration Steps and Considerations
$migration_steps (Outline a step-by-step migration plan, including data extraction, transformation, and loading (ETL) processes. Address data validation and integrity checks during and after the migration. Consider potential downtime and rollback strategies.)
## Code Snippets (Golang)
$golang_code_snippets (Provide example Golang code snippets demonstrating how to interact with the NoSQL database, including data insertion, querying, and updating. Use a popular Golang NoSQL driver.)
## Performance Optimization Strategies
$performance_optimization (Describe strategies for optimizing performance in the NoSQL database, such as indexing, query optimization, and data partitioning. Consider the specific characteristics of the chosen NoSQL database.)
## Potential Challenges and Mitigation Strategies
$challenges_and_mitigation (Identify potential challenges during the migration process, such as data inconsistencies, schema evolution, and performance bottlenecks. Propose mitigation strategies for each challenge.)
---
Here is the challenge you are tasked with: [ВСТАВЬТЕ СВОЮ СХЕМУ БД]
💬 Были ли у вас случаи переезда с SQL на noSQL или в обратную сторону?
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚5🔥3👍2
🔥 Последняя неделя перед стартом курса по AI-агентам
Старт курса уже 5го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место
На курсе:
— разложим LLM по косточкам: токенизация, SFT, PEFT, инференс
— соберём RAG и научимся оценивать его адекватно
— построим настоящую мультиагентную систему — архитектуру, которая умеет расти
— разберём CoPilot, сломаем через prompt injection (спасибо Максу)
— и наконец, посмотрим, как это работает в MCP и реальных кейсах
📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями
И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API»
👉 Курс здесь
Старт курса уже 5го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место
На курсе:
— разложим LLM по косточкам: токенизация, SFT, PEFT, инференс
— соберём RAG и научимся оценивать его адекватно
— построим настоящую мультиагентную систему — архитектуру, которая умеет расти
— разберём CoPilot, сломаем через prompt injection (спасибо Максу)
— и наконец, посмотрим, как это работает в MCP и реальных кейсах
📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями
И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API»
👉 Курс здесь
❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁23👍7❤1
Составили для вас мини-гайд из 10 ключевых пунктов по обеспечению безопасности Go-приложений.
• Регулярно обновляйте модули через
go get -u
и проверяйте go.mod на устаревшие версии.• Используйте
go mod tidy
для удаления ненужных пакетов.• Интегрируйте govulncheck для поиска известных уязвимостей в зависимостях.
• Настройте регулярный SAST/DAST-сканинг (например, GitHub Advanced Security).
• Минимизируйте права сервисных аккаунтов и контейнеров.
• Отдельные роли для чтения и записи данных в хранилище.
• Проверяйте и экранируйте все внешние данные (формы, JSON, URL-параметры).
• Используйте подготовленные выражения (prepared statements) для запросов к БД.
• Всегда передавайте context.Context в сетевых и длительных операциях.
• Задавайте адекватные дедлайны и таймауты (context.WithTimeout).
• Не храните ключи и пароли в коде или репозитории: используйте Vault, AWS Secrets Manager или переменные окружения.
• Применяйте современные алгоритмы из пакета crypto (AES-GCM, SHA-256, ECDSA).
• Используйте последние версии TLS (1.2+) и строгие cipher suites.
• Проверяйте сертификаты и избегайте
InsecureSkipVerify=true.
• Запускайте приложение с флагом -race в процессе тестирования.
• Избегайте гонок при доступе к разделяемым переменным: применяйте
sync.Mutex
или каналы.• Интегрируйте
go test --fuzz
для автоматической генерации некорректных входных данных.• Проводите стресс-тесты сетевых и критичных компонентов.
• Логируйте события безопасности (неудачные аутентификации, ошибки валидации) с уровнем Warn/Error.
• Настройте алерты по подозрительным паттернам и аномалиям (Prometheus Alertmanager, Grafana).
Насколько безопасны ваши приложения? Проверьте по списку
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤4
🧑💻 Что за ужас тут творится
Когда вы приходите в новый коллектив, легко заподозрить, что всё вокруг катится кувырком. Но возможно, вы ещё не разобрались во внутренних механизмах.
К нам пришёл подписчик с вопросом
На практике важно учитывать сразу несколько аспектов, чтобы не спешить с выводами:
— Обратите внимание на то, как принимаются решения: формально через руководителей или неформально «по знакомству».
— Оцените, насколько корректно используется трекинг задач и документация — это показатель зрелости команды.
— Внимательно слушайте, какие вопросы задают другие: открыты ли коллеги к диалогу или предпочитают «молча работать».
— Спросите про KPI и цели: ясны ли вам критерии успеха и пути их достижения?
Помните, никто не идеален: везде есть проблемы, просто о них не все говорят.
💬 С какими «тревожными звоночками» вы сталкивались в новых командах? Поделитесь в комментариях 👇
P.S. Если хотите задать вопрос сообществу или поделиться историей, заполните нашу гугл-форму.
🐸 Библиотека Go-разработчика #междусобойчик
Когда вы приходите в новый коллектив, легко заподозрить, что всё вокруг катится кувырком. Но возможно, вы ещё не разобрались во внутренних механизмах.
К нам пришёл подписчик с вопросом
Как отличить реальные проблемы в компании от простого непонимания процессов и культуры?
На практике важно учитывать сразу несколько аспектов, чтобы не спешить с выводами:
— Обратите внимание на то, как принимаются решения: формально через руководителей или неформально «по знакомству».
— Оцените, насколько корректно используется трекинг задач и документация — это показатель зрелости команды.
— Внимательно слушайте, какие вопросы задают другие: открыты ли коллеги к диалогу или предпочитают «молча работать».
— Спросите про KPI и цели: ясны ли вам критерии успеха и пути их достижения?
Помните, никто не идеален: везде есть проблемы, просто о них не все говорят.
💬 С какими «тревожными звоночками» вы сталкивались в новых командах? Поделитесь в комментариях 👇
P.S. Если хотите задать вопрос сообществу или поделиться историей, заполните нашу гугл-форму.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2
👀 Что там в новом Go
Обновления это всегда хорошо, а обновления любимого языка — ещё лучше!
Все ключевые фичи и экспериментальные флаги обновления уже ждут.
➡️ Смотреть видео
🐸 Библиотека Go-разработчика #буст
Обновления это всегда хорошо, а обновления любимого языка — ещё лучше!
Все ключевые фичи и экспериментальные флаги обновления уже ждут.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥4❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁17❤1
Безопасность приложения не должна делаться в последнюю очередь. Интеграция Google SSO с Keycloak — это решение, которое стоит изучить для защиты вашего проекта.
Интересно, что при правильной настройке можно значительно упростить процессы управления пользователями и маппинга их атрибутов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🤔1🌚1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15😁12💯1
📣
В мире Go-разработки постоянно идут споры: нужно ли всегда явно вызывать
Явный
• Освобождает внутренний таймер сразу после выхода из функции, а не дожидается таймаута или сборки мусора.
• Немедленно отменяет все дочерние операции и горутины, слушающие этот контекст.
• Делает код предсказуемым и единообразным в масштабных сервисах с долгим временем работы.
Пропуск
• Таймер автоматически сбросится при наступлении таймаута, так что в «одноразовых» сценариях утечек практически не будет.
• В простых CLI-утилитах или скриптах с коротким жизненным циклом явный cancel может быть избыточным.
• Минимизирует «шум» в коде, когда контекст не передаётся дальше и не порождает дополнительных горутин.
💬 Какой подход предпочитаете вы? Делитесь в комментариях 👇
🐸 Библиотека Go-разработчика #междусобойчик
cancel
для context.WithTimeout()
обязательно или избыточноВ мире Go-разработки постоянно идут споры: нужно ли всегда явно вызывать
cancel
после создания контекста с таймаутом.Явный
cancel
— гарантия чистоты ресурсов• Освобождает внутренний таймер сразу после выхода из функции, а не дожидается таймаута или сборки мусора.
• Немедленно отменяет все дочерние операции и горутины, слушающие этот контекст.
• Делает код предсказуемым и единообразным в масштабных сервисах с долгим временем работы.
Пропуск
cancel
— упрощение там, где это не важно• Таймер автоматически сбросится при наступлении таймаута, так что в «одноразовых» сценариях утечек практически не будет.
• В простых CLI-утилитах или скриптах с коротким жизненным циклом явный cancel может быть избыточным.
• Минимизирует «шум» в коде, когда контекст не передаётся дальше и не порождает дополнительных горутин.
💬 Какой подход предпочитаете вы? Делитесь в комментариях 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥1
Представляем подборку материалов и новостей недели.
— Продвинутый gRPC в микросервисах
В обзоре на уровне архитекторов рассматриваются реальные кейсы от Dropbox и Netflix.
Как введение явных таймаутов устранило каскадные задержки, как gRPC-перехватчики помогают унифицировать мониторинг и аутентификацию, и какие стратегии балансировки нагрузки подходят для высоконагруженных кластеров.
— Обзор линковки Go-бинарников и приёмов кросс-компиляции
В ролике рассказывают, как собрать полностью статический Go-бинарник с помощью
CGO_ENABLED=0
или тега netgo
, а затем уменьшить его размер, убрав отладочные символы флагами -s -w
.— Новый эпизод Cup o’ Go
Ведущие обсуждают новости и проводят интервью о подготовке Go West Conf и работы Forge Utah Foundation.
— Расширенный выбор окружений Go и поддержка golangci-lint v2
Стало доступно расширение vscode-go для VS Code с улучшенным UI выбора SDK — теперь разделитель помогает быстро увидеть, какие версии уже установлены, и какие можно загрузить.
Расширение официально поддерживает golangci-lint v2: его можно установить через «Go: Install/Update Tools», переключать по рабочим областям и перенастраивать с помощью
go.lintFlags
— Еженедельный буст канала
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1🔥1
Forwarded from Библиотека задач по Go | тесты, код, задания
Anonymous Quiz
4%
Все каналы выполняются одновременно
26%
select выбирает первый канал по порядку в коде
4%
Выбирается канал с минимальной длиной очереди
65%
Выбирается случайный канал, если несколько готовы
2❤1
Golang middle+ developer — гибрид в Санкт-Петербурге.
Go Разработчик — удаленно в Москве.
Senior Golang Developer — удаленно.
Golang разработчик Senior — гибрид в Москве.
Golang developer — гибрид/Офис в Санкт-Петербурге.
Бустер — удалённо (не только Москва).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🚀 Управление историей коммитов
Основные приёмы и команды для эффективного применения
• Перенос коммитов на вершину другой ветки:
• Изменение, объединение и переупорядочение коммитов:
• При возникновении конфликтов:
1. Исправить файлы вручную
2.
3.
• Пропуск и отмена:
• Перенести коммиты из ветки feature, основываясь на ветке dev:
💬 Как у вас с ребейзом? На «ты» или гит жонглирует вашими нервами?
🐸 Библиотека Go-разработчика #буст
Основные приёмы и команды для эффективного применения
git rebase
: от простого переноса коммитов до интерактивной правки и безопасного пуша.• Перенос коммитов на вершину другой ветки:
git checkout feature
git rebase main
• Изменение, объединение и переупорядочение коммитов:
git rebase -i HEAD~5
• При возникновении конфликтов:
1. Исправить файлы вручную
2.
git add <файл>
3.
git rebase --continue
• Пропуск и отмена:
git rebase --skip # пропустить проблемный коммит
git rebase --abort # отменить весь процесс rebase
• Перенести коммиты из ветки feature, основываясь на ветке dev:
git rebase --onto dev base feature
💬 Как у вас с ребейзом? На «ты» или гит жонглирует вашими нервами?
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
HTML Embed Code: