Обновить
256K+

Java *

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

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

Dagger 2. Часть вторая. Custom scopes, Component dependencies, Subcomponents

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

Всем привет!
Продолжаем наш цикл статей о Dagger 2. Если вы еще не ознакомились с первой частью, немедленно сделайте это :)
Большое спасибо за отзывы и комментарии по первой части.
В данной статье мы поговорим о custom scopes, о связывании компонентов через component dependencies и subcomponents. А также затронем такой немаловажный вопрос, как архитектура мобильного приложения, и как Dagger 2 помогает нам выстраивать более правильную, модульнонезависимую архитектуру.
Всем заинтересовавшихся прошу под кат!

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

Java: улучшаем качество кода (предусловия, IDEA QAPlug, интерграция GitHub c Codacy)

Время на прочтение1 мин
Охват и читатели6.5K
Здравствуйте!
Продолжаю серию публикаций по учебному Java Enterprise проекту Topjava (Maven/Spring/Security/JPA(Hibernate)/Rest(Jackson)/ Bootstrap(CSS)/ jQuery+plugin).

Небольшая тема четвертого занятия: улучшаем качество кода


Полезные ссылки:

  1. Контрактное программирование, Программирование по контракту
  2. Comparison Preconditions in Java
  3. QAPlug vs FindBugs
  4. QAPlug tutorials
  5. Codacy Home
Читать дальше →

Андрей Бреслав и Дмитрий Жемеров о Kotlin 1.0 на jug.msk.ru

Время на прочтение3 мин
Охват и читатели7.5K
17 марта 2016 года прошла встреча jug.msk.ru с Андреем Бреславом и Дмитрием Жемеровым, посвящённая выпуску версии 1.0 языка программирования Kotlin. Далее рассказывается о прошедшей встрече подробнее.


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

«Половина научных работ по Concurrency — полная чушь!» — интервью с Романом Елизаровым из Devexperts

Время на прочтение26 мин
Охват и читатели45K
Добрый день, это «Без слайдов». В гостях у меня побывал Роман Елизаров aka elizarov, Java Champion, эксперт по Java и многопоточности (а с недавнего времени — еще и по финансовой математике), спикер многочисленных конференций, председатель жюри Северо-Восточного Европейского региона ACM-ICPC, престижнейшей в мире олимпиады по программированию, лектор в ИТМО и, наконец, VP по технологиям в компании Devexperts. В общем, «человек и пароход».

В разговоре мы затронули следующие темы:
  • что такое финансовая математика и как ее учить;
  • как устроен софт для финансовой индустрии;
  • как в компании Devexperts появилась исследовательская лаборатория по многопоточности;
  • куда развивается Concurrency, и что будет в моде в ближайшее время;
  • как всемирная олимпиада по программированию пришла в Россию.




Текстовая версия — под катом.
Читать дальше →

QA: Conference. Вторая волна докладчиков

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


Есть более свежий анонс: https://habrahabr.ru/company/luxoft/blog/280524

Наша конференция по тестированию программных систем начнется совсем скоро и, как известно, пройдет в пяти городах России. Напоминаем всем, то у нас:
  • от 24 полноценных доклада в Москве и Питере
  • до 16 докладов — в Новосибирске и Екатеринбурге
  • 8 докладов — в Омске
  • возможность посмотреть записи всех докладов — всем участникам
  • только полноценные, 45-минутные доклады, раскрывающие все темы «от» и «до»
  • в цену до 3,000 рублей включено: все доклады всех городов — в записи, кофе-брейки и огромное количество знаний

Что в совокупности дает возможность:
  • Получить много ценных знаний в формате интенсива
  • Перенести свои новые знания — в проекты и тем самым облегчить своей команде и компании жизнь
  • Пообщаться с коллегами по вопросам, которые вас волновали
  • Услышать как про положительный опыт, так и про отрицательный

Итак, докладчики, о которых мы расскажем сегодня:
  • Евгений Огородников. RmBIT — развёртываем автоматизацию тестирования с нуля — советы из личного опыта
  • Сергей Махетов. Центр ИТ — автоматизация тестирования на языке Scala
  • Алексей Лавренюк. Яндекс — методика и инструменты нагрузочного тестирования
  • Сергей Пирогов. Записки автоматизатора — автоматизация функционального тестирования Web приложений
  • Дмитрий Акмаев. DINO Systems — global CI, что это такое, и чего не хватает в классическом CI
  • Александр Чумакин. JUNO — автоматизация сценариев взаимодействия интеграционных систем и нагрузочного тестирования
  • Екатерина Боброва. Тамтэк — представление предметной области в автотестах
  • Михаил Бобков. Neoflex — автоматизация тестирования на интеграционных проектах

Хотите почитать подробнее? Добро пожаловать под кат и на наш сайт
Читать дальше →

Поиск изменений в двух коллекциях

Время на прочтение2 мин
Охват и читатели3.5K
Доброй ночи, сообщество.

В текущем проекте, над которым я работаю, возникла необходимость определить изменения в двух коллекциях данных. Если в двух словах, то с Сервера приходит List заказов и в БД лежит такой же List заказов. Нужно определить сколько заказов было добавлено, обновлено и удалено в новой коллекции. Заинтересовавшихся прошу под кат.

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

О бедной XWiki замолвите слово — 2

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

В первой части статьи я рассказывал о том как сделать стандартный интерфейс более комфортным, однако с тех пор утекло достаточно воды, что бы вышли как новые версии xWiki-движка, так и поменялся интерфейс в сторону улучшения юзабилити. По этому в новой статье я предлагаю обсудить тюнинг и более тонкую настройку xWiki для портативного клиента (на базе связки Jetty и HSQLDB). Оговорюсь сразу, я не считаю это лучшей реализацией из возможных, но учитывая удобство развертывания портативной версии (скопировал в нужную папку и запустил), считаю что для индивидуальной работы или работы небольшого коллектива в спартанских условиях — это лучший вариант.

Добро пожаловать под Cut
Подробности

Свидетели JPoint: что делает программиста особенным?

Время на прочтение12 мин
Охват и читатели11K
По итогам JPoint 2015 мы получили множество отзывов: как приятных, так и наполненных разной критикой — как конструктивной, так и не очень. Одни участники положительно отзывались о содержании докладов, подборе спикеров и организационных моментах, другие критиковали очередь на обед и небольшую вместимость главного зала (на открытии некоторым пришлось стоять).

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


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

Вспомнить всё: Java-конференция JET. 28 сентября 2015. Отчёт

Время на прочтение5 мин
Охват и читатели5.5K
Меня зовут Дима и я разработчик. Живу в Минске, люблю посещать зарубежные конференции. Ну вот устал однажды ездить и решил сходить локально. Но выбора было мало. Поэтому вдвоём со своим верным товарищем решили сделать конференцию самостоятельно. Назвали JET. Потому что начинается с J, как и Java, а ещё можно сделать слоган "Let's fly to Java world". Ну что же, как это было?

Открытие


Началось все с выступления организаторов, где мы поделились тем, как зарождалась идея конференции. Рассказали о том, как мы прошли путь в 4 месяца подготовки, и что по итогу получилось. А получилось — 3 потока концентрированных знаний, 300 участников и первый кирпичик в фундаменте дома конференции JET.


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

[Москва] Встреча с разработчиками Kotlin

Время на прочтение1 мин
Охват и читатели7.5K
Привет!

В четверг, 17 марта (да-да, это послезавтра!), в 19:00 в офисе компании КРОК пройдет встреча JUG.msk c разработчиками языка Kotlin Андреем Бреславом и Дмитрием Жемеровым. Андрей — вообще самый главный человек в Kotlin, возглавляет разработку языка, а Дмитрий — возглавляет разработку плагина к IntelliJ IDEA. Так что будет что обсудить, и ответы на вопросы будут из первых уст!

Тема встречи — недавний и долгожданный релиз языка Kotlin. И поэтому встреча тоже называется очень просто:

image

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

В офисе QIWI прошла обучающая лекция Евгения Кривошеева «Инженерия и бизнес — счастливы вместе»

Время на прочтение1 мин
Охват и читатели3.7K
В офисе QIWI прошла обучающая лекция Евгения Кривошеева «Инженерия и бизнес — счастливы вместе». Лекция продолжалась 3 часа и собрала около 100 активных слушателей из IT-подразделения QIWI.

Материалы по лекции во вложении.


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

ScribeJava — даже ваша бабушка сможет работать с OAuth

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

Именно этой фразой нас приветствует библиотека для работы с OAuth — ScribeJava (https://github.com/scribejava/scribejava). Если быть точнее, то фраза звучит так: “Who said OAuth/OAuth2 was difficult? Configuring ScribeJava is so easy your grandma can do it! check it out:”.

И это действительно похоже на правду:
OAuth20Service service = new ServiceBuilder().apiKey(clientId).apiSecret(clientSecret)
    .callback("http://your.site.com/callback").grantType("authorization_code").build(HHApi.instance());
String authorizationUrl = service.getAuthorizationUrl();
OAuth2AccessToken accessToken = service.getAccessToken(code);

Готово! Этих трех строчек достаточно, чтобы начать делать OAuth запросы. А сам OAuth запрос можно будет сделать так:
OAuthRequest request = new OAuthRequest(Verb.GET, "https://api.hh.ru/me", service);
service.signRequest(accessToken, request);
String response = request.send().getBody();

Данные о пользователе у нас в руках (в переменной response). И ни капли понимания, как в деталях работает OAuth. Хотим асинхронные http-запросы? Нам хватит тех же трех строчек. Ниже рассмотрим это на примере.
Читать дальше →

Dagger 2. Часть первая. Основы, создание графа зависимостей, Scopes

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

Всем привет! В последнее время появилось много средств, библиотек, которые существенно облегчают написание кода под Android. Только успевай за всем следить и все пробовать. Одним из таких средств является библиотека Dagger 2.


В сети уже много различного материала, посвященного данной библиотеке. Но когда я только начинал ознакамливаться с Dagger 2, читал статьи, смотрел доклады, я во всем этом находил один общий недостаток — мне, как человеку, не работавшему со Springом и прочими подобными фреймворками/библиотеками, было довольно сложно понять, откуда берутся зависимости, как они "провайдятся" и что вообще там происходит. На слушателей/читателей обычно сразу "вываливается" большое количество кода с новыми аннотациями. И это как-то работало. В итоге, после доклада/статьи в голове все никак не могло сложиться в единую понятную картину.


Сейчас, оглядываясь назад, я понимаю, что мне тогда очень не хватало схематичного отображения, картинок, явно показывающих "что, откуда и куда". Поэтому в своем цикле статей я постараюсь восполнить данный пробел. Надеюсь, это поможет новичкам и всем заинтересованным лучше понять Dagger 2 и решиться попробовать его у себя в проекте. Могу сразу сказать, это стоит того.


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

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

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

Превью Android N: API и инструменты разработчиков

Время на прочтение4 мин
Охват и читатели33K
Привет, Хабр! Сегодня у нас в программе кое-что особенное. Новые версии ПО важны для пользователей: они предоставляют доступ к новым возможностям на их устройствах. Но ещё важнее получить своевременный доступ к новому ПО для разработчиков. Использовать новейшие инструменты, API, проверить приложение на совместимость, одним из первых внедрить самые свежие и крутые наработки… В общем, мы рады представить вам тестовую версию Android N для разработчиков!



Чем ещё важен выход тестовой версии для разработчиков? Тем, что именно разработчики понимают, как важен грамотный и своевременный фидбэк. Один хороший багрепорт может сохранить вам кучу времени, поэтому мы решили выпустить девелопер-превью намного раньше, чем делали это в прошлых версиях.  
А что нового в Android N?

Анонс Java-конференции для студентов в Москве: JPoint 2016 Student Day

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


Заводы — крестьянам, землю — рабочим, Java-технологии — студентам!

Как вы все знаете, JUG.ru уже четвертый год делает конференции по Java. За 3 года конференция JPoint превратилась из эксперимента нескольких энтузиастов в одного из отраслевых флагманов.

Когда ты делаешь специализированные (как говорят маркетологи, нишевые) мероприятия, ты всегда пытаешься ответить на вопрос — кто твоя аудитория. Аудитория наших больших конференций — это:
  • разработчики-энтузиасты, которые готовы тратить свои силы, деньги и время на самообразование и нетворкинг
  • Senior и Middle разработчики, у которых много всего разного и сложного на работе, и они хотят на конференции узнать о решении своих конкретных проблем, послушав доклады или напрямую пообщавшись в кулуарах со спикерами или коллегами
  • компании, которые заинтересованы вкладываться в собственных инженеров с тем, чтобы они повышали свой уровень и тем самым приносили компании больше пользы.


JPoint — конференция для опытных разработчиков. Студентам идти туда практически бессмысленно:
  • контент довольно сложный и технически насыщенный
  • цена, если ты безработный или только-только начал работать, кусается


Выход? Сделать Java-конференцию для студентов!

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

Анонс ThinkJava #3. Микросервисы

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


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

Последние несколько лет микросервисы остаются одним из наиболее актуальных подходов к разработке крупных приложений. Осенью прошлого года эксперты компании NIX Solutions изучали все нюансы микросервисной архитектуры на крупнейшей международной отраслевой конференции Spring One 2GX. С тех пор наши разработчики успели опробовать многое из услышанного на практике, поэкспериментировать с микросервисами, наступить на некоторые грабли, научиться избегать ошибок или же без потерь устранять их последствия. А заодно освоили различные инструменты разработки микросервисных приложений.
Читать дальше →

Android runtime permissions. Почему, зачем и как

Время на прочтение12 мин
Охват и читатели127K
Часто при установке приложения на Android нам приходилось видеть, что оно запрашивает какое-то немыслимое количество разрешений. Например:



Хорошо, если вы устанавливаете приложение от какого-то известного разработчика, которому можете доверять. Но весьма подозрительно, если вы устанавливаете новый музыкальный плеер, а ему для работы требуется, например, получать ваше местоположение. Или, тем более, фонарик, требующий доступ к смс и звонкам.

Некоторые разработчики, чтобы уменьшить недоверие, добавляют в описание приложения на Google Play информацию о том, зачем нужно то или иное разрешение.

К шестой версии Android ситуация поменялась. Теперь разрешения нужно запрашивать в процессе работы. О том, как этой новой возможностью пользоваться и ее некоторых подводных камнях будет рассказано далее.
Читать дальше →

Изучаем OpenGL ES2 для Android

Время на прочтение6 мин
Охват и читатели55K
Урок №1
Данная статья написана для новичков, которые (как и я) хотят научиться писать программы для Андроид с использованием OpenGL. Основные мысли и код взяты из замечательной книги Кевина Бразалера «OpenGL ES 2 for Android. A Quick-Start Guide by Kevin Brothaler» (1).
Зачем же пересказывать, спросите вы? Дело в том, что перед этой книгой я прочитал еще десяток статей на эту тему и код Кевина у меня сразу не пошёл (в книге среда разработки Eclipse, а у меня Android Studio). Поэтому, решил написать эту статью так, чтобы было понятно, прежде всего, самому себе.
Для начала давайте выясним, что такое OpenGL. Если почитать Википедию (2), то увидим следующее:
«OpenGL (Open Graphics Library) — спецификация, определяющая независимый от языка программирования платформонезависимый программный интерфейс для написания приложений, использующих двумерную и трёхмерную компьютерную графику.
Включает более 300 функций для рисования сложных трёхмерных сцен из простых примитивов. Используется при создании компьютерных игр, САПР, виртуальной реальности, визуализации в научных исследованиях. На платформе Windows конкурирует с Direct3D.»
Мы будем изучать укороченную версию OpenGL ES 2 (в дальнейшем OpenGL). Укоротили её по понятным причинам, у Андроид малая операционная память по сравнению с настольными ПК, наличие виртуальной машины Java также накладывает определенные ограничения. Наверно есть еще много причин, почему это сделали, но нас это не должно волновать. Просто нужно знать, что есть прекрасный инструмент OpenGL и надо научиться им пользоваться!
Читать дальше →

QA: Conference. Рассказываем про доклады

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


Есть более свежий анонс: https://habrahabr.ru/company/luxoft/blog/280524

Конференция по тестированию программных систем QA: Conference начнется чуть больше чем через месяц и мы готовы рассказать подробнее про нее. Немного статистики:
  • 24 полноценных доклада в Москве и Питере
  • до 16 докладов — в Новосибирске и Екатеринбурге
  • 8 докладов — в Омске
  • возможность посмотреть записи всех докладов — всем участникам
  • стоимость билета — от 2,000 до 3,000 рублей

Какие темы будут раскрыты:
  • Тестирование на сетевое проникновение — от компании PentestIt
  • Нагрузочное тестирование
  • Автоматизация тестирования (рассматриваются любые аспекты)
  • Интеграционное тестирование
  • Развертывание различных систем с нуля
  • Опыт как положительный, так и отрицательный

Итак, докладчики, о которых мы расскажем сегодня:
  • Лука Сафонов и Роман Романов. PentestIt — проникновение в сеть предприятия и про защиту от проникновения.
  • Станислав Сидристый — три доклада про все стороны автоматизации в .NET / Java и про стандартизацию подходов к автоматизации
  • Галина Галкина — расчет категории риска – подход к управлению регрессионной ТМ
  • Александр Акбашев — гоняем тесты на каждый билд: Gerrit, Jenkins, Docker, AWS
  • Роман Иовлев — сразу два доклада: «Jedi Power of Model-based testing» и «JDI — Future of UI Automation»
  • Игорь Щегловитов — расскажет про автоматизированное тестирование средствами тулсета Microsoft
  • Константин Нерадовский — функциональный подход в разработке автотестов на Java

Хотите подробностей? Заходите под кат.
Читать дальше →

Аутентификация с использованием Spring Security и JWT-токенов

Время на прочтение10 мин
Охват и читатели159K
Всем привет! Хабр жив! Данный пост вряд ли соберёт кучу просмотров и комментов, но, надеюсь, немного поможет здоровью хабра.

В данной статье рассмотрим принцип аутентификации в веб-приложениях на платформе Spring с использованием относительно нового механизма аутентификации — JSON Web Token (JWT). Этот механизм уже обкатан и реализован для многих языков программирования.

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