Обновить
128K+

Java *

Объектно-ориентированный язык программирования

237,2
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Spring Security 4 + CSRF (добавление в Spring проект защиты от межсайтовой подделки запроса)

Время на прочтение2 мин
Охват и читатели40K


Здравствуйте!
Современное веб приложение считается уязвимым, если в нем отсутствует защита от Межсайтовой подделки запроса (CSRF).
В Spring Security 4.x она включена по умолчанию, поэтому при миграции с Spring Security 3.x на 4.x ее надо либо отключить
<http>
	...
	<csrf disabled="true"/>
</http>
либо, правильнее и зачетнее, добавить в проект.

Собственно, сделал это в 10-минутном видео:

Читать дальше →

Внедрение веб консолей в jvm процесс на примере SonarQube

Время на прочтение5 мин
Охват и читатели12K
По аналогии с примером из этой статьи, вы сможете внедрить консоль hawtio в свое jvm приложение без его пересборки и перекомпиляции. А также в случае с DEV/QA хостами внедрить в java процесс SQL веб консоль из проекта H2


Скринкасты, описание процесса и краткий обзор компонент...

Управление версиями зависимостей в Maven проекте

Время на прочтение4 мин
Охват и читатели39K
Одним из преимуществ организации Java проекта с помощью Maven является удобное описание всех библиотек и их версий, которые для него требуются. Далее, по мере развития проекта, нам наверняка захочется иметь возможность обновлять версии этих библиотек. Такой функционал предоставляет расширение Versions Maven.
Читать дальше →

Облака на службе СМИ, или Как Amazon помогает обрабатывать большие объемы видеоконтента

Время на прочтение6 мин
Охват и читатели7.9K
Нашему заказчику, одному из крупнейших мировых издательств, потребовалось увеличить производительность приложения для публикации видео новостей в связи с возросшим объемом трафика. Пользователи приложения — редакторы media-ресурсов. В день через него проходит порядка 200 новостных роликов, средний размер каждого из них ~ 500 мб, итого около 100 Гб свежих новостей в сутки.

Сегодня мы поделимся опытом, как CloudFront и S3 помогли нам построить высоконагруженную и устойчивую систему обработки контента.



Надеемся, наш опыт заинтересует разработчиков/проектировщиков систем по хранению и обработке медиаконтента (видео, аудио, изображения) и технических специалистов, активно использующим сервисы AWS.

Читать дальше →

Передача опыта: Путь Джедая

Время на прочтение3 мин
Охват и читатели21K
image

Рано или поздно каждый из нас задумывается, имеет ли смысл передать свой опыт детям. На сегодняшний день можно сказать, что проект, который мы начали более двух лет назад, состоялся и выглядит удачным. Раз результат положительный, мы решили, почему бы не поделится с уважаемой публикой.

Пора!… Кони уже неслись над крышами… (с) Михаил Булгаков

Читать дальше →

Лямбда-выражения в Java, как и зачем их сериализировать?

Время на прочтение5 мин
Охват и читатели24K


Механизм лямбда-выражений, представленный в Java8, стал такой фичей, которая чётко разделила код до нее и после (кажется, такое же может случится с Java9 и модульной системой, но в плохом смысле). В Java8 стало больше функциональных трюков, разнообразная обработка больших массивов данных стала значительно проще и теперь занимает куда меньше места. Однако, касательно рационального использования лямбда-выражений существует много вопросов таких как: насколько рационально часто их использовать? существенна ли потеря производительности теряется при переходе от обычного цикла в `forEach()` с лямбда-выражением и так далее. Большинство курсов (даже курс Oracle) игнорируют эти вопросы. В этом посте будет описан как раз один из, наверное, наименее популярных вопросов, но не менее интересный чем остальные:
Как работать сериализация лямбда-выражений в Java и как её можно использовать?

Читать дальше →

Consulo: Выполнение Java кода на .NET платформе с помощью IKVM.NET

Время на прочтение3 мин
Охват и читатели15K
Привет Хабр. Мои предыдущие посты описывают только поддержку Unity или Mono/Microsoft .NET. Но при есть ещё много вещей про которые я не рассказываю. Вот про одну я хочу рассказать, это IKVM.NET

Для тех кто пропустил мои посты:
Consulo — это форк IntelliJ IDEA Community Edition, который имеет поддержку .NET(C# на текущий момент, и на этот сектор пока идет большой акцент), Java
Читать дальше →

«Скорость – это такая фича, от которой никто никогда не отказывается» — интервью с Дмитрием Жемеровым из JetBrains

Время на прочтение28 мин
Охват и читатели26K
Сегодня пятница, а пятница на хабре — это отличный день для чего-то необычного. Сегодня я предлагаю вашему вниманию интервью с Дмитрием yole Жемеровым, человеком, который приложил руку и к IntelliJ IDEA, PyCharm, Kotlin и многим другим продуктам компании JetBrains.

О чем мы поговорили:
  • как развивается IDEA, куда она движется
  • в чем разница между IntelliJ и JetBrains
  • зачем в компании два CEO
  • что происходит в Kotlin'e
  • с какими трудностями столкнулась команда Kotlin в процессе разработке языка
  • что такое Language Design Review
  • что представляет собой современный Google
  • почему закрылся Google Code
  • почему хабр важен для разработчиков IDE




Под катом — расшифровка этого интервью.
Приступить к прочтению

Joker 2015: Новости 16-27 июля 2015 — новые спикеры и доклады

Время на прочтение3 мин
Охват и читатели6.8K
С момента анонса Joker 2015 на хабре прошло почти две недели. В этом посте я коротко расскажу о том, что нового у нас произошло за это время. И говорить мы будем, как обычно, о контенте — новых заявленных спикерах и их докладах.




НОВЫЕ СПИКЕРЫ И ИХ ТЕМЫ



jemerov
Дмитрий Жемеров — ветеран компании JetBrains, человек, приложивший руку к IntelliJ IDEA, RubyMine, PyCharm и возглавивший в свое время процедуру предобразования IDEA из простой IDE в платформу для написания IDE для разных языков. В JetBrains успел поработать разработчиком, потом CTO, потом на год уходил в Google. Несколько месяцев назад вернулся в JetBrains, где возглавил команду поддержки языка Kotlin в IDE. Вместе со Светой Исаковой пишет первую книгу по Kotlin, «Kotlin in Action», которая выйдет в свет, видимо, в следующем году.

На конференции Дмитрий расскажет о том, какие части платформы IntelliJ IDEA в данный момент переписываются на Kotlin, почему были выбраны именно они, с какими проблемами сталкиваются разработчики при этом самом переписывании и какой профит от Котлина получает при таком переписывании проект.

Кстати, буквально со дня на день на хабре мы опубликуем большое (часовое!) видеоинтервью с Дмитрием. Там будет и про JetBrains, и про IDEA, и про Kotlin и про Google — так что ждите интересного!


Еще анонсы

Анализируем большие объемы данных с Apache Spark

Время на прочтение1 мин
Охват и читатели18K
image
С анализом больших объемов данных постепенно начинают сталкиваться не только крупнейшие IT-компании, но и обычные разработчики. В нашей компании в ряде проектов такая задача возникает, и мы решили систематизировать накопленный опыт, поделившись с коллегами по i-Free и нашими партнерами наиболее эффективными инструментами и технологиями. Сегодня речь пойдет о применении Apache Spark
Подробности

Вариант реализации MVP + DI(Dagger 2) в Android

Время на прочтение5 мин
Охват и читатели52K
С недавних пор заинтересовался данной темой и порылся в дебрях сети на эту тему. На англоязычных ресурсах есть раскиданная по разным местам информация. Прочитал все, что есть в рунете на эту тему. Ссылки приведу в конце статьи. В итоге, стал применять этот подход в своих приложениях.

Для начала, вспомним, что такое MVP. MVP — это паттерн, который позволяет «разбивать» приложение на три основных слоя (компонента):
  1. Модель (Model) — где сосредоточены данные;
  2. Представление (View) — интерфейс приложения (UI — элементы);
  3. Presenter — промежуточный компонент, который реализует связь между Моделью и Представлением.

image

MVP паттерн — это наследник более известного шаблона — MVC. Применение такого подхода позволяет отделить в приложении логику от интерфейса.
Читать дальше →

Вышел релиз JRuby 9000

Время на прочтение2 мин
Охват и читатели8.3K
Сегодня вышел релиз JRuby 9.0.0.0. Активная фаза разработки длилась около двух лет, за это время насчитано более 5500 коммитов от 104 разработчиков. А некоторые вещи, на которых основывается этот релиз, были начаты более пяти лет назад. В целом, в эту версию вложено огромное количество труда и сейчас очень приятно поздравлять разработчиков с успешным завершением.

Что такое JRuby
JRuby — это реализация языка программирования Ruby, работающая на виртуальной машине Java. Основные достоинства: высокая скорость работы, параллелизм без GIL, возможность вызова java-библиотек из ruby-кода, а также возможность скриптинга на ruby для java-приложений.

Главные отличия от версии 1.7

Читать дальше →

Строим стенд производительности на примере сервера Set Retail 10

Время на прочтение6 мин
Охват и читатели7K


Привет. Хочу вам рассказать, как мы шли по дороге понимания производительности нашей системы Set Retail 10. А именно, как мы учились измерять производительность, и какими способами отслеживали ее изменения.

Для тестирования мы построили стенд производительности, и теперь на несколько дней запускаем на нём нагрузочные тесты. На этапе проработки тестового стенда мы сломали много копий о щиты ожесточённых споров. Но нам удалось найти ответы на самые главные вопросы — что и как делать, и в какой последовательности. Буду рад, если наш опыт станет полезен и вам.
Читать дальше →

Ближайшие события

Библиотека Chronos: облегчаем написание долгих операций

Время на прочтение7 мин
Охват и читатели16K
Привет, Хабр! Хочу рассказать вам о библиотеке Chronos для Android (API level >= 9), цель которой – облегчить написание долгих операций, например, сетевых запросов, или обращений к БД.

Какую проблему решаем?

Не секрет, что для Android задача выполнения асинхронных операций всегда была одной из самых частовстречающихся. Действительно, крайне мало приложений работают исключительно в оффлайн, и где можно обойтись без сетевого взаимодействия. И уж совсем крохотная их часть обходится без обращения к постоянной памяти устройства, будь то база данных, Preferences или обычный файл. Однако, на протяжении истории развития системы нам так и не было предложено ни одного достаточно удобного решения “из коробки”.
Читать дальше →

Забудьте о DAO, используйте Repository

Время на прочтение6 мин
Охват и читатели198K
Недавно задумался о том, чем отличаются паттерны, позволяющие абстрагироваться от работы с хранилищем данных. Много раз поверхностно читал описания и различные реализации DAO и Repository, даже применял их в своих проектах, видимо, до конца не понимая концептуальных отличий. Решил разобраться, закопался в Google и нашел статью, которая для меня разъяснила все. Подумал, что неплохо было бы перевести ее на русский. Оригинал для англочитающих здесь. Остальным интересующимся добро пожаловать под кат.
Читать дальше →

Размышления о способах обработки ошибок

Время на прочтение12 мин
Охват и читатели20K
Тема обработки ошибок сложна и неоднозначна. До сих пор нет какого-то оптимального подхода или группы подходов к этой проблеме. Все они страдают от тех или иных недостатков. В этой статье я хотел бы поделиться своими мыслями на эту тему, и что не менее важно, почерпнуть новые знания в комментариях.

Код в статье приводится на scala, однако рассматриваемый подход может быть реализован на многих других языках (c++ с помощью макросов, java с помощью JetBrains MPS и т.д.). Наиболее близким аналогом рассматриваемого подхода является способ обработки ошибок в haskell.
Читать дальше →

Вставка в середину: ArrayList против LinkedList

Время на прочтение5 мин
Охват и читатели92K
Как-то на собеседовании мне задали вопрос: какая реализация списка выполнит вставку в середину быстрее: ArrayList или LinkedList? С первого взгляда вопрос простой — нужно посчитать алгоритмическую сложность каждого варианта и сравнить их.
Читать дальше →

Анонс Java-конференции Joker 2015

Время на прочтение5 мин
Охват и читатели12K
Всем привет!

Ровно через 3 месяца, 16-17 октября в Питере мы проведем конференцию Joker 2015. Лучшие Java-спикеры из России, Европы и США, актуальные и модные темы, сотни программистов со всех уголков русскоязычного Java-мира — таким будет Joker 2015.



Что же нас всех ждет на Joker 2015? Пойдемте под кат, там все расскажу.

Каким будет Joker 2015

AOP или как написать свой велосипед для аналитики

Время на прочтение4 мин
Охват и читатели7.5K
image
В крупных проектах, при реализации логики трекинга событий, часто встают перед проблемой загрязнения кода вызовами методов трекинга, неудобством явного связывания объектов с событиями и поддержкой этих событий при изменении моделей или ui поведения.

Из-за вышеописанных причин, мне пришло в голову написать свой решение, которое конечно же, не уйдет дальше моего git репозитория и этой статьи.

Кто не боится рефлексии и медленного кода — прошу под кат.
Читать дальше →

Spring без XML. Часть 2

Время на прочтение9 мин
Охват и читатели20K
И снова день добрый. Пост в продолжение публикации «Spring + Java EE + Persistence, без XML. Часть 1».


1. Введение


1.1 Подгружаем проект


Если вы хотите с этой части начать, либо не осталось проекта сделанного в предыдущей части, можете скачать его с github.
Схема простая:
  • Заходите из консоли в папку с проектами IDEA
  • git clone github.com/MaxPovver/ForHabrahabr.git
  • cd ForHabrahabr/
  • git checkout withauth
  • Готово, теперь можете грузить проект в студию так же как описано в первой части.

1.2 Что мы будем делать в этой части?


В этой части мы рассмотрим как хранятся отношения многие-ко-многим на уровне объектов сущностей;
доделаем распределения прав пользователям;
сделаем простейший REST-controller;
сделаем регистрацию новых пользователей (только для админа);
и все это без XML.
Читать дальше →