❓ Что такое BDD-подход?
BDD (Behavior-Driven Development) — это методология разработки, основанная на описании поведения системы на понятном языке. В отличие от TDD, BDD фокусируется на сценариях использования (Given-When-Then), делая тесты понятными для всей команды, включая бизнес-аналитиков.
В Go для BDD часто используют Ginkgo, который позволяет писать структурированные тесты в стиле «Describe → Context → It». Это улучшает читаемость, облегчает поддержку и помогает согласовать требования между разработчиками и заказчиками.
👏11
❓ Для чего используется go mod?
go mod — это система управления зависимостями в Go, которая позволяет фиксировать версии пакетов, автоматически загружать их и работать без GOPATH
При инициализации модуля (go mod init) создается файл go.mod, который хранит информацию о зависимостях, а go.sum содержит контрольные суммы для проверки их целостности.
Основные команды:
• go get — добавляет/обновляет зависимости.
• go mod tidy — удаляет неиспользуемые пакеты.
• go mod vendor — создает локальную копию зависимостей.
👍15😁1🥱1
❓ Как работает sync.Once под капотом
Под капотом sync.Once использует атомарную переменную и мьютекс:
1. При первом вызове once.Do(f) проверяется, выполнена ли уже функция f.
2. Если нет, sync.Once блокирует выполнение других горутин и запускает f().
3. После завершения выполнения устанавливается флаг, предотвращающий повторные вызовы.
👍7🥱1
Swipe right or swipe left
Что делать, если твои мэтчи в жизни не такие точные, как твой код?
Спокойно, 14 февраля в 19:00 по МСК мы разберём, как ML анализирует speed dating и предсказывает match.
📌 Мы возьмем реальные данные со speed dating.
📌 Обучим модель, которая скажет: match или swipe left.
📌 Разберём, какие признаки реально важны (спойлер: работа в IT — не прям гарантия успеха (наши маркетологи подтверждают 😥).
💡 Приходи, если хочешь прокачать свой Python, ML и, возможно, станешь идеальной парой, как самый стильные форсы.
👉 Записаться
Что делать, если твои мэтчи в жизни не такие точные, как твой код?
Спокойно, 14 февраля в 19:00 по МСК мы разберём, как ML анализирует speed dating и предсказывает match.
📌 Мы возьмем реальные данные со speed dating.
📌 Обучим модель, которая скажет: match или swipe left.
📌 Разберём, какие признаки реально важны (спойлер: работа в IT — не прям гарантия успеха (наши маркетологи подтверждают 😥).
💡 Приходи, если хочешь прокачать свой Python, ML и, возможно, станешь идеальной парой, как самый стильные форсы.
👉 Записаться
😁1
❓ Что такое fallthrough в Go
fallthrough — это ключевое слово, используемое внутри switch, которое позволяет явно передавать управление следующему case, даже если его условие не совпадает.
По умолчанию в Go выполнение switch завершается после первого совпавшего case, но если добавить fallthrough, выполнение продолжится с следующим case, без проверки его условия
👍14
❓ Чем interface{} отличается от any?
interface{} — это пустой интерфейс, который может хранить значение любого типа.
any — это просто алиас (type any = interface{}), введённый в Go 1.18 для удобочитаемости кода.
👍26🥱4
❓ Как ведёт себя select {} без case
Если написать select {} без case, программа зависнет навсегда. Это называют блокирующим select'ом.
😁20👍8🥱1
❓ Что такое errors.Is и errors.As
• errors.Is(err, target) проверяет, является ли err экземпляром target, даже если ошибка была обернута (fmt.Errorf(«%w», err)).
Используется для сравнения ошибок по значению.
• errors.As(err, &target) проверяет, можно ли привести err к указанному типу (target должен быть указателем).
Используется для проверки и извлечения кастомных ошибок (например, структур с дополнительными полями).
👍12👏1
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
🏗 🔨 Как не сломать продакшен: 8 основных паттернов распределенных систем
Разработка распределённых систем сопряжена с множеством вызовов: от управления состоянием и взаимодействия сервисов до обработки отказов и масштабирования. Чтобы упростить решение этих задач, инженеры используют проверенные временем архитектурные паттерны.
В статье рассматриваются ключевые шаблоны, помогающие строить надёжные и эффективные распределённые системы.
➡️ Читать статью
🐸 Библиотека devops'a
Разработка распределённых систем сопряжена с множеством вызовов: от управления состоянием и взаимодействия сервисов до обработки отказов и масштабирования. Чтобы упростить решение этих задач, инженеры используют проверенные временем архитектурные паттерны.
В статье рассматриваются ключевые шаблоны, помогающие строить надёжные и эффективные распределённые системы.
➡️ Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
❓ Чем json.Marshal отличается от json.MarshalIndent
• json.Marshal сериализует данные в компактный JSON без отступов.
• json.MarshalIndent добавляет отступы и форматирование, что делает JSON читаемым для людей.
👍18🔥1😁1
❓ Когда Go делает inlining?
Go-компилятор выполняет inlining только для простых функций. В go build есть встроенные эвристики, которые учитывают:
• Размер кода — слишком большие функции не инлайнятся.
• Отсутствие сложных конструкций — если внутри есть for, switch, defer, recover() или вызовы • других не-инлайн-функций, inlining не происходит.
• Частоту вызова — часто вызываемые короткие функции инлайнятся для оптимизации.
Как проверить, была ли функция инлайнена?
Запустить компилятор с флагом -gcflags="-m"
👍15🥱4❤1
❓ Чем опасен вызов defer в цикле?
Если использовать defer внутри цикла, все отложенные функции будут выполнены только после выхода из цикла, а не по окончанию итерации. Это может привести к утечкам ресурсов или неожиданному поведению.
👍4🥱4
❓ Что означает value := myMap[key] без ok-проверки
Без ok-проверки Go возвращает zero value для типа значения, если ключ отсутствует.
👍9
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
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++
💻Другие каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
Также у нас есть боты:
Бот с 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++
💻Другие каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
❓ Что будет, если вызвать time.Sleep(0)
Вызов time.Sleep(0) не останавливает текущую горутину, как при обычном time.Sleep, а отдаёт управление планировщику Go.
То есть текущая горутина будет временно «усыплена», и планировщик сможет переключиться на другие горутины, если они ожидают выполнения.
👍21🌚1
⚠️ В машинном обучении, как в любви: слишком идеальные предсказания – это подозрительно!
Когда модель слишком прилипчива к тренировочным данным, результат оказывается… ну, как в отношениях, когда всё кажется идеальным, но реальность ломает сердце.
❌ Оверфиттинг (Overfitting) – модель так хорошо запомнила тренировочные данные, что на реальных данных начинает путаться.
💔 В любви: «Я выбрал идеального партнёра по профилю, а в жизни выяснилось, что его «идеальность» – всего лишь иллюзия!»
❌ Андерфиттинг (Underfitting) – модель обучена настолько поверхностно, что предсказывает мэтчи случайным образом.
💔 В любви: «Мне нравятся только люди с именем Александр, а всех остальных я даже не замечаю – бедный фильтр!»
❌ Неправильный выбор фичей (Feature Selection Fail) – если модель опирается на неважные признаки, она предсказывает мэтчи хуже случайности.
💔 В любви: «Ты любишь авокадо? Значит, мы созданы друг для друга!» – а потом оказывается, что это вовсе не про важное.
🎯 На вебинаре мы разобрали, как избежать этих ошибок и создать работающую модель для speed dating, которая на самом деле помогает находить любовь! Вчера мы не просто говорили о любви – мы её предсказывали!
🔥 Спасибо всем, кто был с нами и участвовал!
💘 Как же это было?
Если ты пропустил вебинар или хочешь пересмотреть запись – просто перейди по [ссылке] и получи видео 😉
Когда модель слишком прилипчива к тренировочным данным, результат оказывается… ну, как в отношениях, когда всё кажется идеальным, но реальность ломает сердце.
❌ Оверфиттинг (Overfitting) – модель так хорошо запомнила тренировочные данные, что на реальных данных начинает путаться.
💔 В любви: «Я выбрал идеального партнёра по профилю, а в жизни выяснилось, что его «идеальность» – всего лишь иллюзия!»
❌ Андерфиттинг (Underfitting) – модель обучена настолько поверхностно, что предсказывает мэтчи случайным образом.
💔 В любви: «Мне нравятся только люди с именем Александр, а всех остальных я даже не замечаю – бедный фильтр!»
❌ Неправильный выбор фичей (Feature Selection Fail) – если модель опирается на неважные признаки, она предсказывает мэтчи хуже случайности.
💔 В любви: «Ты любишь авокадо? Значит, мы созданы друг для друга!» – а потом оказывается, что это вовсе не про важное.
🎯 На вебинаре мы разобрали, как избежать этих ошибок и создать работающую модель для speed dating, которая на самом деле помогает находить любовь! Вчера мы не просто говорили о любви – мы её предсказывали!
🔥 Спасибо всем, кто был с нами и участвовал!
💘 Как же это было?
Если ты пропустил вебинар или хочешь пересмотреть запись – просто перейди по [ссылке] и получи видео 😉
👍1
❓ Чем отличается дерево от графа
Дерево — это частный случай графа, где нет циклов и есть ровно одна связь между двумя любыми узлами.
Граф — это более общая структура, где связи (рёбра) могут быть между любыми вершинами, и циклы допускаются.
В дереве всегда N-1 рёбер при N узлах, а в графе — любое количество.
Граф — это более общая структура, где связи (рёбра) могут быть между любыми вершинами, и циклы допускаются.
В дереве всегда N-1 рёбер при N узлах, а в графе — любое количество.
👍9🥱5
❓ Как можно реверсировать срез без дополнительной памяти
Использовать два указателя (i и j), которые движутся навстречу и обмениваются значениями.
👍12
❓ В чем разница между стабильными и нестабильными алгоритмами сортировки
Стабильная сортировка сохраняет относительный порядок элементов с одинаковыми ключами, тогда как нестабильная сортировка может изменить их порядок
Пример:
До сортировки:
Алекс (25),
Боб (25),
Крис (30).
Стабильная сортировка по возрасту:
Алекс (25),
Боб (25),
Крис (30).
Нестабильная сортировка может поменять местами Алекса и Боба, хотя у них одинаковый возраст:
Боб (25),
Алекс (25),
Крис (30).
Пример:
До сортировки:
👍4😁3