Привет! На связи Podlodka Crew — организатор IT-конференций, родившихся из известного подкаста!
Что важно уметь для построения микросервисной архитектуры? Профайлить, держать код в порядке, придерживаться принципов DDD и SOLID, создавать грамотный API и не использовать антипаттернов.
Это и многое другое разберём во втором сезоне Podlodka Java Crew, который стартует 20 марта.
Вместе с экспертами из Yandex Cloud, Tinkoff, Точка, Альфа-банк, СберМаркет, Qiwi, Huawei и других компаний:
*️⃣ Узнаем, возможно ли построить чистую архитектуру и добиться порядка в коде, не построив распределённый монолит вместо микросервисной архитектуры;
*️⃣ Поучаствуем в круглом столе по монолитам, микросервисам, гибридной архитектуре;
*️⃣ Научимся проектировать микросервисную архитектуру, разберёмся, что такое eventual consistency и как сделать грамотный API;
*️⃣ Обсудим 10 популярных антипаттернов и узнаем, как их исправить.
Это не все темы: расписание уже на сайте: https://podlodka.io/javacrew! Поспеши забрать свой билет 😉
Что важно уметь для построения микросервисной архитектуры? Профайлить, держать код в порядке, придерживаться принципов DDD и SOLID, создавать грамотный API и не использовать антипаттернов.
Это и многое другое разберём во втором сезоне Podlodka Java Crew, который стартует 20 марта.
Вместе с экспертами из Yandex Cloud, Tinkoff, Точка, Альфа-банк, СберМаркет, Qiwi, Huawei и других компаний:
*️⃣ Узнаем, возможно ли построить чистую архитектуру и добиться порядка в коде, не построив распределённый монолит вместо микросервисной архитектуры;
*️⃣ Поучаствуем в круглом столе по монолитам, микросервисам, гибридной архитектуре;
*️⃣ Научимся проектировать микросервисную архитектуру, разберёмся, что такое eventual consistency и как сделать грамотный API;
*️⃣ Обсудим 10 популярных антипаттернов и узнаем, как их исправить.
Это не все темы: расписание уже на сайте: https://podlodka.io/javacrew! Поспеши забрать свой билет 😉
Media is too big
VIEW IN TELEGRAM
Java. Распараллеливаем вычисления на пуле потоков
Разбираемся, как можно по простому ускорить вычисления с помощью параллельного выполнения на пуле потоков.
Исходный код
источник
👉@BookJava
Разбираемся, как можно по простому ускорить вычисления с помощью параллельного выполнения на пуле потоков.
Исходный код
источник
👉@BookJava
Автотестировщик (middle)
#полныйдень
З/П: от 160 000 ₽
Локация: Екатеринбург
Компания: Сбер
Обязанности:
- проводить функциональное тестирование
- писать автотесты
- готовить протоколы ИФТ и ПСИ.
Требования:
- работы в роли автоматизатора тестирования от 2-х лет на проектах разработки/модификации/внедрения систем с использованием Java
- функционального и интеграционного тестирования
- автоматизации (Java) (разработка новых и актуализация существующих автоматизированных тестов, запуск автотестов)
- работы с багтрекенговыми системами и системами управления тестированием (HP ALM, Atlassian Jira).
#полныйдень
З/П: от 160 000 ₽
Локация: Екатеринбург
Компания: Сбер
Обязанности:
- проводить функциональное тестирование
- писать автотесты
- готовить протоколы ИФТ и ПСИ.
Требования:
- работы в роли автоматизатора тестирования от 2-х лет на проектах разработки/модификации/внедрения систем с использованием Java
- функционального и интеграционного тестирования
- автоматизации (Java) (разработка новых и актуализация существующих автоматизированных тестов, запуск автотестов)
- работы с багтрекенговыми системами и системами управления тестированием (HP ALM, Atlassian Jira).
#вопросы_с_собеседований
Можно ли одновременно использовать в сервлете PrintWriter и ServletOutputStream?
Ответ:
Так сделать не получится, т.к. при попытке одновременного вызова getWriter() и getOutputStream() будет выброшено исключение java.lang.IllegalStateException с сообщением, что уже был вызван другой метод.
Можно ли одновременно использовать в сервлете PrintWriter и ServletOutputStream?
Ответ:
Коротко и по работному делу!
— Море IT вакансий на удалёнку разработчикам и джунам, стажёрам!
— Каждый день
— Прямые контакты эйчаров
||Погнали|| Подписаться на канал 🤘
— Море IT вакансий на удалёнку разработчикам и джунам, стажёрам!
— Каждый день
— Прямые контакты эйчаров
||Погнали|| Подписаться на канал 🤘
Media is too big
VIEW IN TELEGRAM
Телеграм бот-игра на JAVA в 100 строк
Пишем телеграм бота, реализующего простую игру в стиле "камень-ножницы-бумага" на чистой джава + библиотека telegram api. Для пущей сложности я делаю это без БД и при этом пытаюсь выдернуть информацию о том, в каком чате происходит дело (может пригодиться для хранения какой-либо статистики)
Код из видео
Использованная библиотека
источник
👉@BookJava
Пишем телеграм бота, реализующего простую игру в стиле "камень-ножницы-бумага" на чистой джава + библиотека telegram api. Для пущей сложности я делаю это без БД и при этом пытаюсь выдернуть информацию о том, в каком чате происходит дело (может пригодиться для хранения какой-либо статистики)
Код из видео
Использованная библиотека
источник
👉@BookJava
Weekend Offer для PHP-разработчиков 24-26 марта
Отправляйте заявку до 23 марта и получите шанс всего за одни выходные присоединиться к команде ВКонтакте — крупнейшей социальной сеть в России и странах СНГ, которая объединяет людей, сервисы и компании, создавая простые и удобные инструменты коммуникации.
Разработчики требуются сразу по нескольким направлениям: в команду потребления контента и рекомендаций, в команду контента, в команду поиска, в команду NFT, в команду pазвития суперприложения и в команду UX.
ВКонтакте также рассмотрит кандидатуры разрабов, которые пишут и на других языках, если они кодят на PHP и готовы переходить на него.
Зарегистрироваться
Отправляйте заявку до 23 марта и получите шанс всего за одни выходные присоединиться к команде ВКонтакте — крупнейшей социальной сеть в России и странах СНГ, которая объединяет людей, сервисы и компании, создавая простые и удобные инструменты коммуникации.
Разработчики требуются сразу по нескольким направлениям: в команду потребления контента и рекомендаций, в команду контента, в команду поиска, в команду NFT, в команду pазвития суперприложения и в команду UX.
ВКонтакте также рассмотрит кандидатуры разрабов, которые пишут и на других языках, если они кодят на PHP и готовы переходить на него.
Зарегистрироваться
Нашли для вас ребят, с которыми можно начать карьеру разработчика без вложений, а после прохождения курса они гарантировано устроят на работу!🤩
ITM Space - один из немногих проектов в России, где ты можешь научиться Java разработке бесплатно. Оплата обучения происходит только после того, как ты начнешь работать. Первая зарплата - от 150 000 рублей. 💸
1. Ты получаешь гарантию трудоустройства, если не найдешь работу - ничего не должен.
2. Будешь учиться по индивидуальной программе с личным наставником.
3. Изучишь востребованный стек технологий: Java Core, JDBC, HIBERNATE, SPRING(Core, MVC, Security), SPRING BOOT, GIT(GITHUB, GITLAB), MAVEN
4. Сможешь общаться в закрытом сообществе студентов - разработчиков
5. И получишь карьерную поддержку от экспертов бессрочно: мастер-классы, митапы, консультации и тренинги.
Курс подойдет тем, кто хочет войти в IT, но никогда раньше не занимался программированием. Студентам ВУЗов и выпускникам образовательных программ, которые затрудняются найти работу после обучения. ...
ITM Space - один из немногих проектов в России, где ты можешь научиться Java разработке бесплатно. Оплата обучения происходит только после того, как ты начнешь работать. Первая зарплата - от 150 000 рублей. 💸
1. Ты получаешь гарантию трудоустройства, если не найдешь работу - ничего не должен.
2. Будешь учиться по индивидуальной программе с личным наставником.
3. Изучишь востребованный стек технологий: Java Core, JDBC, HIBERNATE, SPRING(Core, MVC, Security), SPRING BOOT, GIT(GITHUB, GITLAB), MAVEN
4. Сможешь общаться в закрытом сообществе студентов - разработчиков
5. И получишь карьерную поддержку от экспертов бессрочно: мастер-классы, митапы, консультации и тренинги.
Курс подойдет тем, кто хочет войти в IT, но никогда раньше не занимался программированием. Студентам ВУЗов и выпускникам образовательных программ, которые затрудняются найти работу после обучения. ...
9 ложных или устаревших представлений о Java
С момента первого выпуска Java в 1995 году многое изменилось как в программном, так и в аппаратном обеспечении. А переход на шестимесячный цикл релизов способствовал стремительной эволюции языка и инструментов Java.
В этой статье рассматриваются ложные и устаревшие представления о Java.
Читать статью
С момента первого выпуска Java в 1995 году многое изменилось как в программном, так и в аппаратном обеспечении. А переход на шестимесячный цикл релизов способствовал стремительной эволюции языка и инструментов Java.
В этой статье рассматриваются ложные и устаревшие представления о Java.
Читать статью
Android Developer (teamlead)
#офис #полныйдень #удаленка
З/П: от 250 000 до 280 000 ₽
Локация: Москва, Санкт-Петербург, Ростов-на-Дону
Компания: Aston
Обязанности:
- разрабатывать приложения на платформе Android;
- оценивать сложность разработки, планировать и работать по спринтам (Agile/Scrum);
- разрабатывать unit-тесты, проводить рефакторинг и code review;
- управлять командой разработки.
Требования:
- опыт разработки под Android от 7-ми лет;
- опыт работы на Java и Kotlin от 5-ти лет;
- опыт управления командой разработки;
- опыт работы с проектом, где DAU от 10 000 человек;
уверенное знание Android SDK, знание разницы между API Levels;
- знание современных архитектурных паттернов в Android-разработке, Clean Architecture;
- понимание принципов проектирования SOLID;
- опыт разработки клиент-серверного приложения (REST, JSON);
- опыт оптимизации сложного UI;
- опыт оптимизации технических метрик приложения.
#офис #полныйдень #удаленка
З/П: от 250 000 до 280 000 ₽
Локация: Москва, Санкт-Петербург, Ростов-на-Дону
Компания: Aston
Обязанности:
- разрабатывать приложения на платформе Android;
- оценивать сложность разработки, планировать и работать по спринтам (Agile/Scrum);
- разрабатывать unit-тесты, проводить рефакторинг и code review;
- управлять командой разработки.
Требования:
- опыт разработки под Android от 7-ми лет;
- опыт работы на Java и Kotlin от 5-ти лет;
- опыт управления командой разработки;
- опыт работы с проектом, где DAU от 10 000 человек;
уверенное знание Android SDK, знание разницы между API Levels;
- знание современных архитектурных паттернов в Android-разработке, Clean Architecture;
- понимание принципов проектирования SOLID;
- опыт разработки клиент-серверного приложения (REST, JSON);
- опыт оптимизации сложного UI;
- опыт оптимизации технических метрик приложения.
Для чего используются аннотации?
Удобно рассмотреть случаи применения аннотаций с точки зрения возможных значений их свойства RetentionPolicy:
SOURCE – аннотация присутствует только в исходном коде, но не вовлечена в компиляцию. Можно разделить их на две категории:
Первая – аннотации для программиста, а не для программы. Это всевозможные маркеры. Они добавляют аннотируемым элементам некоторую специальную семантику. Более формализованный вариант документации. Примеры – @Immutable и @ThreadSafe из Hibernate.
Вторая категория – инструкции для инструментов разработки. Примеры этой категории, @SuppressWarnings и @Override могут влиять на предупреждения и ошибки компиляции. IntelliJ IDEA умеет понимать @Nullable и @NonNull из Spring Framework, и предупреждать о возможных NullPointerException.
CLASS – самое экзотическое, но при том стандартное значение. Аннотация попадает в байткод .class-файла, но игнорируется загрузчиком классов. В результате такая аннотация недоступна для рефлекшна. Используется для сторонних инструментов, обрабатывающих байткод, например для обфускаторов.
RUNTIME – самое ходовое значение. Цель снабжается метаинформацией, доступной во время выполнения программы. Сама по себе аннотация всё так же не добавляет нового поведения. Для практической пользы runtime-аннотации в программе должен быть исполнен некоторый код процессинга, который прочитает метаинформацию инструментами Reflection API. Такой механизм широко используется во множестве популярных фреймворков: Spring, Hibernate, Jackson.
Удобно рассмотреть случаи применения аннотаций с точки зрения возможных значений их свойства RetentionPolicy:
SOURCE – аннотация присутствует только в исходном коде, но не вовлечена в компиляцию. Можно разделить их на две категории:
Первая – аннотации для программиста, а не для программы. Это всевозможные маркеры. Они добавляют аннотируемым элементам некоторую специальную семантику. Более формализованный вариант документации. Примеры – @Immutable и @ThreadSafe из Hibernate.
Вторая категория – инструкции для инструментов разработки. Примеры этой категории, @SuppressWarnings и @Override могут влиять на предупреждения и ошибки компиляции. IntelliJ IDEA умеет понимать @Nullable и @NonNull из Spring Framework, и предупреждать о возможных NullPointerException.
CLASS – самое экзотическое, но при том стандартное значение. Аннотация попадает в байткод .class-файла, но игнорируется загрузчиком классов. В результате такая аннотация недоступна для рефлекшна. Используется для сторонних инструментов, обрабатывающих байткод, например для обфускаторов.
RUNTIME – самое ходовое значение. Цель снабжается метаинформацией, доступной во время выполнения программы. Сама по себе аннотация всё так же не добавляет нового поведения. Для практической пользы runtime-аннотации в программе должен быть исполнен некоторый код процессинга, который прочитает метаинформацию инструментами Reflection API. Такой механизм широко используется во множестве популярных фреймворков: Spring, Hibernate, Jackson.
Что такое busy spin?
busy spin – это техника, которую программисты используют, чтобы заставить поток ожидать при определённом условии. В отличие от традиционных методов wait(), sleep() или yield(), которые подразумевают уступку процессорного времени, этот метод вместо уступки выполняет пустой цикл. Это необходимо, для того, чтобы сохранить кэш процессора, т.к. в многоядерных системах, существует вероятность, что приостановленный поток продолжит своё выполнение уже на другом ядре, а это повлечет за собой перестройку состояния процессорного кэша, которая является достаточно затратной процедурой.Media is too big
VIEW IN TELEGRAM
Java: A Beginner's Guide, Ninth Edition
Автор: Herbert Schildt
Год издания: 2022
#java #english
Скачать книгу
Автор: Herbert Schildt
Год издания: 2022
#java #english
Скачать книгу
Метод Math.pow()
Возводит значение первого аргумента в степень второго аргумента, тем самым позволяет осуществить быстрое возведение в степень любых значений.
Выше рассмотрен пример возведение числа в квадрат и куб.
Заметьте, для вывода на экран целого значения используется "%.0f", так как метод возвращает double значение.
Возводит значение первого аргумента в степень второго аргумента, тем самым позволяет осуществить быстрое возведение в степень любых значений.
Выше рассмотрен пример возведение числа в квадрат и куб.
Заметьте, для вывода на экран целого значения используется "%.0f", так как метод возвращает double значение.
Можно ли наследовать аннотацию?
Можно понять этот вопрос по-разному. Если имеется в виду, передается ли аннотация класса-родителя классу-наследнику, ответ – по умолчанию нет. Но наследование можно включить, если на объявлении аннотации поставить мета-аннотацию @Inherited. Это работает только для классов, переопределенные методы нужно аннотировать заново.
Другой возможный смысл вопроса – наследование самих типов-аннотаций. Аннотация, как класс или интерфейс представляется в системе ссылочным типом, она тоже компилируется в .class-файл. Вы можете создать переменную с типом, скажем, java.lang.Override.
Но в отличие от других ссылочных типов, объявление аннотации (@interface) не может иметь секций extends или implements. Это ограничение добавлено просто чтобы не усложнять систему типов. В скомпилированном коде все типы-аннотации – это интерфейсы, унаследованные от Annotation.
Можно понять этот вопрос по-разному. Если имеется в виду, передается ли аннотация класса-родителя классу-наследнику, ответ – по умолчанию нет. Но наследование можно включить, если на объявлении аннотации поставить мета-аннотацию @Inherited. Это работает только для классов, переопределенные методы нужно аннотировать заново.
Другой возможный смысл вопроса – наследование самих типов-аннотаций. Аннотация, как класс или интерфейс представляется в системе ссылочным типом, она тоже компилируется в .class-файл. Вы можете создать переменную с типом, скажем, java.lang.Override.
Но в отличие от других ссылочных типов, объявление аннотации (@interface) не может иметь секций extends или implements. Это ограничение добавлено просто чтобы не усложнять систему типов. В скомпилированном коде все типы-аннотации – это интерфейсы, унаследованные от Annotation.
Java для сисадминов
Эта статья написана в основном для системных администраторов Java-приложений (DevOps-инженеров, SRE и других производных специализаций). Вероятнее всего, Java-разработчики уже все это прекрасно знают. Хотя Junior Java-разработчикам эта информация может помочь систематизировать знания.
Статья не претендует на полноту или полную непогрешимость. Во-первых, нельзя объять необъятное. Во-вторых, все меняется и проверенные истины могут перестать быть истинами в новых версиях. В сети существует множество статей об устройствах Java, однако в этой статье в блоге ЛАНИТ я стремился сделать выжимку основных моментов, необходимых для администраторов Java-приложений. Для более глубокого погружения в тот или иной вопрос потребуется обратиться к другим источникам.
Читать статью
Эта статья написана в основном для системных администраторов Java-приложений (DevOps-инженеров, SRE и других производных специализаций). Вероятнее всего, Java-разработчики уже все это прекрасно знают. Хотя Junior Java-разработчикам эта информация может помочь систематизировать знания.
Статья не претендует на полноту или полную непогрешимость. Во-первых, нельзя объять необъятное. Во-вторых, все меняется и проверенные истины могут перестать быть истинами в новых версиях. В сети существует множество статей об устройствах Java, однако в этой статье в блоге ЛАНИТ я стремился сделать выжимку основных моментов, необходимых для администраторов Java-приложений. Для более глубокого погружения в тот или иной вопрос потребуется обратиться к другим источникам.
Читать статью
🚀 Спроектируйте ленту друзей ВКонтакте в прямом эфире!
📌 System Design interview — особенная секция собеседований разработчиков, где проверяется знание плюсов и минусов различных подходов при проектировании архитектуры, умение уточнять требования, а также способность кандидата проектировать сложные распределенные системы.
🗓 18 марте в 18:00 по МСК пройдет бесплатный открытый урок по проектированию ленты друзей ВКонтакте в прямом эфире.
Чему вы научитесь:
- проводить анализ требований;
- оценивать нагрузку на систему;
- проектировать ленту друзей ВКонтакте;
- проходить собеседования.
➡️ Регистрация на открытый урок ⬅️
📌 System Design interview — особенная секция собеседований разработчиков, где проверяется знание плюсов и минусов различных подходов при проектировании архитектуры, умение уточнять требования, а также способность кандидата проектировать сложные распределенные системы.
🗓 18 марте в 18:00 по МСК пройдет бесплатный открытый урок по проектированию ленты друзей ВКонтакте в прямом эфире.
Чему вы научитесь:
- проводить анализ требований;
- оценивать нагрузку на систему;
- проектировать ленту друзей ВКонтакте;
- проходить собеседования.
➡️ Регистрация на открытый урок ⬅️
Java developer (middle, senior)
#офис #полныйдень
Локация: Новосибирск, Москва
Требования:
- Опыт Backend разработки на Java, Kotlin, Scala
Будет плюсом:
- знание BigData
- знакомство с фреймворками (Spark, Flink, Nifi, Kafka)
Откликнуться: @Svetlanakachar
#офис #полныйдень
Локация: Новосибирск, Москва
Требования:
- Опыт Backend разработки на Java, Kotlin, Scala
Будет плюсом:
- знание BigData
- знакомство с фреймворками (Spark, Flink, Nifi, Kafka)
Откликнуться: @Svetlanakachar