Forwarded from Proglib.academy | IT-курсы
🧮🔠 Математика в действии: решаем хитрые задачи по прогнозированию, оптимизации и логике
Статья, которая поможет развить навыки решения задач с помощью математики.
➡️ Вот что вас ждет
1️⃣ Прогнозирование численности населения — используем цепи Маркова для предсказания миграций между городом и пригородами.
2️⃣ Минимизация затрат — находим минимальное скалярное произведение векторов для оптимального распределения задач между работниками.
3️⃣ Машина времени — решаем задачу максимального числа пересекающихся временных интервалов с помощью заметающей прямой.
4️⃣ Алгоритм Целлера — вычисляем день недели по дате. Проверка на практике.
🔵 Хочешь прокачаться в математике для ML? Тогда разбирайся с этими задачами и не упусти вебинар: «Математика для ML: от теории к практике».
👉 Читать статью
Статья, которая поможет развить навыки решения задач с помощью математики.
👉 Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Вам нравится читать контент на этом канале?
Возможно, вы задумывались о том, чтобы купить на нем интеграцию?
Следуйте 3 простым шагам, чтобы сделать это:
1) Нажмите на ссылку: Вход
2) Пополняйтесь удобным способом
3) Размещайте публикацию
Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его
Возможно, вы задумывались о том, чтобы купить на нем интеграцию?
Следуйте 3 простым шагам, чтобы сделать это:
1) Нажмите на ссылку: Вход
2) Пополняйтесь удобным способом
3) Размещайте публикацию
Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его
Telegram
Telega.in
Платформа для запуска рекламы в Telegram: продвигайтесь в проверенных каналах и чатах.
Часто пишете SQL-запросы и хотите быстро оптимизировать их или проверить на ошибки? Используйте этот промпт:
📝 Промпт:
Analyze the following SQL query used in Java. Explain its purpose, optimize it for performance, and suggest alternative approaches. If applicable, discuss indexing strategies and transaction handling.
String sql = "[вставьте ваш SQL-запрос сюда]";
— Добавьте
Explain how to use PreparedStatement to prevent SQL injection
и получите безопасную версию кода.— Добавьте
Suggest a Hibernate or JPA equivalent
, если хотите уйти от ручного SQL.— Добавьте
Optimize this for large datasets
, если у вас миллионы записей в таблице.Please open Telegram to view this post
VIEW IN TELEGRAM
🤝 💼 IT-конференции: как сходить на мероприятие и извлечь из него максимум пользы
🚀 IT-конференции — это не только про кофе-брейки и бесплатные стикеры. Это шанс завести полезные знакомства, узнать инсайдерскую информацию и найти новые карьерные возможности. Но для этого нужно не просто прийти, а правильно подготовиться и ловить важные моменты.
Как извлечь из мероприятия максимум пользы? Как сделать так, чтобы оно дало не только эмоции, но и реальные бонусы для вашей карьеры?
🔗 Подробнее в статье
🐸 Библиотека джависта
🚀 IT-конференции — это не только про кофе-брейки и бесплатные стикеры. Это шанс завести полезные знакомства, узнать инсайдерскую информацию и найти новые карьерные возможности. Но для этого нужно не просто прийти, а правильно подготовиться и ловить важные моменты.
Как извлечь из мероприятия максимум пользы? Как сделать так, чтобы оно дало не только эмоции, но и реальные бонусы для вашей карьеры?
Please open Telegram to view this post
VIEW IN TELEGRAM
Неэффективное использование JDBC может легко стать узким местом и убить производительность. Вот пошаговый разбор, как сделать работу с JDBC быстрее и стабильнее.
Используйте HikariCP, Apache DBCP или C3P0 вместо стандартного DriverManager. Это позволит переиспользовать соединения, а не открывать новое на каждый запрос.
Во-первых, это снижает нагрузку на базу за счёт кеширования плана запроса. Во-вторых, убирает SQL-инъекции на уровне JDBC.
— TYPE_FORWARD_ONLY, если нужно просто пробежать по данным.
— TYPE_SCROLL_INSENSITIVE позволяет скроллить данные, но требует больше памяти.
— TYPE_SCROLL_SENSITIVE редко нужен, но обновляет данные в реальном времени.
Не забирайте сразу всю таблицу – старайтесь выбирать только нужные поля и ограничивать количество строк.
По умолчанию, каждый запрос в JDBC – это отдельная транзакция. Включите setAutoCommit(false) и коммитите изменения пачками, чтобы уменьшить нагрузку.
Если какие-то SQL-запросы выполняются слишком долго – используйте SLF4J + P6Spy или встроенные средства логирования в пуле соединений, чтобы их отлавливать.
Please open Telegram to view this post
VIEW IN TELEGRAM
Сколько разработчиков – столько и мнений. Одни не видят альтернативы Spring Boot, несмотря на его "магичность" и прожорливость. Другие кайфуют от Quarkus за его скорость, но не всегда могут убедить бизнес на него перейти. А кто-то вообще пилит микросервисы на Micronaut и радуется жизни.
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вам приходилось перезапускать весь дебаг из-за ошибки в анализе кода, есть лучший способ – Reset Frame. Он позволяет откатить выполнение метода и повторить его выполнение с начала, без полной перезагрузки приложения.
▪️ Как использовать
1. Запускаем дебаг и доходим до брейкпоинта.
2. Открываем окно Debug.
3. Во вкладке Frames (стек вызовов) выбираем нужный метод.
4. Нажимаем ПКМ → Reset Frame.
5. Код откатится на вход в метод, как будто вы только что в него зашли.
▪️ Когда это полезно
— Ошиблись при анализе и хотите пересмотреть состояние переменных
— Нужно повторно выполнить метод, не перезапуская весь процесс
— Дебажите рекурсию или сложные цепочки вызовов
— Reset Frame не откатывает глобальные изменения (например, изменения в базе или внешних файлах).
— Он работает только в пределах одного метода – не выйдет вернуть выполнение назад на несколько вызовов.
▪️ Как использовать Reset Frame эффективнее
Можно комбинировать его с Evaluate Expression, чтобы перед повторным вызовом метода изменять переменные вручную.
Please open Telegram to view this post
VIEW IN TELEGRAM
Отобрали для вас полезные и проверенные каналы для программистов — в них вы найдете все самое интересное, от технических новостей до практических гайдов.
IT Job Hub | Работа и вакансии в IT — избранные IT-вакансии
Библиотека программиста — новости из мира IT и технологий
Книги для программистов — самые годные книги по любым языкам и стекам
IT-мемы — мемы про жизу айтишника
Proglib Academy — обучение и курсы, чтобы стать топовым специалистом
Азбука айтишника — азы из мира разработки
Библиотека нейросетей — лайфхаки и промпты для разных задач, баттлы нейронок и новости из мира ИИ
Библиотека фронтендера — все о JS, React, Angular и не только
Библиотека мобильного разработчика — лайфхаки и новости из мира Swift и Kotlin
Библиотека хакера — уязвимости, атаки, бэкдоры и как от них защититься
Библиотека тестировщика — самое интересное о том, как крашить код
🦫 Go
Библиотека Go-разработчика
Библиотека задач по Go
Библиотека Go для собеса
Вакансии по Go
#️⃣ C#
Библиотека шарписта
Библиотека задач по C#
Библиотека собеса по C#
Вакансии по C#
🔧 DevOps
Библиотека devops’а
Библиотека задач по DevOps
Библиотека собеса по DevOps
Вакансии по DevOps & SRE
🐘 PHP
Библиотека пхпшника
Библиотека задач по PHP
Библиотека PHP для собеса
Вакансии по PHP, Symfony, Laravel
🐍 Python
Библиотека питониста
Библиотека Python для собеса
Библиотека задач по Python
Вакансии по питону, Django, Flask
☕️ Java
Библиотека джависта
Библиотека задач по Java
Библиотека Java для собеса
Вакансии по Java
📊 Data Science
Библиотека дата-сайентиста
Библиотека задач по Data Science
Библиотека Data Science для собеса
Вакансии по Data Science
🎮 C++
Библиотека C/C++ разработчика
Библиотека задач по C++
Библиотека C++ для собеса
Вакансии по C++
Подписывайтесь на интересные вам каналы и сохраняйте пост в закладки, чтобы не потерять 🔑
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Азбука айтишника
🛠 Как внедрить CI/CD: 10 самых важных шагов
CI/CD — это ключ к быстрой, качественной и безопасной разработке ПО. Наш гайд поможет вам настроить эффективный пайплайн, автоматизировать рутину и ускорить релизы.
➡️ Что внутри статьи
▪️ Лучшие практики работы с Git
▪️ Автоматизация сборки и тестирования
▪️ Внедрение автоматизированного тестирования
▪️ Эффективное управление зависимостями
▪️ Автоматизированный деплой без простоя
▪️ Настройка мониторинга и логирования
📎 Читайте гайд
Азбука айтишника
CI/CD — это ключ к быстрой, качественной и безопасной разработке ПО. Наш гайд поможет вам настроить эффективный пайплайн, автоматизировать рутину и ускорить релизы.
▪️ Лучшие практики работы с Git
▪️ Автоматизация сборки и тестирования
▪️ Внедрение автоматизированного тестирования
▪️ Эффективное управление зависимостями
▪️ Автоматизированный деплой без простоя
▪️ Настройка мониторинга и логирования
Азбука айтишника
Please open Telegram to view this post
VIEW IN TELEGRAM
Сегодня отмечаем вклад девушек-разработчиков, аналитиков, тестировщиков, тимлидов и всех, кто влюблён в код. Без вас IT не было бы таким, каким мы его знаем. С праздником, коллеги 💐
Женщины оставили огромный след в истории IT. Если вам кажется, что программирование — это исключительно «мужская территория», взгляните, вот лишь несколько легендарных женщин:
🔹 Ада Лавлейс — автор первой компьютерной программы ещё в 19 веке.
🔹 Грейс Хоппер — создала первый компилятор и популяризировала термин «баг».
🔹 Барбара Лисков — её принцип Liskov Substitution является основой ООП, в том числе в Java.
🔹 Эдит Кларк — первая женщина-инженер, внесшая вклад в вычислительные методы в энергетике.
🔹 Маргарет Гамильтон — разработала софт для посадки «Аполлона-11» на Луну.
А это только малая часть. В статье собраны ещё больше вдохновляющих историй.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔹 JEP-ы в фокусе:
— Автонастройка хипа для Serial GC. Теперь JVM сама решает, сколько памяти нужно вашему приложению.
— AOT-оптимизации. Меньше возни с кэшем, JVM научилась готовить его сама.
— Cooperative JFR Sampling. Профилирование без лишних тормозов.
🔹 Релизы:
— JDK 24 (Build 36) и JDK 25 (Build 9): свежие сборки, багрепорты приветствуются.
— Hibernate ORM 7.0.0 (Beta 4): новая Jakarta Persistence 3.2 и прокачанный анализ моделей.
— Quarkus 3.18.2: фиксы и поддержка последних обновлений зависимостей.
— Micronaut 4.7.5: улучшения в безопасности, валидации и Kafka.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека собеса по Java | вопросы с собеседований
Serial GC — это
🔹 Как работает
🔹 Когда использовать
—
—
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Кто-то считает, что вежливость — базовый навык общения даже с машиной. Кто-то уверен, что железяке безразличны ваши манеры.
Пишете ли вы "Спасибо" и "Пожалуйста" AI? Что в целом думаете на этот счёт?
Please open Telegram to view this post
VIEW IN TELEGRAM
Java захватывает территорию Python на поле искусственного интеллекта — и в корпоративном секторе сопротивление может оказаться бесполезным, считают опрошенные порталом The New Stack эксперты.
Саймон Риттер, заместитель технического директора компании Azul Systems, утверждает, что 2025-й может стать последним годом господства Python в сфере ИИ. По его словам, исследования показывают, что в течение ближайших 18 месяцев Java может обогнать Python в разработке ИИ-приложений.
Please open Telegram to view this post
VIEW IN TELEGRAM
Аннотация @Transactional — мощный инструмент, но ее неправильное использование может привести к незаметным, но критическим ошибкам: потерянные данные, неожиданные откаты или вовсе отсутствие транзакции. Разбираем частые ошибки и их решения.
Если вызываете транзакционный метод внутри того же класса (this.method()), Spring-прокси не срабатывает, и транзакция не создается.
@Service
public class OrderService {
@Transactional
public void createOrder() {
saveOrder(); // Вызов внутреннего метода - транзакция НЕ создается!
}
private void saveOrder() {
// Сохранение заказа
}
}
— Решение: вынести метод в другой Spring-бин.
Spring AOP работает через прокси, а прокси не видит private-методы. В результате @Transactional в таких методах просто игнорируется.
@Transactional
private void saveData() { // Транзакция НЕ будет работать!
repository.save(entity);
}
— Решение: метод должен быть public и вызываться через другой Spring-бин
Уровень распространения (propagation) определяет, как транзакция будет вести себя относительно уже существующих транзакций. Выбор значения по умолчанию (REQUIRED) подходит в большинстве случаев, но в сложных сценариях важно понимать, как работают другие варианты:
— REQUIRED использует текущую транзакцию, если она есть, иначе создаёт новую.
— REQUIRES_NEW всегда создаёт новую транзакцию, независимо от текущей (может привести к неожиданным коммитам).
— NESTED создаёт вложенную транзакцию, которая откатывается отдельно от родительской.
— SUPPORTS использует существующую транзакцию, но не требует её (если транзакции нет, работает без неё).
— NOT_SUPPORTED выполняет код вне транзакции, даже если она уже существует.
— NEVER гарантирует, что код выполняется только вне транзакции, иначе выбрасывает исключение.
— MANDATORY требует, чтобы код выполнялся внутри уже существующей транзакции, иначе выбрасывает исключение.
Spring по умолчанию откатывает транзакции только при RuntimeException, а CheckedException (например, SQLException) его не прерывает. Однако изменение этого поведения требует осторожности.
@Transactional
public void updateUser() throws IOException { // CheckedException не откатит транзакцию!
userRepository.save(user);
throw new IOException("Ошибка ввода-вывода");
}
— Решение: указать rollbackFor = Exception.class, если хотите откатывать и CheckedException.
Spring сначала коммитит транзакцию, а потом отправляет HTTP-ответ. Если после коммита возникнет ошибка (например, сеть упала), клиент может получить 500, но изменения уже сохранены.
— Решение: транзакции должны быть в сервисах, а не в контроллерах.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека питониста | Python, Django, Flask
📝 Структуры данных: ТОП-30 вопросов и ответов для собеседований в 2025 году
Техническое собеседование на позицию разработчика, дата-сайентиста и ML-инженера часто включает вопросы по структурам данных и связанным с ними алгоритмами.
В нашей статье мы рассмотрим базовые и продвинутые темы, разберем типичные задачи и обсудим оптимальные способы их решения.
📄 Прочитайте статью и укрепите свои знания — https://proglib.io/sh/1uYAygzIxr
Библиотека питониста
Техническое собеседование на позицию разработчика, дата-сайентиста и ML-инженера часто включает вопросы по структурам данных и связанным с ними алгоритмами.
В нашей статье мы рассмотрим базовые и продвинутые темы, разберем типичные задачи и обсудим оптимальные способы их решения.
📄 Прочитайте статью и укрепите свои знания — https://proglib.io/sh/1uYAygzIxr
Библиотека питониста
Все знают
Ctrl + Alt + L
(форматирование кода), но мало кто знает это сочетание:—
Ctrl + Alt + Shift + L
→ Гибкое форматирование🔹 Зачем это нужно
— Позволяет выбрать, что именно форматировать: весь файл, выделенный код или даже только измененные строки.
— Можно отключить автоформатирование аннотаций, импортов или пробелов, если не хотите, чтобы IDEA ломала ваш стиль.
— Полезно, если работаете в команде с жесткими code style правилами, можно форматировать только нужные части, не трогая остальной код.
🔹 Дополнительные трюки
— Выделите код, затем
Ctrl + Alt + Shift + L
, чтобы форматировать только его.— Используйте Settings → Editor → Code Style, чтобы настроить форматирование под себя.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM