Обновить
128K+

Java *

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

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

«Истина в последней инстанции» или зачем нужен Database First Design

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

В этой весьма запоздалой статье я объясню почему, по моему мнению, в большинстве случаев при разработке модели данных приложения необходимо придерживаться подхода "database first". Вместо "Java[любой другой язык] first" подхода, который выведет вас на длинную дорожку, полную боли и страданий, как только проект начнет расти.


image
"Слишком занят, чтобы стать лучше" Licensed CC by Alan O’Rourke / Audience Stack. Оригинальное изображение

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

Упарываемся по максимуму: от ORM до анализа байткода

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

Как известно, настоящий программист в своей жизни должен сделать 3 вещи: создать свой язык программирования, написать свою операционную систему и сделать свой ORM. И если язык я написал уже давно (возможно, расскажу как-нибудь в другой раз), а ОС еще ждет впереди, то про ORM я хочу поведать прямо сейчас. А если точнее, то даже не про сам ORM, а про реализацию одной маленькой, локальной и, как изначально казалось, совсем простой фичи.


Мы с вами вместе пройдем весь путь от радости нахождения простого решения до горечи осознания его хрупкости и некорректности. От использования исключительно публичного API до грязных хаков. От "почти без рефлекшена", до "по колено в интерпретаторе байт-кода".


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

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

Joker 2018: Клуб неанонимных Java-разработчиков

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

Чем Joker хорош как явление? По сути, это единственное место, куда можно прийти и поговорить за джаву.


И при этом Joker – праздник. Это не то место, где кучка старпёров нудит, какая Java тормозная, какой Hibernate костыльный, почему что-то там не компилируется и так далее — если понимаешь, о чём я.


Joker — это место, где можно и поплакать в жилетку, и получить конструктивный фидбэк, и вдохновиться на новые подвиги. Это особый клуб разработчиков-энтузиастов, со своими правилами и фичами, о которых мы и поговорим в этой статье.


Скоро будет новый Joker — уже шестой по счёту. Если интересно сразу узнать дату и время проведения — смотри под кат, иначе — читай дальше.


Скрытый текст
Что: Joker — наша самая большая международная Java-конференция для опытных разработчиков;
Где: Санкт-Петербург, Экспофорум;
Когда: 19-20 октября 2018.

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

Митап JavaJam. Спор о джавистах, сплав на брёвнах, эксперименты и микросервисы

Время на прочтение4 мин
Охват и читатели6.5K
Java-разработчики классные.

Фронтендеры их хвалят и перенимают полезные инструменты, дизайнеры с особой любовью приносят макеты, а тестировщики ликуют, потому что все автоматизировано и жизнь — сахар (но об этом мы пока не рассказывали).

Иногда мы проводим для них java-митапы — собираем экспертов и просим их рассказать что-нибудь позабористей. Так и в этот раз — коллеги из Сбербанка, Одноклассников, Яндекса и Яндекс.Денег пришли на JavaJam и выложили сразу кучу подробностей о своей работе.

image

Под катом:

— Главное о логировании Java-приложений на примерах от Яндекса;
— Разработка инструмента на Low-code для UFS Сбербанка;
— Автоматизация экспериментов в Одноклассниках с помощью Kotlin DSL;
— Как в Яндекс.Деньгах сделали одну платформу для микросервисов вместо семи.

А еще там опрос о том, уместно ли называть java-разработчиков джавистами.

Извлечение сущностей из текста с помощью Stanford NLP с нуля

Время на прочтение4 мин
Охват и читатели15K
Данная статья предназначена для тех, кто никогда не работал со Stanford nlp и столкнулся с необходимостью в кратчайшие сроки изучить его и применить.

Данный софт достаточно распространен, и, в частности, наша фирма — БалтИнфоКом — использует эту программу.

Для начала надо понять простую вещь: Stanford NLP работает по принципу аннотирования слов, то есть на каждое слово «навешиваются» одна или более аннотаций, например POS (Part of Speech — часть речи), NER (Named-Entity Recognizing – именованная сущность) и т.д.

Первое, что видит новичок, зайдя на сайт Stanford NLP в раздел "быстрый старт", это следующую конструкцию:

Properties props = new Properties();
props.setProperty("annotators", "tokenize,ssplit,pos,lemma,ner,regexner,parse,depparse,coref");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
// create a document object
CoreDocument document = new CoreDocument(text);
// annnotate the document
pipeline.annotate(document);

Здесь StanfordCoreNLP – это конвейер, на вход которому подается наш текст, предварительно упакованный в обьект CoreDocument. StanfordCoreNLP, это самый главный и часто используемый объект во всей структуре, с помощью которого происходит вся основная работа.

Сначала задаем параметры в StanfordCoreNLP и указываем, осуществление каких действий нам нужно. При этом все возможные комбинации этих параметров можно найти на официальном сайте по этой ссылке.

  • tokenize – соответственно разбиение на токены
  • ssplit – разбиение на предложение
  • pos — определение части речи
  • lemma – добавление к каждому слову его начальной формы
  • ner — определение именованных сущностей, таких как «Организация», «Лицо» и т.д.
Читать дальше →

Летний митап Apache Ignite в Петербурге

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


Друзья, приглашаем вас на летний митап, посвящённый Apache Ignite. Присоединяйтесь к нашей неформальной встрече пользователей и разработчиков. Будут новые докладчики, новые темы и мороженое. С собой приносите интересные вопросы и летнее настроение.

20 июня, Cанкт-Петербург

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

Приглашаем на Java Meetup в Райффайзенбанк UPD Трансляция

Время на прочтение1 мин
Охват и читатели4.9K
Внутреннее сообщество Java-разработчиков Райффайзенбанка приглашает на свой первый открытый митап, который пройдет на площадке московского офиса в Нагатино, 28 июня.


Руслан Черёмин и Максим Грамин — работа с окружением на jug.msk.ru

Время на прочтение2 мин
Охват и читатели2.7K
Очередная встреча московского сообщества Java-разработчиков jug.msk.ru прошла 7 июня 2018 года. На ней выступили Руслан Черёмин и Максим Грамин. Доклады были посвящены тестированию конфигурации и управлению кодом для баз данных.


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

Eclair — Java Spring библиотека декларативного логирования

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


Вопросов о работе сервисов на этапах разработки, тестирования и поддержки очень много и все они на первый взгляд непохожи: «Что произошло?», «Был ли запрос?», «Какой формат даты?», «Почему сервис не отвечает?» и т.д.

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

Об одеяле и особенностях решения — далее.
Читать дальше →

Кодогенерация в Uber

Время на прочтение14 мин
Охват и читатели12K
Каждый из нас делает рутинную работу. Каждый пишет boilerplate код. Зачем? Не лучше ли автоматизировать данный процесс и работать только над интересными задачами? Читай эту статью, если хочешь, чтобы такую работу за тебя делал комп.

image

Данная статья написана на основе расшифровки доклада Зака Свирса (Zack Sweers), разработчика мобильных приложений Uber, с которым он выступил на конференции MBLT DEV в 2017 году.

Оценка тестового покрытия Java проекта на примере Apache Ignite

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

Я участвую в развитии open source проекта Apache Ignite, работая над проектом мне стало интересно оценить тестовое покрытие и вот что из этого получилось.


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

Адаптивные лимиты параллельных подключений в Netflix

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


Компания Netflix одержима вопросом доступности сервисов. Мы уже не раз рассматривали его в нашем блоге и рассказывали, как нам удаётся достичь своих целей. Мы используем circuit breakers, лимиты параллельных подключений, тестирование с помощью намеренного внедрения ошибок (chaos testing) и многое другое. Сегодня мы представляем вам ещё один инновационный подход, который существенно повышает стабильность приложения при экстремальных нагрузках и позволяет избежать каскадных сбоев в работе сервисов — адаптивные лимиты параллельных подключений. Больше не нужно тратить силы, чтобы определить лимиты параллельных подключений, позволяющие системе поддерживать небольшое время отклика. В рамках этого анонса мы также выкладываем в открытый доступ простую Java-библиотеку с возможностями интеграции для сервлетов, управляющих программ и gRPC.
Читать дальше →

Экспорт дерева тестов из JMeter в текст

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

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


Работаю на большом интеграционном проекте (IBM WAS, WebSphere MQ, Oracle) и оплетаю наш кровавый энтерпрайз паутиной функциональных тестов в JMeter, который крутится на тестовом стенде и пробуждается по зову Jenkins после деплоя нового билда. По мере увеличения количества тестов столкнулся с проблемой поддержания тестовой документации в актуальном виде.

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

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

Удобное логирование в SpringBoot + Log4j2 + Maven

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

Здравствуйте, уважаемые Хабровчане.


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

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

Java Eastern European Conference 2018: доклады и впечатления

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


Автор: Игорь Мастерной, Senior Developer, лидер Java-сообщества DataArt

18–19 мая в Киеве прошла JEEСonf — одно из самых ожидаемых событий для всего Java-сообщества Восточной Европы. DataArt выступил партнером конференции. На четырех сценах выступали докладчики со всего мира: Фолькер Симонис — представитель SAP в JCP и контрибьютор OpenJDK, Юрген Хёллер — главный инженер Pivotal, отец всеми любимого Spring Framework, Клаус Ибсен создатель Apache Camel, и Хью МакКи — евангелист в Lightbend.

График был очень насыщенным: за два дня более 50 выступлений, по 45 минут на каждое. 10 минут перерыва — и бежим на новый доклад. На то, чтобы посмотреть все видео, когда они появятся в сети, потребуется много времени. Поэтому кратко опишу доклады, которые я счел наиболее интересным и на которых побывал лично.
Читать дальше →

Создание Android приложения для распознавания текста за 10 Минут. Mobile Vision CodeLab

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

Видео версия туториала



Оптическое распознавание символов (англ. Optical Character Recognition, сокр. OCR) дает компьютеру возможность читать текст на изображении, позволяя приложениям понимать знаки, статьи, листовки, страницы текста, меню или что угодно в виде текста. Mobile Vision Text API предоставляет разработчикам Android мощную и надежную возможность OCR, которая поддерживает большинство устройств Android и не увеличивает размер вашего приложения.


В этом туториале вы создадите приложение, в котором в процессе видеосъёмки будет распознаваться и воспроизводиться весь текст, попадающий в кадр.

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

Личный опыт: переход с низкоуровневой разработки на C к программированию на Java

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


Статья отражает личный опыт автора – заядлого программиста микроконтроллеров, которому после многолетнего опыта микроконтроллерной разработки на языке С (и немного на С++) довелось участвовать в крупном Java-проекте по разработке ПО для ТВ-приставок под управлением Android. В ходе этого проекта удалось собрать заметки об интересных различиях языков Java и C/C++, оценить разные подходы к написанию программ. Статья не претендует на роль справочника, в ней не рассматривается эффективность и производительность Java-программ. Это скорее сборник личных наблюдений. Если не указано иное, то речь идет о версии Java SE 7.
Читать дальше →

Встреча JUG.ru с Артуром Пилипенко: Falcon — LLVM-based JIT-компилятор в Zing JVM

Время на прочтение1 мин
Охват и читатели2.5K
Во вторник, 5 июня, в петербургском офисе компании Oracle состоится встреча JUG.ru с Артуром Пилипенко, инженером компиляторной команды компании Azul Systems. Тема встречи — Falcon.

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

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

Java и Project Reactor. Эпизод 2

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


Привет! Удивительно, но первая часть статьи даже кому-то понравилась.
Отдельное спасибо за ваши отзывы и комментарии. У меня для вас плохая хорошая новость: нам ещё есть о чём поговорить! А если точнее, то о некоторых деталях работы Reactor.

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

Рынок труда в Java-разработке — что мы знаем о нём, что он знает о нас

Время на прочтение5 мин
Охват и читатели44K
Прошлые статьи с цифрами нашли положительный отклик среди читателей, поэтому — на этот раз нечто совершенно иное — ещё один статистический сборник: рынок труда в Java, цифры из вакансий, резюме и заработные платы. Сам наш hh.ru в большей части написан на ней — уже ~15 лет мы следим за всей экосистемой Java и за динамикой джавистов на рынке.

Под катом — сравнение Java с совокупным рынком, реальные/предлагаемые/ожидаемые зарплаты, конкуренция и общие тренды. 21 график, время чтения — примерно 7 минут.


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