Как уменьшить размер образа докера JVM как минимум на 60%
Если вы какое-то время работали с языками на основе JVM (Java, Kotlin, Scala и т. д.), вы могли заметить, что, начиная с Java 11, Java Runtime Environment (JRE) больше не имеет отдельного дистрибутива. . Из-за этого решения многие распространители образов докеров Java Development Kit (JDK), такие как OpenJDK , Amazon Correto и другие, не предоставляют JRE в виде отдельного образа докера. Использование этих образов привело к тому, что общий размер образа Docker составил около 360 МБ, в то время как фактический размер jar приложения составил около 26 МБ. Общий размер образа Docker, на мой взгляд, слишком велик, и его следует уменьшить, чтобы сэкономить место и пропускную способность сети для всех, кто будет использовать этот образ Docker. Теперь давайте посмотрим, как резко уменьшить размер образа Docker.
https://blog.devops.dev/how-to-reduce-jvm-docker-image-size-by-at-least-60-459ec87b95d8
Если вы какое-то время работали с языками на основе JVM (Java, Kotlin, Scala и т. д.), вы могли заметить, что, начиная с Java 11, Java Runtime Environment (JRE) больше не имеет отдельного дистрибутива. . Из-за этого решения многие распространители образов докеров Java Development Kit (JDK), такие как OpenJDK , Amazon Correto и другие, не предоставляют JRE в виде отдельного образа докера. Использование этих образов привело к тому, что общий размер образа Docker составил около 360 МБ, в то время как фактический размер jar приложения составил около 26 МБ. Общий размер образа Docker, на мой взгляд, слишком велик, и его следует уменьшить, чтобы сэкономить место и пропускную способность сети для всех, кто будет использовать этот образ Docker. Теперь давайте посмотрим, как резко уменьшить размер образа Docker.
https://blog.devops.dev/how-to-reduce-jvm-docker-image-size-by-at-least-60-459ec87b95d8
Как ограничивается тип generic параметра?
В объявлении дженерик-параметра класса или метода может быть указана его верхняя граница (bound)
Помимо ограничения возможных применяемых типов, bounded-параметр дает право использовать в реализации методы и поля типа-ограничителя – он будет как минимум предком фактического типа. Это достигается стиранием типа-параметра до верхней границы.
Тип-параметр может иметь несколько верхних границ, то есть границу-пересечение типов: <T extends Comparable & Serializable>. Стирание произойдет до первой из границ, остальные послужат только ограничением вариантов фактического типа. Поэтому граница-класс, при наличии, должна быть указана раньше границ-интерфейсов.
При указании значения дженерик-параметра переменной может быть использован вайлдкард – символ ?. Вайлдкард з...
В объявлении дженерик-параметра класса или метода может быть указана его верхняя граница (bound)
class Foo<T extends Number>Ключевое слово extends применяется как для классов, так и для интерфейсов. Фактическим параметром такого класса Foo может быть или сам Number, или его наследники.
Помимо ограничения возможных применяемых типов, bounded-параметр дает право использовать в реализации методы и поля типа-ограничителя – он будет как минимум предком фактического типа. Это достигается стиранием типа-параметра до верхней границы.
Тип-параметр может иметь несколько верхних границ, то есть границу-пересечение типов: <T extends Comparable & Serializable>. Стирание произойдет до первой из границ, остальные послужат только ограничением вариантов фактического типа. Поэтому граница-класс, при наличии, должна быть указана раньше границ-интерфейсов.
При указании значения дженерик-параметра переменной может быть использован вайлдкард – символ ?. Вайлдкард з...
Вам нравится читать контент на этом канале?
Возможно, вы задумывались о том, чтобы купить на нем интеграцию?
Следуйте 3 простым шагам, чтобы сделать это:
1) Регистрируйтесь по ссылке: https://telega.in/c/job_javadevs
2) Пополняйтесь удобным способом
3) Размещайте публикацию
Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.
Возможно, вы задумывались о том, чтобы купить на нем интеграцию?
Следуйте 3 простым шагам, чтобы сделать это:
1) Регистрируйтесь по ссылке: https://telega.in/c/job_javadevs
2) Пополняйтесь удобным способом
3) Размещайте публикацию
Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.
Путешествие к центру Spring Security
Я вас категорически приветствую! В этой статье я хотел бы поглубже разобрать такую штуку как Spring Security, а в частности Security фильтры, как они работают в целом и как объединяются в цепочку ApplicationFilterChain.
Скажу сразу, эта статья является скорее финальной точкой моего ночного дебагинга кишочков Spring Security, а также одной из основных целей этой статьи является закрепление знаний, которые я получил. Но это не отменяет тот факт, что статья кому-то (и я уверен что многим) будет полезна. Поехали.
Читать статью
Я вас категорически приветствую! В этой статье я хотел бы поглубже разобрать такую штуку как Spring Security, а в частности Security фильтры, как они работают в целом и как объединяются в цепочку ApplicationFilterChain.
Скажу сразу, эта статья является скорее финальной точкой моего ночного дебагинга кишочков Spring Security, а также одной из основных целей этой статьи является закрепление знаний, которые я получил. Но это не отменяет тот факт, что статья кому-то (и я уверен что многим) будет полезна. Поехали.
Читать статью
IntelliJIDEA_ReferenceCard.pdf
65.8 KB
Шпаргалка по горячим клавишам в IntelliJ IDEA
Нашли для вас ребят, с которыми можно начать карьеру разработчика без вложений, а после прохождения курса они гарантировано устроят на работу!🤩
IT Mentor - один из немногих проектов в России, где ты можешь научиться Java разработке бесплатно. Оплата обучения происходит только после того, как ты начнешь работать. Первая зарплата - от 170 000 рублей. 💸
1. Ты получаешь гарантию трудоустройства, если не найдешь работу - ничего не должен.
2. Будешь учиться по индивидуальной программе с личным наставником.
3. Изучишь востребованный стек технологий: Java Core, JDBC, HIBERNATE, SPRING(Core, MVC, Security), SPRING BOOT, GIT(GITHUB, GITLAB), MAVEN
4. Сможешь общаться в закрытом сообществе студентов - разработчиков
5. И получишь карьерную поддержку от экспертов бессрочно: мастер-классы, митапы, консультации и тренинги.
Курс подойдет тем, кто хочет войти в IT, но никогда раньше не занимался программированием. Студентам ВУЗов и выпускникам образовательных программ, которые затрудняются найти работу после обучения. ...
IT Mentor - один из немногих проектов в России, где ты можешь научиться Java разработке бесплатно. Оплата обучения происходит только после того, как ты начнешь работать. Первая зарплата - от 170 000 рублей. 💸
1. Ты получаешь гарантию трудоустройства, если не найдешь работу - ничего не должен.
2. Будешь учиться по индивидуальной программе с личным наставником.
3. Изучишь востребованный стек технологий: Java Core, JDBC, HIBERNATE, SPRING(Core, MVC, Security), SPRING BOOT, GIT(GITHUB, GITLAB), MAVEN
4. Сможешь общаться в закрытом сообществе студентов - разработчиков
5. И получишь карьерную поддержку от экспертов бессрочно: мастер-классы, митапы, консультации и тренинги.
Курс подойдет тем, кто хочет войти в IT, но никогда раньше не занимался программированием. Студентам ВУЗов и выпускникам образовательных программ, которые затрудняются найти работу после обучения. ...
#Вопросы_с_собеседования
Что не так с кодом?
Он не скомпилируется. Это вопрос на знание иерархии исключений:
Что не так с кодом?
Он не скомпилируется. Это вопрос на знание иерархии исключений:
FileNotFoundException унаследован от IOException, первый catch будет перехватывать все исключения, а в следующий блок catch управление передано не будет. Поэтому возникнет ошибка: exception FileNotFoundException has already been caught.This media is not supported in your browser
VIEW IN TELEGRAM
А вы знаете, что у нас есть чат для Java-разработчиков?
В нем вы сможете обсудить вакансии, поделиться своим опытом о трудоустройстве, задать вопросы по программированию и обсудить насущные проблемы
Присоединяйтесь к нашему сообществу!
В нем вы сможете обсудить вакансии, поделиться своим опытом о трудоустройстве, задать вопросы по программированию и обсудить насущные проблемы
Присоединяйтесь к нашему сообществу!
Java преподаватель онлайн-курса на английском
#удаленка
ЗП: за 1 урок (полтора часа) – от 80 до 120 евро.
Компания: OTUS
Преподаватель использует презентацию с теорией и практические примеры, чтобы раскрыть тему урока. Наши методисты помогут Вам освоить лучшие инструменты и практики преподавания.
У нас классная команда 600+ экспертов с уникальными компетенциями из различных компаний. Мы учимся друг у друга, советуемся, помогаем, делимся опытом, обсуждаем новости как в преподавании, так и по проектам.
Откликнуться: @anna_phoenix7
#удаленка
ЗП: за 1 урок (полтора часа) – от 80 до 120 евро.
Компания: OTUS
Преподаватель использует презентацию с теорией и практические примеры, чтобы раскрыть тему урока. Наши методисты помогут Вам освоить лучшие инструменты и практики преподавания.
У нас классная команда 600+ экспертов с уникальными компетенциями из различных компаний. Мы учимся друг у друга, советуемся, помогаем, делимся опытом, обсуждаем новости как в преподавании, так и по проектам.
Откликнуться: @anna_phoenix7
#вакансия #удалённо #job #remote #parttime #преподаватель #Java
Компания: мы в OTUS занимаемся обучением людей для повышения качества их жизни. 5 лет специализируемся на курсах для IT-специалистов разного уровня: от junior до senior. У нас более 130 авторских курсов.
Вакансия: преподаватель онлайн-курса на английском Java Developer.Professional
Преподаватель использует презентацию с теорией и практические примеры, чтобы раскрыть тему урока. Наши методисты помогут Вам освоить лучшие инструменты и практики преподавания.
Локация: удаленно; сами определяете нагрузку и выбираете, на какие темы преподавать. Занятия проходят в вечернее время.
Вознаграждение:
Ставка за 1 урок (полтора часа) – от 80 до 120 евро.
Есть дополнительные активности на Ваше усмотрение, они оплачиваются отдельно.
У нас классная команда 600+ экспертов с уникальными компетенциями из различных компаний. Мы учимся друг у друга, советуемся, помогаем, делимся опытом, обсуждаем новости как в преподавании, так и по проектам.
Вы научитесь:
✅ публично выступать и работать с аудиторией;
✅ давать обратную связь;
✅ структурировать свои знания.
И сможете:
🎁 проходить наши курсы со скидкой;
💪 набирать себе команду из лучших студентов;
💸 совмещать с текущей фулл-тайм загрузкой.
Хотите узнать больше? @anna_phoenix7
Компания: мы в OTUS занимаемся обучением людей для повышения качества их жизни. 5 лет специализируемся на курсах для IT-специалистов разного уровня: от junior до senior. У нас более 130 авторских курсов.
Вакансия: преподаватель онлайн-курса на английском Java Developer.Professional
Преподаватель использует презентацию с теорией и практические примеры, чтобы раскрыть тему урока. Наши методисты помогут Вам освоить лучшие инструменты и практики преподавания.
Локация: удаленно; сами определяете нагрузку и выбираете, на какие темы преподавать. Занятия проходят в вечернее время.
Вознаграждение:
Ставка за 1 урок (полтора часа) – от 80 до 120 евро.
Есть дополнительные активности на Ваше усмотрение, они оплачиваются отдельно.
У нас классная команда 600+ экспертов с уникальными компетенциями из различных компаний. Мы учимся друг у друга, советуемся, помогаем, делимся опытом, обсуждаем новости как в преподавании, так и по проектам.
Вы научитесь:
✅ публично выступать и работать с аудиторией;
✅ давать обратную связь;
✅ структурировать свои знания.
И сможете:
🎁 проходить наши курсы со скидкой;
💪 набирать себе команду из лучших студентов;
💸 совмещать с текущей фулл-тайм загрузкой.
Хотите узнать больше? @anna_phoenix7
otus.ru
Java разработчик: продвинутый курс онлайн — Otus
Освойте продвинутые техники разработки на Java: работа с фреймворками, оптимизация и проектирование систем. Практика и проект в портфолио. Онлайн-обучение в Otus.
Java стал международным языком. Теперь все переговоры касательно IT тематик ведутся именно на этом языке. Поздравим нашу любимицу в комментариях!
Прокачай свои знания в архитектуре современных распределенных систем
Стремишься занять позицию сеньора или даже архитектора? Этот курс для тебя!
✅Разберешься в event-driven системах
✅Обретешь уверенность на system design интервью в российских и зарубежных компаниях
✅Поймешь как устроен подход event sourcing, паттерн CQRS
✅Твердо поймешь основы Domain-driven design, как его применять
✅Создашь распределенную event-sourcing based систему и сможешь заимплементить распределенную транзакцию
Авторский курс от преподавателя Санкт-Петербургского университета ИТМО и разработчика высоконагруженных систем Андрея Суховицкого.
Твоими менторами станут ребята из Amazon, Revolut, JetBrains, Yandex или Ozon.
❗️Старт курса - 3 апреля, лекции и задания доступны уже сейчас!❗️
Переходи по ссылке и подавай заявку!
Стремишься занять позицию сеньора или даже архитектора? Этот курс для тебя!
✅Разберешься в event-driven системах
✅Обретешь уверенность на system design интервью в российских и зарубежных компаниях
✅Поймешь как устроен подход event sourcing, паттерн CQRS
✅Твердо поймешь основы Domain-driven design, как его применять
✅Создашь распределенную event-sourcing based систему и сможешь заимплементить распределенную транзакцию
Авторский курс от преподавателя Санкт-Петербургского университета ИТМО и разработчика высоконагруженных систем Андрея Суховицкого.
Твоими менторами станут ребята из Amazon, Revolut, JetBrains, Yandex или Ozon.
❗️Старт курса - 3 апреля, лекции и задания доступны уже сейчас!❗️
Переходи по ссылке и подавай заявку!
QA automation engineer (middle)
#удаленка #офис
ЗП: от 105 000 до 195 000 ₽
Локация: Челябинск
Компания: Infinnity Solutions
Обязанности:
- подготовкой и проведением ручного и автоматизированного функционального/регрессионного/нагрузочного тестирования для проектов на различных стеках технологий (Java/Kotlin);
- локализацией дефектов на различных этапах процесса;
- взаимодействием со всей командой проекта;
- написанием Unit-тестов и их актуализацией в соответствии с изменениями в релизах;
- тестированием SOAP и REST сервисов;
- документированием: JIRA, Confluence;
- участвовать в развитии процессов ручного и автоматизированного тестирования;
- написанием e2e тестов, их актуализацией в соответствии с изменениями в релизах;
Требования:
- опыт работы с JIRA, Git, TeamCity, Intellij idea/WebStorm, JUnit/Spock Framework, JMeter, SoapUI, Selenium/Selenide;
- знание хотя бы одного ЯП (желательно java) на уровне понимания чужого кода;
- навык писать простые запросы на SQL, знание протокола SOAP (REST), WSDL;
- опыт в самостоятельном написании документации (тест-кейсы, чек-листы, ПМИ, инструкции);
- опыт в ручном прохождении и автоматизации тестовых сценариев (cucumber + Gherkin)/Java+Selenide, опыт в самостоятельном написании документации (тест-кейсы, чек-листы, ПМИ, инструкции).
#удаленка #офис
ЗП: от 105 000 до 195 000 ₽
Локация: Челябинск
Компания: Infinnity Solutions
Обязанности:
- подготовкой и проведением ручного и автоматизированного функционального/регрессионного/нагрузочного тестирования для проектов на различных стеках технологий (Java/Kotlin);
- локализацией дефектов на различных этапах процесса;
- взаимодействием со всей командой проекта;
- написанием Unit-тестов и их актуализацией в соответствии с изменениями в релизах;
- тестированием SOAP и REST сервисов;
- документированием: JIRA, Confluence;
- участвовать в развитии процессов ручного и автоматизированного тестирования;
- написанием e2e тестов, их актуализацией в соответствии с изменениями в релизах;
Требования:
- опыт работы с JIRA, Git, TeamCity, Intellij idea/WebStorm, JUnit/Spock Framework, JMeter, SoapUI, Selenium/Selenide;
- знание хотя бы одного ЯП (желательно java) на уровне понимания чужого кода;
- навык писать простые запросы на SQL, знание протокола SOAP (REST), WSDL;
- опыт в самостоятельном написании документации (тест-кейсы, чек-листы, ПМИ, инструкции);
- опыт в ручном прохождении и автоматизации тестовых сценариев (cucumber + Gherkin)/Java+Selenide, опыт в самостоятельном написании документации (тест-кейсы, чек-листы, ПМИ, инструкции).
Прокачай свои знания в архитектуре современных распределенных систем
Стремишься занять позицию сеньора или даже архитектора? Этот курс для тебя!
✅Разберешься в event-driven системах
✅Обретешь уверенность на system design интервью в российских и зарубежных компаниях
✅Поймешь как устроен подход event sourcing, паттерн CQRS
✅Твердо поймешь основы Domain-driven design, как его применять
✅Создашь распределенную event-sourcing based систему и сможешь заимплементить распределенную транзакцию
Авторский курс от преподавателя Санкт-Петербургского университета ИТМО и разработчика высоконагруженных систем Андрея Суховицкого.
Твоими менторами станут ребята из Amazon, Revolut, JetBrains, Yandex или Ozon.
❗️Старт курса - 3 апреля, лекции и задания доступны уже сейчас!❗️
Переходи по ссылке и подавай заявку!
Стремишься занять позицию сеньора или даже архитектора? Этот курс для тебя!
✅Разберешься в event-driven системах
✅Обретешь уверенность на system design интервью в российских и зарубежных компаниях
✅Поймешь как устроен подход event sourcing, паттерн CQRS
✅Твердо поймешь основы Domain-driven design, как его применять
✅Создашь распределенную event-sourcing based систему и сможешь заимплементить распределенную транзакцию
Авторский курс от преподавателя Санкт-Петербургского университета ИТМО и разработчика высоконагруженных систем Андрея Суховицкого.
Твоими менторами станут ребята из Amazon, Revolut, JetBrains, Yandex или Ozon.
❗️Старт курса - 3 апреля, лекции и задания доступны уже сейчас!❗️
Переходи по ссылке и подавай заявку!
Замеряй и ускоряй: как мы сократили время вызова метода в Java-коде в 16 раз
Замер производительности кода — не самое простое упражнение для разработчика. Приходится решать кучу сложностей: разбираться с методом, создавать правильные условия. И всё равно можно получить результат с погрешностью, потому что любой метод «не бесплатный» и требует ресурсов процессора.
Читать статью
Замер производительности кода — не самое простое упражнение для разработчика. Приходится решать кучу сложностей: разбираться с методом, создавать правильные условия. И всё равно можно получить результат с погрешностью, потому что любой метод «не бесплатный» и требует ресурсов процессора.
Читать статью
Teletype
Замеряй и ускоряй: как мы сократили время вызова метода в Java-коде в 16 раз
Привет! Замер производительности кода — не самое простое упражнение для разработчика. Приходится решать кучу сложностей: разбираться...
#вопросы_с_собеседований
Что выведет следующий код?
C первым выражением вроде всё ясно. Разные объекты, поэтому false. А вот дальше…
В Java NaN'ы несравнимы между собой. Но есть два исключения в работе класса Float:
1. Если f1 и f2 оба представляют Float.NaN, тогда метод equals возвращает true, в то время как Float.NaN==Float.NaN принимает значение false.
2. Если f1 содержит +0.0f в то время как f2 содержит -0.0f, метод equal возвращает false, в то время как 0.0f==-0.0f возвращает true.
Что выведет следующий код?
В Java NaN'ы несравнимы между собой. Но есть два исключения в работе класса Float:
1. Если f1 и f2 оба представляют Float.NaN, тогда метод equals возвращает true, в то время как Float.NaN==Float.NaN принимает значение false.
2. Если f1 содержит +0.0f в то время как f2 содержит -0.0f, метод equal возвращает false, в то время как 0.0f==-0.0f возвращает true.
🔥Geekbrains анонсировали бесплатное обучение по нейросетям.
С 8 по 9 апреля стартует двухдневный онлайн-интенсив «Путь в IT: Практикум», на котором вас ждёт:
— Первый день: Обучение нейросетям и соревнование по скоропечатанию на клавиатуре с ценными призами.
— Второй день: Живой урок по программированию на Python и розыгрыш на 500 000 рублей.
ChatGPT-4 уже многих оставил без работы, научитесь программировать нейросети и вам это не грозит: Регистрация
С 8 по 9 апреля стартует двухдневный онлайн-интенсив «Путь в IT: Практикум», на котором вас ждёт:
— Первый день: Обучение нейросетям и соревнование по скоропечатанию на клавиатуре с ценными призами.
— Второй день: Живой урок по программированию на Python и розыгрыш на 500 000 рублей.
ChatGPT-4 уже многих оставил без работы, научитесь программировать нейросети и вам это не грозит: Регистрация
Java разработчик (senior)
#гибкийграфик #полныйдень
Локация: Москва
Компания: NAUMEN
Обязанности:
- расширять функциональности платформы;
- разрабатывать архитектурные решения;
- развивать кластерное решение платформы;
- проводить исследования, реализовывать прототипы, искать применимости новых подходов и решений в платформе.
Требования:
- уверенное владение java: твердое понимание структур данных, многопоточности, Stream API, java memory model, принципы работы GC;
- опыт промышленной разработки на ООП от 3 лет;
- знание шаблонов проектирования приложений;
- опыт командной разработки, опыт работы с Git;
- опыт работы с Spring;
- опыт работы с распределенными системами;
- опыт построения отказоустойчивых систем;
- опыт работы с реляционными базами данных;
- понимание архитектуры построения web-приложений;
- опыт работы с Hibernate;
- знание Linux на уровне пользователя
- английский для чтения документации.
#гибкийграфик #полныйдень
Локация: Москва
Компания: NAUMEN
Обязанности:
- расширять функциональности платформы;
- разрабатывать архитектурные решения;
- развивать кластерное решение платформы;
- проводить исследования, реализовывать прототипы, искать применимости новых подходов и решений в платформе.
Требования:
- уверенное владение java: твердое понимание структур данных, многопоточности, Stream API, java memory model, принципы работы GC;
- опыт промышленной разработки на ООП от 3 лет;
- знание шаблонов проектирования приложений;
- опыт командной разработки, опыт работы с Git;
- опыт работы с Spring;
- опыт работы с распределенными системами;
- опыт построения отказоустойчивых систем;
- опыт работы с реляционными базами данных;
- понимание архитектуры построения web-приложений;
- опыт работы с Hibernate;
- знание Linux на уровне пользователя
- английский для чтения документации.
This media is not supported in your browser
VIEW IN TELEGRAM
Боль всех работяг – долбо**ы на клиентах и начальстве
Мы устали от переработок, правок, плохого ТЗ и грубого отношения!
Поэтому собрали всех в одном зоопарке: Клиент Покинул Чат
Поделись своей болью анонимно или посмотри на "хороших" клиентов – @clientochat
Мы устали от переработок, правок, плохого ТЗ и грубого отношения!
Поэтому собрали всех в одном зоопарке: Клиент Покинул Чат
Поделись своей болью анонимно или посмотри на "хороших" клиентов – @clientochat
Всем привет!
Мы создали канал на YouTube, куда будем заливать все вебинары, подписывайтесь чтобы не потерять 🎈
И ловите #вебинар, который провёл Илья в пятницу
https://youtu.be/FLTEuBzV9_Q
Мы создали канал на YouTube, куда будем заливать все вебинары, подписывайтесь чтобы не потерять 🎈
И ловите #вебинар, который провёл Илья в пятницу
https://youtu.be/FLTEuBzV9_Q