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

Проверка данных класса (bean) в java тема не новая, но актуальная и здесь я объединю различные аспекты: валидацию данных в рамках JSR-303, покажу как это сделать чисто в Java и с использованием Spring, как делать в стандартном приложении и в Web.
Содержание: Валидация данных (JSR-303) в
— стандартном Java приложении
— c использованием Spring
— объединение Java + Spring
— Spring MVC
Читать полностью »

На очередной встрече московского сообщества Java-разработчиков jug.msk.ru, прошедшей 4 октября 2018 года, Чарльз Наттер рассказал о технологиях, используемых JRuby и другими динамическими языками для JVM.

Чарльз Наттер о динамических языках в JVM на jug.msk.ru - 1
Читать полностью »

Сегодня у нас в виртуальной студии самый известный в мире докладчик по Spring — Джош Лонг.

Именно его докладами открываются Java-конференции по всему миру. Именно он отвечает на вопросы сообщества, делает Spring Tips на YouTube, именно его «This week in Spring» мы читаем каждую неделю и многое другое.

Кстати, Джош разрешил использовать все материалы в нашем собственном «This week in Java», но он делает их в таком объеме и глубине, что эти данные ни разу не получилось сжать до формата «дайджеста на 15 минут».

Иногда кажется, что он находится во всех городах одновременно, читает доклады и пишет статьи в один момент. Сегодня мы будем разбираться, как это у него получается. Узнаем про «юргенизацию кода», причины удивительной живучести Spring и то, как он умудрился прожить столько лет без глобальных переписываний всего с нуля и другие интересные фишки.

«Научиться Spring — бессмысленное занятие» — Джош Лонг, главный евангелист Spring о внутренней кухне проекта - 1

Участники

«Научиться Spring — бессмысленное занятие» — Джош Лонг, главный евангелист Spring о внутренней кухне проекта - 2«Научиться Spring — бессмысленное занятие» — Джош Лонг, главный евангелист Spring о внутренней кухне проекта - 3Josh Long, Spring Developer Advocate at Pivotal

«Научиться Spring — бессмысленное занятие» — Джош Лонг, главный евангелист Spring о внутренней кухне проекта - 4«Научиться Spring — бессмысленное занятие» — Джош Лонг, главный евангелист Spring о внутренней кухне проекта - 5Евгений Трифонов, Олег Чирухин — редакция JUG.ru Group

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

Kotlin: копаем глубже. Конструкторы и инициализаторы - 1

В уже далёком мае 2017 года Google объявила о том, что Kotlin стал официальным языком для разработки под Android. Кто-то тогда впервые услышал название этого языка, кто-то на нём уже продолжительное время писал, но с того момента стало понятно, что все, кто близок к Android-разработке, теперь просто обязаны познакомиться с ним. Далее последовали как восторженные отклики «Наконец-то!», так и жуткое негодование «Зачем нам нам новый язык? Чем Java не угодила?» и т.д. и т.п.

С тех пор прошло достаточно времени, и хоть споры о том, хороший Kotlin или плохой, до сих пор не утихли, всё больше кода под Android пишется именно на нём. И даже вполне консервативные разработчики тоже переходят на него. Кроме того, в сети можно наткнуться на информацию, что скорость разработки после освоения этого языка увеличивается на 30% по сравнению с Java.
Сегодня Kotlin уже успел вылечиться от нескольких детских болезней, оброс большим количеством вопросов и ответов на Stack Overflow. Невооружённым взглядом стали видны как его плюсы, так и слабые места.

И вот на этой волне мне пришла в голову идея подробно разобрать отдельные элементы молодого, но популярного языка. Обратить внимание на сложные моменты и сравнить их с Java для наглядности и лучшего понимания. Разобраться в вопросе несколько глубже, чем это можно сделать, прочитав документацию. Если эта статья вызовет интерес, то, скорее всего, она положит начало целому циклу статей. А пока начну с довольно базовых вещей, которые, тем не менее, скрывают массу подводных камней. Поговорим о конструкторах и инициализаторах в Kotlin.Читать полностью »

Эта заметка является писанной версией моего доклада "Как загубить производительность с помощью неэффективного кода" с конференции JPoint 2018. Посмотреть видео и слайды можно на странице конференции. В расписании доклад отмечен обидным стаканчиком смузи, так что ничего сверхсложного не будет, это скорее для начинающих.

Предмет доклада:

  • как смотреть на код, чтобы найти в нём узкие места
  • распространённые антипаттерны
  • неочевидные грабли
  • обход граблей

В кулуарах мне указали на некоторые неточности/упущения в докладе, они здесь отмечены. Замечания также приветствуются.

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

Обзор конференции Atlassian - 1
Это обзор конференции Atlas Camp, которая проходила с 5 по 8 сентября в Барселоне. Организовала её компания Atlassian, чтобы рассказать о нововведениях в своих продуктах и для непосредственного общения разработчиков Atlassian с посетителями. Докладчики говорили о грядущих изменениях в своём API, о том, как будет развиваться их маркетплейс, об изменениях в интерфейсе и best practices в разработке. Кроме того, в программе конференции были выступления представителей компаний, разрабатывающих наиболее успешные и важные плагины.
Так как довольно большая часть моих задач по автоматизации связана с продуктами Atlassian (на данный момент это Confluence и Jira, а раньше приходилось иметь дело с Crucible, Fisheye, Bitbucket), то мне было интересно, какие нововведения появятся в ближайшее время в их API. К тому же мне хотелось послушать про интересные плагины и узнать больше про разработку собственных. Под катом подробный отчёт о том, что в итоге я увидел и узнал, а также прочие важные организационные моменты.Читать полностью »

3-5 октября в Амстердаме прошла конференция KotlinConf 2018, и мы рады поделиться первыми видео. Смотрите кейноут Андрея Бреслава, руководителя проекта Kotlin:

Ещё 8 видео доступны в нашем канале на YouTube.

Подпишитесь и получите ссылку на все видео, как только они станут доступны.

Ваша команда JetBrains
Читать полностью »

image
Иллюстрация opensource.com

Часть исходного кода игры Minecraft: Java Edition была легально опубликована на GitHub под свободной лицензией корпорацией Microsoft

Код был открыт под лицензией MIT и представляет собой Java-библиотеки Brigadier и DataFixerUpper. Они позволяют разбирать и направлять пользовательские команды, а также обрабатывать данные для новых версий игры.

Раньше основным способом увидеть этот код для энтузиастов была «декомпиляция» — конвертация байт-кода обратно в человеко-читаемый код на Java. Многим хватало и этого, но, конечно, «исходные тексты», полученные таким путем, были несколько труднее для восприятия чем оригинальные исходники.

В дальнейшем планируется «освобождение» других универсальных подсистем Minecraft, которые могут оказаться полезными для разработки других игр и упрощения труда мод-мейкеров. Вероятно, на следующем этапе будут открыты исходные тексты движка отрисовки Blaze3D, разрабатываемого для выпуска Minecraft 1.14. Читать полностью »

В четверг, 18 октября, за день до Joker 2018, в петербургском офисе компании Oracle состоится встреча JUG.ru с Венкатом Субраманиамом (Dr. Venkat Subramaniam), всемирно известным Java-энтузиастом, Java-чемпионом, известным спикером, консультантом и популярнейшим автором книг по программированию. Регистрация и информация о спикере — под катом.

[Питер] Встреча JUG.ru с Венкатом Субраманиамом — Design Patterns in the Light of Lambda Expressions - 1

Шаблоны проектирования — одна из центральных идей в объектно-ориентированном программировании. Как только в языке Java появились лямбды, появился повод обдумать их влияние на паттерны проектирования. На этом Джуге мы рассмотрим некоторые типовые шаблоны и переработаем их с использованием лямбд. В добавок, мы познакомимся с менее популярными, но не менее интересными паттернами, в которых можно удачно применить лямбды.

Джуг пройдет на английском языке.

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

Примерно со старшей школы меня сначала поверхностно, а потом все сильнее и сильнее, стало захватывать программирование. Поначалу это были банальные программки на Паскале, от которого я, впрочем, очень скоро отказался в пользу плюсов. Постепенно мой интерес нарастал и я стал прорешивать полуолимпиадные-полуобучающие задачки с применением различных довольно простеньких алгоритмов по типу бинарного поиска или обхода в глубину с некоторыми модификациями.

Примерно в это же время у меня возникла идея создать свое приложение для организации своего времени: условный прототип ежедневника. Да, довольно простенькая идея, но все же. Тогда у меня так и не дошли руки до написания программы. Зато дошли сейчас.

Так вот. Для написания этого самого приложения я решил изучить язык Java. Несмотря на то, что у меня к нему есть некое предубеждение (когда-то давно я начинал его учить и мне показалось, что в нем слишком длинные и непонятные названия методов, да и вообще все сложно), потребность в кроссплатформенности (почему бы приложение не запускать еще и на ПК без лишних приседаний?) вернула меня на путь изучения Java.

Для чего я все это пишу? Хочу делиться своим путем, своими ошибками, своим ходом мыслей в процессе создания приложения. Возможно, кому-то это поможет, кто-то в комментариях поделится чем-то интересным на этот счет, да и в процессе формулирования мыслей пройденное усвоится лучше).

С чего начать?

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


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