JAVA — TechCave

Java — строго типизированный объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle).

Java — строго типизированный объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Приложения Java обычно транслируются в специальный байт-код, поэтому они могут работать на любой компьютерной архитектуре, с помощью виртуальной Java-машины. Дата официального выпуска — 23 мая 1995 года.

Стена группы

Загрузка...
3 дня назад
#

Открыта регистрация на GraphQL Meetup в Питере





Приглашаем вас на
Piter GraphQL Meetup, который пройдет 24 января в питерском офисе Wrike. Ждем разработчиков любого уровня: как уже использующих GraphQL, так и присматривающихся к перспективной технологии.

Источник
Загрузка...
Den
3 дня назад
#

Маппинг запросов на Netty



Давным-давно в одной далёкой-далёкой... проекте, понадобилось мне сделать обработку http-запросов на Netty. К сожалению, стандартных удобных механизмов для маппинга http-запросов в Netty не нашлось (да и этот фреймвёрк совсем не для того), поэтому, было решено реализовать собственный механизм.



Источник
Загрузка...
3 дня назад
#

Нельзя так просто взять и написать SELECT, если вендор не разрешает… но мы таки напишем



TL;DR: GitHub://PastorGL/AQLSelectEx.



Aerospike AQL SELECT



Однажды, ещё не в студёную, но уже зимнюю пору, а конкретно пару месяцев назад, для проекта, над которым я работаю (нечто Geospatial на основе Big Data), потребовалось быстрое NoSQL / Key-Value хранилище.



Терабайты исходников мы вполне успешно прожёвываем при помощи Apache Spark, но схлопнутый до смешного объёма (всего лишь миллионы записей) конечный результат расчётов надо где-то хранить. И очень желательно хранить таким образом, чтобы его можно было по ассоциированным с каждой строкой результата (это одна цифра) метаданным (а вот их довольно много) быстро найти и отдать наружу.



Источник
Загрузка...
3 дня назад
#

Java, Spring, Kurento и медиасервисы. Часть 2-я





В
предыдущей статье я описывал мой эксперимент с приложением «HelloWorld» из Kurento-туториала. В этой статье я продолжу обзор Web приложений на Java Spring и Kurento Media Server-a.

Следующее приложение из туториала называется WebRTC Magic Mirror. Из названия следует, что зеркало отражает немного приукрашенную действительность. В этом приложении в дополнение к предыдущему применяется фильтр компьютерного зрения «FaceOverlay filter». При обнаружении в камере лица человека Kurento Media Server «надевает» на голову кепку Супер Марио. Если в обьективе несколько лиц, каждому надевается кепка.

Источник
Загрузка...
Den
3 дня назад
#

Знакомство с реактивным программированием в Spring



Привет, Хабр!

На этой неделе мы ожидаем из типографии новую
книгу по Spring 5:



Среди интересных возможностей Spring 5 отдельного упоминания заслуживает реактивное программирование, о реализации которого в этом фреймворке кратко рассказывает предлагаемая статья Мэтта Рэйбла (Matt Raible). В вышеупомянутой книге реактивные паттерны рассмотрены в главе 11.

Соавтором Мэтта выступил Джош Лонг, автор еще одной отличной книги про Java и Spring, "
Java в облаке", вышедшей у нас прошлым летом.

Источник
Загрузка...
3 дня назад
#

Как не мусорить в Java



Существует популярное заблуждение о том, что если не нравится garbage collection, то надо писать не на Java, а на C/C++. Последние три года я занимался написанием low latency кода на Java для торговли валютой, и мне приходилось всячески избегать создания лишних объектов. В итоге я сформулировал для себя несколько простых правил, как свести аллокации в Java если не до нуля, то до некого разумного минимума, не прибегая к ручному управлению памятью. Возможно, кому-то из сообщества это тоже будет полезно.



Источник
Загрузка...
3 дня назад
#

Оптимизация графики. Интересный Concave Hull



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

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



На средней игровой карте, при максимальном отдалении и при большом скоплении пальм —
15 824 756 треугольников! Почти 16 миллионов! Огромная цифра.

Источник
Загрузка...
6 дней назад
#

Spring Data JPA



В статье опишу использование Spring Data.

Spring Data — дополнительный удобный механизм для взаимодействия с сущностями базы данных, организации их в репозитории, извлечение данных, изменение, в каких то случаях для этого будет достаточно объявить интерфейс и метод в нем, без имплементации.

Содержание:

  1. Spring Repository

  2. Методы запросов из имени метода

  3. Конфигурация и настройка

  4. Специальная обработка параметров

  5. Пользовательские реализации для репозитория

  6. Пользовательский Базовый Репозиторий

  7. Методы запросов — Query



Источник
Загрузка...
Den
6 дней назад
#

Кастомизация резолвинга зависимостей в Spring



Привет! Меня зовут Андрей Неведомский и я главный инженер в СберТехе. Я работаю в команде, которая занимается разработкой одного из системных сервисов ЕФС (Единой Фронтальной Системы). В своей работе мы активно используем Spring Framework, в частности его DI, и время от времени сталкиваемся с тем, что резолвинг зависимостей в спринге оказывается недостаточно «умным» для нас. Эта статья – результат моих попыток сделать его умнее и в целом разобраться с тем, как он работает. Надеюсь, и вы сможете узнать из неё что-то новое об устройстве спринга.



Источник
Загрузка...
6 дней назад
#

Parse & Android: рекомендации начинающим разработчикам



Аннотация

В данной статье я бы хотел поделиться общими впечатлениями от использования BaaS – решения под названием Parse для разработки бэкэнда Android-приложения, рассказать о всех «подводных камнях», с которыми мне пришлось столкнуться в период разработки. Впервые эту платформу мне посоветовали коллеги по работе, когда я был юниором, и за плечами был всего 1 коммерческий проект. Мотивацией к написанию данной статьи послужили нервы и время, которые я потратил для поиска совместимых версий библиотек и обдумывание странных решений разработчиков платформы, ну или просто потому, что я до сих пор не нашел статей по этому поводу. Так же я ничего не буду рассказывать о том, что такое Parse и как его подключить и настроить, но на всякий случай я оставлю все необходимые ссылки, где можно почитать об этом.

Источник
Загрузка...
6 дней назад
#

AOP vs Функции



Аспе́ктно-ориенти́рованное программи́рование (AOP) довольно популярная парадигма программирования. В
статье на Wikipedia хорошо объяснена мотивация этого подхода.

image

Источник
Загрузка...
6 дней назад
#

Моки, стабы и шпионы в Spock Framework



Spock предоставляет 3 мощных (но разных по сути) инструмента, упрощающих написание тестов: Mock, Stub и Spy.





Довольно часто коду, который нужно протестировать, требуется взаимодействовать с внешними модулями, называющимися зависимостями (в оригинальной статье используется термин collaborators, который не очень распространён в русскоязычной среде).



Модульные тесты чаще всего разрабатываются для тестирования одного изолированного класса при помощи различных вариантов моков: Mock, Stub и Spy. Так тесты будут надёжнее и будут реже ломаться по мере того, как код зависимостей эволюционирует.



Такие изолированные тесты менее подвержены проблемам при изменении внутренних деталей реализации зависимостей.



От переводчика: каждый раз, когда я использую Spock Framework для написания тестов, я чувствую, что могу ошибиться при выборе способа подмены зависимостей. В этой статье есть максимально краткая шпаргалка по выбору механизма для создания моков.



Источник
Загрузка...
Den
6 дней назад
#

Снимки событий в Axonframework 3, улучшаем производительность



Обзор фреймврока Axonframework

Axonframework это фреймфорк реализующий несколько принципов и паттернов проектирования такие как:

CQRS – разделяет обработку запросов на чтение и запись данных

Event Sourcing – это когда состояние приложения хранится как цепочка событий

DDD Aggregate – доменный объект (domain object) который хранит состояние

Один из недостатков хранения конечного состояния приложения в виде цепочки событий – это количество хранимых и обрабатываемых событий. К счастью, Axonframework позволяет создавать снимок событий (snapshot event), который содержит в себе результат нескольких событий (domain event).

Источник
Загрузка...
Den
7 дней назад
#

Java, Spring, Kurento и медиасервисы





Существует уже немало медиа сервисов, но люди продолжают их создавать. Решил и я заняться изобретением своего велосипеда.

Натолкнувшись на проект
Kurento, понял что это то, что мне надо. Данная статья является частично переводом
Kurento Documentatin, частично это заметки о моих экспериментах с KurentoTutorial. Надеюсь что разработчикам, приступающим к изучению данного вопроса, этот материал поможет быстрее освоить тему создания медиа сервисов.

Источник
Загрузка...
7 дней назад
#

Новые ключевые слова в Java



В ближайшем будущем в языке Java появятся новые фичи, над которыми сейчас идет работа в рамках проектов Valhalla, Panama и Loom. Расширение языка — дело непростое, тем более — языка, в котором акцент делается на обратную совместимость; поэтому для того, чтобы их интеграция в Java прошла органично, архитекторам языка приходится решать накопившиеся фундаментальные вопросы.

Вчера (8 января) Брайан Гетц, работающий в Oracle на должности Java Language Architect, опубликовал в рассылке Project Amber
письмо «Нам нужно больше ключевых слов, капитан!», в котором предложил способ решения проблемы добавления в язык новых ключевых слов. Вследствие чего в языке могут появиться такие ключевые слова, как
non-null,
non-final,
eventually-final и
this-return (полный список ждет вас под катом в конце поста).

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

Важное замечание: Брайн отмечает, что новые ключевые слова приведены исключительно в качестве иллюстративного примера, и что заострять на них свое внимание не стоит. Однако, очевидно, что перед нами продуманная демонстрация того, как синтаксис языка может измениться в будущем — в письме автор упоминает, что эта идея поможет добавить в Java многие желаемые недостающие языковые конструкции.

Источник
Загрузка...
2 3

Авторизация

Пользователи

Kumskov
Juan
Tutu
naikdij88
NewEXE
Георгiй Москвитинъ
Andpyxa Tutunnik
Andrey_fox
Jane linch

GeekBrains

Нетология