Рубрика «java» - 60

Всем привет, меня зовут Дмитрий, и сегодня я расскажу о том, как производственная необходимость заставила меня стать контрибутором для фреймворка Micronaut. Наверняка многие о нём слышали. Если вкратце, то это легковесная альтернатива Spring Boot, где основной упор сделан не на рефлексию, а на предварительную компиляцию всех нужных зависимостей. Более подробное знакомство можно начать с официальной документации.

Фреймворк Micronaut используется в нескольких внутренних проектах Яндекса и зарекомендовал себя достаточно хорошо. Так чего же нам не хватало? Могу сказать сразу: из коробки фреймворк поддерживает, в принципе, все фичи, которые теоретически могут понадобиться программисту для разработки бэкендов. Однако есть редкие кейсы, которые из коробки не поддерживаются. Один из них — когда работать нужно не по HTTP, а с расширением HTTP. Например, с дополнительными методами. Таких случаев на самом деле гораздо больше, чем может показаться. Более того, часть таких протоколов является стандартами:

  • Webdav — расширение для доступа к ресурсам. Помимо стандартных методов, HTTP требует поддержки дополнительных методов типа LOCK, PROPPATCH и т. д.
  • Caldav — расширение Webdav для работы с событиями календарного типа. Данный протокол с большой долей вероятности есть в приложениях на вашем смартфоне: для синхронизации календарей, встреч и т. д.

И этим список не исчерпывается. Если вы заглянете в реестр HTTP-методов, то увидите, что HTTP-методов, лишь описанных стандартами RFC, на данный момент 39. А сколько ещё случаев, когда имеется самописный протокол поверх HTTP. Так что поддержка нестандартных HTTP-методов довольно распространена. Также часто бывает, что фреймворк, который вы используете, не поддерживает такие методы. Вот дискуссия на Stack Overflow для ExpressJS. А вот pull request на гитхабе для Tornado. Ну и поскольку Micronaut часто позиционируется как легковесная альтернатива Spring — то вот та же проблема для Spring.
Читать полностью »

Как и у всех разработчиков, у меня настал период затишья. Проект подходил к концу, задач практически не было, хотелось выше зарплату, ну и пошла получать свой заветный job offer.

Подборка психологических и нетипичных технических вопросов с собеседований Java-разработчика - 1

Так вышло, что некоторые собеседования занимали 2-3 этапа, и я накопила парад вопросов, которыми спешу с Вами поделиться.

Психологические вопросы

Подборка психологических и нетипичных технических вопросов с собеседований Java-разработчика - 2

Представители отдела кадров и не IT-руководители качественно выполняют свою работу и тоже хотят тебя о чем-нибудь спросить, но некоторые из них удивляют меня все больше и больше. Руководитель одной из контор устроил мне даже блиц-опрос с таймером. Если раньше обходились двумя вопросами: “Кем Вы видите себя через 5 лет?” и “Что Вас не устраивает на старом месте работы? Сейчас же, все вокруг только и говорят, что о психологии, вот и появляются подобные вопросы.

Мои любимые, простенькие короткие вопросики:
— “Вы конфликтный человек?”
— “Допустим у Вас конфликт, как вы будете его решать?”
— “Если в pull-request вы не согласны с коллегой, какие Ваши действия?”
— “Как часто вы пьете чай на рабочем месте?”
— “Как вы решаете споры в команде?”
— “Опишите работу вашей мечты”
— “Опишите рабочее место Вашей мечты”
— “Если бы вы выиграли в лотерею кругосветное путешествие длиной в год. Какова вероятность, что после приезда вы пойдете на прежнее место работы?”

Однажды мне прислали психологический тест, состоящий из 2 частей в общей сложности на 300 вопросов, потому что: «Данная вакансия предполагает конкурсный отбор в 3 этапа — 2 тестирования по электронной почте (психологическое и профессиональное) и собеседование (очное или скайп, как вам удобно)»
Читать полностью »

«Менеджеру нужно продолжать кодить»: интервью со Стивеном Чином - 1

Многие Java-разработчики знают Стивена Чина. Кто-то видел его трансляции с Java-мероприятий, кто-то — его интервью с другими известными джавистами, а кто-то — доклады про Java на Raspberry Pi. Да что уж там, в Твиттере он @steveonjava — то есть даже юзернеймом показывает, насколько его жизнь посвящена этому языку.

До недавних пор он работал в Oracle, а теперь перешёл в компанию JFrog. Это может звучать неожиданно: уйти из Oracle, когда твоя жизнь — это Java? Но второе название российским джавистам тоже хорошо знакомо, во многом благодаря работающему там Баруху jbaruch Садогурскому.

Скоро российские разработчики смогут увидеть лично и Стивена, и Баруха на конференции Joker, а пока что Стивен рассказал нам о самых разных вещах, например, таких:

  • Чем именно он занимается теперь;
  • Как разработчику правильнее становиться менеджером;
  • Насколько большим можно сделать кластер из Raspberry Pi (и зачем);
  • Жива ли JavaFX;
  • Чем Java-активисту полезен мотоцикл.

Читать полностью »

Продолжение перевода небольшой книги:
«Understanding Message Brokers»,
автор: Jakub Korab, издательство: O'Reilly Media, Inc., дата издания: June 2017, ISBN: 9781492049296.

Предыдущая переведенная часть: Понимание брокеров сообщений. Изучение механики обмена сообщениями посредством ActiveMQ и Kafka. Глава 1. Введение
Читать полностью »

The Eclipse Foundation выпустила новые спецификации Jakarta EE 8 platform & web-profile.
Они также представили сервер приложений Jakarta EE и набор тестов(TCK) для проверки других совместимых реализаций.

Вышел окончательный релиз Jakarta EE 8 - 1
10 сентября 2019 года была выпущена Jakarta EE 8.
Читать полностью »

Перевод данной статьи подготовлен специально для студентов курса «Разработчик Java».

Как полиморфизм реализован внутри JVM - 1


В моей предыдущей статье Everything About Method Overloading vs Method Overriding (“Все о перегрузке и переопределении методов”) были рассмотрены правила и различия перегрузки и переопределения методов. В этой статье мы посмотрим, как обрабатывается перегрузка и переопределение методов внутри JVM.Читать полностью »

Обычно, когда кто-то говорит про OSM, то в голове всплывает какой-нибудь из веб-сервисов, или приложение вроде Maps.me, основанные на данных OSM. На самом деле проект OSM — это в первую очередь данные, всё остальное по сути частные случаи их использования. Сервисы предоставляют обычно только часть информации, отрисованной по своим правилам.

Исходно OSM — это набор точек, связей между точками, и тегов к ним. Исходники сообщества имеют два формата. Первоначально XML использовался как приоритетный способ распространения данных, но, файл Planet.osm в несжатом виде уже перевалил за терабайт, и я не вижу смысла использования его для относительно объёмной информации. PBF имеет большое преимущество — он бинарный и файл всей земли имеет размер около 50Гб (сжатый XML порядка 80 Гб).

Речь пойдет об импорте данных OSM из «родного» формата с помощью инструмента Osmosis.

Также нам понадобится PostgreSql с расширением Postgis, в который мы и будем импортировать OSM данные.

Как результат — возможность получения в своей БД информации по объектам с перечисленными здесь тегами.

Импорт OpenStreetMap. От бинарного исходника к таблице в БД в несколько шагов - 1
Читать полностью »

В процессе работы над очередным проектом в команде возникли споры по поводу использования формата XML или SQL в Liquibase. Естественно про Liquibase уже написано много статей, но как всегда хочется добавить свои наблюдения. В статье будет представлен маленький туториал по созданию простенького приложения с бд и рассмотрим разницу метаинформации по данным типам.

Liquibase — это независимая от базы данных библиотека для отслеживания, управления и применения изменений схем базы данных. Для того, чтобы внести изменения в БД, создается файл миграции (*changeset*), который подключается в главный файл (*changeLog*), который контролирует версии и управляет всеми изменениями. В качестве описания структуры и изменений базы данных используется XML, YAML, JSON и SQL форматы.

Основная концепция миграций БД, выглядит следующим образом:

Выбор между XML и SQL для накатывания скриптов LiquiBase на примере Java-Spring-H2 - 1
Читать полностью »

Меня зовут Волков Игорь. Я работаю в консалтинговой компании на позициях Java разработчика, архитектора, руководителя команды, технического менеджера. Разные роли в зависимости от текущих потребностей проекта. Обратил внимание на конкурсы от mail.ru давно, но активно поучаствовать получилось только на Paper IO.

История второго места в Mini AI Cup 4: Paper IO - 1

В этот раз организаторы предложили реализовать стратегию управления ботом по мотивам популярной игры. Подробнее с правилами можно ознакомиться здесь. Код моей стратегии можно найти здесь, а примеры игр на сайте чемпионата.

Читать полностью »

Всем привет!
Начал перевод небольшой книги:
"Understanding Message Brokers",
автор: Jakub Korab, издательство: O'Reilly Media, Inc., дата издания: June 2017, ISBN: 9781492049296.

Из введения к книге:
"… Эта книга научит вас рассуждать о системах обмена сообщениями на брокерах, сравнивая и противопоставляя две популярные технологии брокеров: Apache ActiveMQ и Apache Kafka. Здесь будут изложены примеры использования и стимулы разработки, которые привели к тому, что их разработчики использовали совершенно разные подходы к одной и той же области — обмену сообщениями между системами с промежуточным брокером. Мы рассмотрим эти технологии с нуля и выделим влияние различных вариантов дизайна на этом пути. Вы получите глубокое понимание обоих продуктов, понимание того, как их следует и не следует использовать, и понимание того, на что следует обращать внимание при рассмотрении других технологий обмена сообщениями в будущем ..."

Буду выкладывать законченные главы по мере перевода.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js