Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate
🤝 💼 IT-конференции: как сходить на мероприятие и извлечь из него максимум пользы
🚀 IT-конференции — это не только про кофе-брейки и бесплатные стикеры. Это шанс завести полезные знакомства, узнать инсайдерскую информацию и найти новые карьерные возможности. Но для этого нужно не просто прийти, а правильно подготовиться и ловить важные моменты.
Как извлечь из мероприятия максимум пользы? Как сделать так, чтобы оно дало не только эмоции, но и реальные бонусы для вашей карьеры?
🔗 Подробнее в статье
🐸 Библиотека джависта
🚀 IT-конференции — это не только про кофе-брейки и бесплатные стикеры. Это шанс завести полезные знакомства, узнать инсайдерскую информацию и найти новые карьерные возможности. Но для этого нужно не просто прийти, а правильно подготовиться и ловить важные моменты.
Как извлечь из мероприятия максимум пользы? Как сделать так, чтобы оно дало не только эмоции, но и реальные бонусы для вашей карьеры?
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🌚1
Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate
Сегодня отмечаем вклад девушек-разработчиков, аналитиков, тестировщиков, тимлидов и всех, кто влюблён в код. Без вас IT не было бы таким, каким мы его знаем. С праздником, коллеги 💐
Женщины оставили огромный след в истории IT. Если вам кажется, что программирование — это исключительно «мужская территория», взгляните, вот лишь несколько легендарных женщин:
🔹 Ада Лавлейс — автор первой компьютерной программы ещё в 19 веке.
🔹 Грейс Хоппер — создала первый компилятор и популяризировала термин «баг».
🔹 Барбара Лисков — её принцип Liskov Substitution является основой ООП, в том числе в Java.
🔹 Эдит Кларк — первая женщина-инженер, внесшая вклад в вычислительные методы в энергетике.
🔹 Маргарет Гамильтон — разработала софт для посадки «Аполлона-11» на Луну.
А это только малая часть. В статье собраны ещё больше вдохновляющих историй.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥16👍8⚡1
Предлагаем размяться и вспомнить самые базовые слова любого Go-разработчика.
1. Имя маскота языка Go.
2. Фреймворк для создания HTTP-сервисов
3. Функция, которая вызывается перед завершением программы для освобождения ресурсов
4. Название ключевого типа, который представляет любое значение
5. Ключевое слово для работы с конкурентностью, позволяющее синхронизацию.
Пишите свои ответы в комментарии 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4🤔3😁1
📰 Что произошло за неделю
Собрали для вас главные события и контент минувших семи дней.
🧹 Улучшенная чистка — команда Go работает над улучшением системы сборки мусора и добавлением поддержки слабых ссылок.
🧑💻
👀 Go и без классов хорошо — статья о том, почему язык Go не требует классов как в других языках программирования.
📊 Итоги опроса про работу — Proglib проводили исследование о рынке труда. Самое время поделиться результатами.
🐸 Библиотека Go разработчика #свежак
Собрали для вас главные события и контент минувших семи дней.
🧹 Улучшенная чистка — команда Go работает над улучшением системы сборки мусора и добавлением поддержки слабых ссылок.
🧑💻
synctest
— новый экспериментальный пакет в Go 1.24, который позволяет контролировать время и горутины в тестах. Нашли для вас подробный видеообзор с примерами.👀 Go и без классов хорошо — статья о том, почему язык Go не требует классов как в других языках программирования.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6⚡1
Forwarded from Библиотека Go для собеса | вопросы с собеседований
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🥱3
Forwarded from Библиотека задач по Go | тесты, код, задания
Недавно мы реализовывали тоже самое, но рекурсивно. Теперь пора сделать чуть оптимизированную версию.
Такой способ использует константную память, поскольку не использует рекурсивных вызовов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🥱3
🚀 Alibaba, Datadog и Quesma упрощают инструментирование Go-приложений
Если раньше сбор телеметрии в Go был головной болью, то теперь всё становится гораздо проще. Крупные компании объединили усилия, чтобы интеграция OpenTelemetry не требовала ручных правок кода.
🔍 Что случилось
Эти компании разработали инструменты автоматического инструментирования на этапе компиляции, используя
➕ Не нужно добавлять инструментирование вручную в код приложения.
➕ Инструментируются даже зависимости и стандартная библиотека Go.
➕ Наблюдаемость в Go становится проще, чем когда-либо.
Эта инициатива упрощает жизнь DevOps-инженерам и Go-разработчикам, снижая порог вхождения в инструментирование.
➡️ Подробности в источнике
💬 Что думаете? Уже используете OpenTelemetry в Go? Делитесь опытом в комментариях 👇
🐸 Библиотека Go разработчика #свежак
Если раньше сбор телеметрии в Go был головной болью, то теперь всё становится гораздо проще. Крупные компании объединили усилия, чтобы интеграция OpenTelemetry не требовала ручных правок кода.
🔍 Что случилось
Эти компании разработали инструменты автоматического инструментирования на этапе компиляции, используя
go -toolexec
. Это значит, что:Эта инициатива упрощает жизнь DevOps-инженерам и Go-разработчикам, снижая порог вхождения в инструментирование.
💬 Что думаете? Уже используете OpenTelemetry в Go? Делитесь опытом в комментариях 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥5❤3🥱1
Альтернативы тернарных операторов в Go
Go — минималистичный язык программирования, который намеренно исключает некоторые привычные конструкции, присутствующие в других языках. Одним из таких отсутствующих элементов является тернарный оператор (condition ? trueValue : falseValue). Однако в Go существуют элегантные способы обойти это ограничение.
1️⃣ Мапа с булевым ключом
Одно из самых элегантных решений это использование мапы. Вот так это выглядит:
2️⃣ Анонимная функция
Еще один подход — создание анонимной функции с немедленным вызовом:
3️⃣ Вспомогательная функция
Для часто используемых типов данных можно создать вспомогательные функции:
Так ли нужен тернарный оператор в Go? Или может это пережиток прошлого? Делитесь своим мнением в комментариях⬇️
🐸 Библиотека Go разработчика #буст
Go — минималистичный язык программирования, который намеренно исключает некоторые привычные конструкции, присутствующие в других языках. Одним из таких отсутствующих элементов является тернарный оператор (condition ? trueValue : falseValue). Однако в Go существуют элегантные способы обойти это ограничение.
Одно из самых элегантных решений это использование мапы. Вот так это выглядит:
result := map[bool]string{true: "Значение истины", false: "Значение лжи"}[condition]
Еще один подход — создание анонимной функции с немедленным вызовом:
result := func() string {
if condition {
return "Значение истины"
}
return "Значение лжи"
}()
Для часто используемых типов данных можно создать вспомогательные функции:
// Для строк
func IfString(condition bool, trueVal, falseVal string) string {
if condition {
return trueVal
}
return falseVal
}
// Для целых чисел
func IfInt(condition bool, trueVal, falseVal int) int {
if condition {
return trueVal
}
return falseVal
}
// Использование
minValue := IfInt(user.IsAdmin, 0, 10)
message := IfString(isActive, "Активен", "Неактивен")
Так ли нужен тернарный оператор в Go? Или может это пережиток прошлого? Делитесь своим мнением в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
😁53🤔11👍9🤩6
Forwarded from Библиотека питониста | Python, Django, Flask
📝 Структуры данных: ТОП-30 вопросов и ответов для собеседований в 2025 году
Техническое собеседование на позицию разработчика, дата-сайентиста и ML-инженера часто включает вопросы по структурам данных и связанным с ними алгоритмами.
В нашей статье мы рассмотрим базовые и продвинутые темы, разберем типичные задачи и обсудим оптимальные способы их решения.
📄 Прочитайте статью и укрепите свои знания — https://proglib.io/sh/1uYAygzIxr
Библиотека питониста
Техническое собеседование на позицию разработчика, дата-сайентиста и ML-инженера часто включает вопросы по структурам данных и связанным с ними алгоритмами.
В нашей статье мы рассмотрим базовые и продвинутые темы, разберем типичные задачи и обсудим оптимальные способы их решения.
📄 Прочитайте статью и укрепите свои знания — https://proglib.io/sh/1uYAygzIxr
Библиотека питониста
🥱3🔥2❤1
🔧 Быстрый способ конвертации JSON в Go-структуры
Нашли для вас удобный проект, который конвертирует JSON в структуры Go.
Как это выглядит
1️⃣ Вставляем свой JSON в форму на странице
2️⃣ На выходе получаем готовую структуру
Инструмент не без ошибок, но отлично работает в 99% случаев.
➡️ Попробовать JSON-to-Go
🐸 Библиотека Go разработчика #буст
Нашли для вас удобный проект, который конвертирует JSON в структуры Go.
Как это выглядит
{
"name": "Prog Lib",
"age": 30,
"email": "[email protected]",
"is_active": true,
"tags": ["golang", "developer"],
"profile": {
"github": "https://github.com/proglib"
}
}
type AutoGenerated struct {
Name string `json:"name"`
Age int `json:"age"`
Email string `json:"email"`
IsActive bool `json:"is_active"`
Tags []string `json:"tags"`
Profile struct {
Github string `json:"github"`
} `json:"profile"`
}
Инструмент не без ошибок, но отлично работает в 99% случаев.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👾3👍2❤1
Прежде чем звать старшего коллегу для проверки кода пройдись по этому списку 👇
📌 Общее
✓ Код компилируется и проходит все необходимые тесты.
✓ В коде нет отладочных выводов в консоль.
✓ Отсутствуют «магические числа» (используются константы)
✓ Нет дублирования кода.
✓ Код не похож на «простыню», строки методов не исчисляются сотнями.
🛠 Функциональность
✓ Код делает именно то, что заявлено в задаче / тикете.
✓ Проверены граничные случаи.
✓ Обработаны возможные исключения.
✓ При ошибках возвращаются понятные сообщения и коды.
🚀 Производительность
✓ Код не создает лишних объектов.
✓ Нет ненужных синхронизаций и блокировок.
✓ Если есть циклы в циклах — подумать дважды, нельзя ли их убрать.
🧹 Чистота и поддерживаемость
✓ Минимальная вложенность (if-else не превращается в лабиринт)
✓ Код понятен без лишних комментариев
✓ Если добавлен новый код – он покрыт тестами
✓ Нет «зомби-кода» (закомментированных кусков, которые «может быть пригодятся»)
🧪 Тестирование
✓ Все тесты проходят до отправки на ревью
✓ Покрытие юнит-тестами достаточное, основные сценарии проверены
✓ Не тестируем очевидное (
getter
/setter
, toString()
)🔗 Git и процесс ревью
✓ Название ветки соответствует принятому стандарту (
feature/
, bugfix/
, hotfix/
)✓ Коммиты логичны и атомарны (не «все в одном»)
✓ Сообщения коммитов осмысленные, а не «fixed bug» или «changes»
Отправляй на ревью и пусть только попробуют найти изъяны!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍12🤔5😁4🔥2
Эксперт или универсал: Какой путь выбрать
Однажды каждый разработчик сталкивается с выбором:
💡 Идти вглубь — становиться узким специалистом, глубоким экспертом в конкретной технологии.
💡 Идти вширь — осваивать новые технологии, расширять кругозор, становиться универсалом.
Разбираем плюсы, минусы и подводные камни каждого пути.
➖ Путь эксперта
Ты становишься мастером в своем деле: знаешь стек как свои пять пальцев, можешь решать сложные задачи, оптимизировать и углубляться в детали.
✅ Плюсы:
✓ Высокий спрос на рынке для редких экспертов.
✓ Возможность стать ментором, архитектором, техлидом.
✓ Возможность делать революционные вещи в узкой области.
❌ Минусы:
— Высокий порог входа: чтобы стать экспертом, нужны годы практики.
— Узкая специализация = риски (если технология потеряет актуальность).
— Иногда скучно: одно и то же из года в год.
Если тебе нравится глубокая работа с технологиями, ты хочешь разбираться в сложном коде, делать неочевидные оптимизации и становиться гуру — это твой выбор.
➖ Путь универсала
Ты не привязываешься к одной технологии и легко прыгаешь между разными стеками. Сегодня фронтенд, завтра DevOps, послезавтра AI — ты всегда готов учиться новому.
✅ Плюсы:
✓ Легче адаптироваться к новым трендам и рынку.
✓ Возможность работать в разных областях.
✓ Больше шансов занять менеджерские позиции.
✓ Можно быть разработчиком-одиночкой (фриланс, стартапы, консалтинг).
❌ Минусы:
— Поверхностные знания = не всегда высокая зарплата.
— Риски синдрома "немного знаю обо всём, но нигде не силён".
— Постоянная учёба: новые фреймворки, языки, подходы... устаёшь от потока информации.
Если тебе нравится пробовать новое, ты быстро адаптируешься к изменениям и любишь разбираться в широком спектре задач — это твой вариант.
Давайте обсудим в комментариях какой путь выбрали вы или хотели бы выбрать 👇
🐸 Библиотека Go разработчика #междусобойчик
Однажды каждый разработчик сталкивается с выбором:
💡 Идти вглубь — становиться узким специалистом, глубоким экспертом в конкретной технологии.
💡 Идти вширь — осваивать новые технологии, расширять кругозор, становиться универсалом.
Разбираем плюсы, минусы и подводные камни каждого пути.
Ты становишься мастером в своем деле: знаешь стек как свои пять пальцев, можешь решать сложные задачи, оптимизировать и углубляться в детали.
✅ Плюсы:
✓ Высокий спрос на рынке для редких экспертов.
✓ Возможность стать ментором, архитектором, техлидом.
✓ Возможность делать революционные вещи в узкой области.
❌ Минусы:
— Высокий порог входа: чтобы стать экспертом, нужны годы практики.
— Узкая специализация = риски (если технология потеряет актуальность).
— Иногда скучно: одно и то же из года в год.
Если тебе нравится глубокая работа с технологиями, ты хочешь разбираться в сложном коде, делать неочевидные оптимизации и становиться гуру — это твой выбор.
Ты не привязываешься к одной технологии и легко прыгаешь между разными стеками. Сегодня фронтенд, завтра DevOps, послезавтра AI — ты всегда готов учиться новому.
✅ Плюсы:
✓ Легче адаптироваться к новым трендам и рынку.
✓ Возможность работать в разных областях.
✓ Больше шансов занять менеджерские позиции.
✓ Можно быть разработчиком-одиночкой (фриланс, стартапы, консалтинг).
❌ Минусы:
— Поверхностные знания = не всегда высокая зарплата.
— Риски синдрома "немного знаю обо всём, но нигде не силён".
— Постоянная учёба: новые фреймворки, языки, подходы... устаёшь от потока информации.
Если тебе нравится пробовать новое, ты быстро адаптируешься к изменениям и любишь разбираться в широком спектре задач — это твой вариант.
Давайте обсудим в комментариях какой путь выбрали вы или хотели бы выбрать 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱11👍7🔥4🤔4❤1
🎥 Что посмотреть: как Go улучшает производительность компилятора TypeScript
Если вы хотите понять, как можно значительно ускорить работу компилятора и улучшить производительность на высоконагруженных задачах, это видео для вас.
Команда разработчиков TypeScript делится опытом переноса компилятора с использованием Go. Это позволяет сократить время компиляции в десятки раз и решает множество проблем с производительностью в JavaScript.
➡️ Смотреть видео
🐸 Библиотека Go разработчика #буст
Если вы хотите понять, как можно значительно ускорить работу компилятора и улучшить производительность на высоконагруженных задачах, это видео для вас.
Команда разработчиков TypeScript делится опытом переноса компилятора с использованием Go. Это позволяет сократить время компиляции в десятки раз и решает множество проблем с производительностью в JavaScript.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2👾2🔥1
Forwarded from Proglib.academy | IT-курсы
Можно ли стать разработчиком, если в школе ненавидел математику? А если наоборот — тащился от алгебры и геометрии, но кодить не умеешь? Эта статья раскладывает всё по полочкам: где без математики никуда, а где можно и без неё.
✓ Почему все считают, что программисты — математики
✓ В каких сферах разработки можно вообще не знать математику
✓ Где хватит готовых библиотек, а где придётся разбираться в формулах
✓ Какие области программирования требуют мощного математического бэкграунда
✓ Что делать, если математика — это боль, но хочется освоить ML или Data Science
✓ Топ книг, которые помогут понять и даже полюбить математику
Proglib Academy
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🤔2😢1👾1
🔥 Go и дженерики: спасение или катастрофа
Давайте поговорим о самой противоречивой фиче последних лет – дженериках.
Go 1.18 принес нам дженерики, и с тех пор сообщество разделилось на два лагеря:
➖ «Это было необходимо!» – наконец-то можно писать более чистый и переиспользуемый код. Ad-hoc-полиморфизм не всегда удобен, а interface{} и рефлексия – зло.
➖ «Go потерял свою простоту!» – дженерики убили лаконичность кода. Вместо понятного Go мы получили мини-Java.
💭 Согласны ли вы с тем, что дженерики спасли Go, или же это был шаг в сторону усложнения?
🐸 Библиотека Go разработчика #междусобойчик
Давайте поговорим о самой противоречивой фиче последних лет – дженериках.
Go 1.18 принес нам дженерики, и с тех пор сообщество разделилось на два лагеря:
💭 Согласны ли вы с тем, что дженерики спасли Go, или же это был шаг в сторону усложнения?
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱7
Подводим итоги всего, что случилось за эти 7 дней:
🎧 Новый выпуск подкаста Cup o' Go — обсуждаются релизы безопасности Go 1.24.1 и 1.23.7, обновление gopls v0.18.0, а также инициативы по переписыванию проектов на Go.
🐍 Релиз Viper v1.20.0 — улучшены API поиска файлов, добавлена поддержка привязки структур. Также прекращена поддержка Go 1.20, а устаревший slog shim удалён для упрощения кода.
🌚 Go 1.24 получил новый API — теперь разработчики могут задавать корневую директорию, ограничивая доступ приложения к файловой системе и повышая безопасность.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Собрали для вас парочку идей как необычно работать со слайсами:
s[i] = s[len(s)-1]
s = s[:len(s)-1]
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
if cap(s)-len(s) < n {
s = append(make([]int, 0, len(s)+n), s...)
}
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23😁4👍2⚡1