Держите под рукой этот чек-лист, чтобы избежать проблем с многопоточностью и повысить производительность кода:
🔹 Синхронизация
✓ Избегайте synchronized для долгих операций
✓ Используйте ReentrantLock для гибкой блокировки
✓ Следите за возможностью deadlock
🔹 Исполнители (Executors)
✓ FixedThreadPool подходит, когда количество потоков заранее известно и ограничено
✓ CachedThreadPool динамически создает потоки, но может привести к их неконтролируемому росту
✓ ForkJoinPool для задач, разбиваемых на подзадачи
🔹 Коллекции и очереди
✓ ConcurrentHashMap потокобезопасная альтернатива HashMap, но не подходит для сценариев с частыми изменениями
✓ BlockingQueue для потокобезопасных очередей
✓ CopyOnWriteArrayList хорош при редких изменениях списка, но ⚠️ медленный при частых модификациях (из-за копирования)
🔹 Работа с Future & CompletableFuture
✓ Используйте CompletableFuture для асинхронных операций вместо Future
✓ thenApply() и thenCompose() позволяют строить цепочки вызовов без блокировки
✓ exceptionally() для обработка ошибок без использования try-catch в коде
Автоматизируйте проверку кода с помощью FindBugs, SonarQube и Checkstyle.
🔹 Курс «Алгоритмы и структуры данных»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
А вам что сложнее?
🌚 — фронт
❤️ — бек
🔹 Курс «Основы IT для непрограммистов»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
🏃♀️ Proglib Academy
#развлекалово
🌚 — фронт
❤️ — бек
🔹 Курс «Основы IT для непрограммистов»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#развлекалово
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚3❤2🤔2
🛡 Как защитить себя от увольнения: карьерная «страховка» для IT‑шника
Рассказываем о способах, которые помогут подстраховать себя на работе в период кризиса в IT-индустрии. Объясняем, как заключить трудовой договор (и что точно должно быть в нем прописано) и соглашения о расторжении.
🔗 Читать статью
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
🏃♀️ Proglib Academy
#буст
Рассказываем о способах, которые помогут подстраховать себя на работе в период кризиса в IT-индустрии. Объясняем, как заключить трудовой договор (и что точно должно быть в нем прописано) и соглашения о расторжении.
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2🥰1
Случайно удалили ветку, а в ней была недоделанная фича или рабочий хотфикс? Паника близко?
git reflog
Показывает историю всех действий в Git — коммиты, переключения веток, ребейзы и даже force-push’и. Идеально, чтобы вернуть ветку из забвения или откатиться на стабильное состояние.
Например:
git checkout -b restore-branch HEAD@{3}Создаёт новую ветку с того момента, где были 3 действия назад.
🔹 Курс «Алгоритмы и структуры данных»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
💀 Найм в IT мертв. Или же нет?
В последнее время часто можно слышать, что рынок IT «мертв», что найм замер, и что это конец золотой эпохи для специалистов. Однако, это не так. Рынок просто стал более сбалансированным, и не стоит паниковать.
Что изменилось?
– Меньше людей покидает страну, многие вернулись, а те, кто уехал, работают удаленно.
– Компании не закрывают вакансии, но требуют большего от кандидатов: опыт, знания и адекватные ожидания.
– Рынок стал менее перегретым, но для тех, кто подготовлен, найти работу не составит труда.
Что вы думаете о ситуации на рынке? Рынок действительно мертв или он просто стал более конкурентным?
🔥 — все очень плохо, если бы мы знали, что это такое, но мы не знаем, что это такое
❤️ — все хоршо, работу найти можно, если правильно искать
🔹 Курс «Основы IT для непрограммистов»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
🏃♀️ Proglib Academy
#междусобойчик
В последнее время часто можно слышать, что рынок IT «мертв», что найм замер, и что это конец золотой эпохи для специалистов. Однако, это не так. Рынок просто стал более сбалансированным, и не стоит паниковать.
Что изменилось?
– Меньше людей покидает страну, многие вернулись, а те, кто уехал, работают удаленно.
– Компании не закрывают вакансии, но требуют большего от кандидатов: опыт, знания и адекватные ожидания.
– Рынок стал менее перегретым, но для тех, кто подготовлен, найти работу не составит труда.
Что вы думаете о ситуации на рынке? Рынок действительно мертв или он просто стал более конкурентным?
🔥 — все очень плохо, если бы мы знали, что это такое, но мы не знаем, что это такое
❤️ — все хоршо, работу найти можно, если правильно искать
🔹 Курс «Основы IT для непрограммистов»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤2
На MacBook Pro 2019 с чипом T2 ставить Linux непросто. Но Fedora 42 запускается полностью, с Wi-Fi, звуком и тачпадом, если подготовиться заранее.
Если кратко, то раз-раз и готово, а подробности в статье.
🔹 Курс «Математика для разработки AI-моделей»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Зачем ставить Fedora на MacBook с чипом T2?
Anonymous Quiz
0%
Для включения скрытого режима разработки macOS, активируемого второй ОС на systemd.
20%
Чтобы обойти ограничения Secure Enclave и получить доступ к низкоуровневым API T2.
27%
Чтобы получить Linux с рабочими драйверами на T2: Wi-Fi, звук, тачпад и Touch Bar.
53%
Fedora — единственный дистрибутив, загружающийся через T2 Boot Bridge без отключения защиты
❤️ — заметил, что роботы умнее нас, когда изменилась капча
🔹 Курс «Основы IT для непрограммистов»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#развлекалово
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2
Если нужно отправить контейнер в плавание, то стоит пройтись по всем пунктам из списка:
📌 Оптимизация Dockerfile
✓ Нет ненужных пакетов и зависимостей
✓ Используется
COPY вместо ADD, если не нужно скачивать файлы✓ Используется
.dockerignore, чтобы не включать лишние файлы✓ Не используем latest, а задаем конкретные версии образов
🔒 Безопасность
✓ Контейнер не запускается под root
✓ Установлены минимально необходимые права
✓ Конфиденциальные данные передаются через переменные окружения или секреты
✓ Открываются только нужные порты
✓ Включена многослойная сборка, если есть зависимости
📊 Оптимизация
✓ Удалены временные файлы
✓ Используется --no-cache при установке пакетов
✓ Docker history показывает небольшое количество слоев (
docker history <image_id>)🧷 Работа с переменными окружения
✓ Все конфигурации вынесены в переменные окружения
✓ Используются .env файлы, а не хардкод переменных в Dockerfile
✓ Секретные данные (пароли, токены) хранятся в специальных инструментах
💿 Volumes
✓ Используются volumes, а не bind mounts, если контейнер должен сохранять данные
✓ Проверены права на запись
✓ Очищены старые тома, если они больше не используются
docker volume prune✓ Настроены резервные копии для важных данных
🧪 Тестирование перед деплоем
✓ Приложение успешно запускается в контейнере локально
✓ Тесты на работоспособность (
docker run myimage pytest)✓ Тесты на совместимость с БД (
docker run myimage integration-tests)✓
docker scan myimage не показывает критических уязвимостейЕсли все пункты выполнены, деплой должен пройти гладко.
🔹 Практический интенсив «Архитектуры и шаблоны проектирования»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM