JAVA — TechCave

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

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

Стена группы

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

Шаблоны проектирования Java. Урок 11. Proxy


Загрузка...
Den
5 дней назад
#

Быстрый и безопасный мониторинг JVM-приложений с помощью магии BPF



Все мы встречались со сложными ошибками на продакшне, которые сложно поймать обычными средствами мониторинга. BPF — это технология ядра Linux, которая позволяет делать быструю и безопасную динамическую отладку прямо на запущенной работающей системе, без необходимости готовиться к этому заранее. JVM сама по себе имеет множество точек мониторинга для отслеживания сборки мусора, выделения объектов, вызовов JNI, даже вызовов методов — и всё это без необходимости в дополнительном инструментировании. Когда этих точек мониторинга недостаточно, ядро Linux и всевозможные бибилиотеки позволяют отслеживать системные вызовы, сетевые пакеты, события планировщика, время потраченное на доступ к диску, и даже запросы к базам данных.



В этом хабрапосте мы сделали текстовую расшифровку доклада Sasha Goldshtein, посвященного тому, как инструменты BPF можно использовать для мониторинга JVM-приложений на GNU/Linux, и чеклисту проверки производительности с использованием классических инструментов, таких как fileslower, opensnoop, strace — но всё это с использованием неинвазивной, быстрой и безопасной технологии BPF.



После ката будет множество картинок со слайдами. Осторожно, трафик! Картинки ужаты насколько можно, но не более того. Все они действительно нужны.



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

Динамическое генерирование прокси-классов в Java



Наверно каждому java разработчику рано или поздно потребуется использовать прокси-классы.
Под катом представлены простые примеры, выполненные при помощи JDK proxy, cglib, javassist и byte buddy.



image

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

Первый релиз-кандидат OpenJDK 10!





Ссылка для скачивания:

http://jdk.java.net/10/.

                                                   



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

Шаблоны проектирования Java


Урок 9. Composite



Урок 10. Decorator

Загрузка...
7 дней назад
#

И на улицу JavaFX тоже придет Spring



Доброе время суток, хабровчане!

Надеюсь среди Вас найдутся такие же любители делать формочки как и я.

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

Ранее, на Swing или AWT все было очень печально, да наверное и до появления JavaFX 8 написание анонимных классов превращалось в спаггети код. Но с появлением лямбда-выражений все изменилось, код стал проще, понятней, красивее. Использовать JavaFX в своих проектах стало одним удовольствием.

Вот и возникла у меня мысль связать лучший инструмент для Java Spring Framework и удобный в наше время инструмент для создания GUI JavaFX, это даст нам использовать все возможности Spring`а в клиентском десктопном приложении. Собрав всю информацию воеидно, которую я искал по просторам сети, я решил поделиться ей. Прежде всего хочу отметить, что статья предназначена больше для новичков, поэтому некоторые подробности для многих могут оказаться слишком банальными и простыми, но я не хочу их опускать, чтобы не терять целостность статьи.



Жду конструктивной критики, по свои решениям.

Кому интересно, прошу под кат.

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

Cradle: Rave. Два хакатона + конференция, с упором на Big Data & ML, Blockchain, Quantum Computing, DevOps и Mobile



На прошлой неделе друзья позвали отдохнуть на неком Cradle:Rave. Судя по названию, это могло быть всё что угодно, включая кислотную вечеринку, поэтому я решил провести некие исследования в интернетах.



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



Оказалось, всё довольно круто. Это гибридное развлечение, совмещающее хакатон и конференцию. Взяли два основных способа культурного времяпровождения, упаковали в три дня, побеспокоились о помещении и ништяках. Круто. Будет на этой неделе, 16.02-18.02.






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

JavaParser. Корёжим код легко и непринуждённо



В мире существует множество клёвых маленьких библиотек, которые как бы и не знаменитые, но очень полезные. Идея в том, чтобы потихоньку знакомить Хабр с такими вещами. Сегодня расскажу о JavaParser.



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



Где-то посреди статьи вы ВНЕЗАПНО можете осознать, какой кошмар и ужас можно сотворить этой либой, и никак не дождётесь дочитать текст и полить меня гневными комментариями. Не сдерживайтесь, не стоит — сразу скрольте до самого низу и изливайте душу :)






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

Разворачиваем окружение для Java-приложения с помощью Ansible



За мной, за мной, читатель, и я проведу тебя в чарующий мир автоматизации разворачивания окружения на серверах под управлением Linux семейства RHEL.



Один из наших java-проектов вырос, стал совсем взрослым и сейчас занимает 4 контура:



Dev — контур для команды разработки,
Qa — контур для команды тестирования,
Stage — контур для демонстрации новых фич заказчику,
Production — боевой контур.



Каждый контур содержит два одинаковых сервера с идентичным набором компонентов окружения для нашего приложения:



linux Oracle — операционная система,
jdk — комплект приложений Java,
haproxy — proxy сервер,
nginx — веб-сервер для отдачи статики,
mysql — субд.



Перед командой эксплуатации встал резонный вопрос: как настроить управление окружением на восьми серверах и сохранить оптимистичное отношение к жизни.



После краткого сравнения систем управления конфигурациями был выбран Ansible. В его пользу сыграли простота, гибкость и отсутствие агентов на управляемых серверах.





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

Как работать с Jira плагином из ScriptRunner или как избежать дублирования кода



В этой статье я хотел бы обсудить проблему дублирования кода в Adaptivist ScriptRunner.

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

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

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

Это классическая проблема, связанная с дублированием кода.

Попробуем избавиться от дублирования кода.

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

Изучение Spring Framework 100% через практику. Активные туториалы и язык разметки KML. Проект KciTasks (beta)





Spring Framework традиционно считается одним из самых
сложных и при этом
высокооплачиваемых. Однако, существующие подходы к его изучению крайне неэффективны. Я хотел бы предложить вам принципиально
новый подход к изучению спринга, который заключается в использовании концепции
активных туториалов. Они представляют из себя сбалансированный набор инструкций, которые поддерживают внимание разработчика и проводят его через те или иные аспекты фреймворка.

В результате, мы получаем
целенаправленное обучение, но БЕЗ ступоров, проблем непонимания вида «а где это использовать», а также без скучного и пассивного чтения теории. Совсем.

В рамках статьи представлено 5 учебных задачек, которые покрывают
Spring Jdbc/Transactions на 50% от необходимых для сертификации знаний. Главная задача статьи — массово протестировать саму идею, а также вместе с вами разработать большое количество уникальных задачек по всем темам.

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

Шаблоны проектирования Java


Урок 5. Builder



Урок 6. Abstract Factory



Урок 7. Adapter



Урок 8. Facade

Загрузка...
11 дней назад
#

7 способов использовать groupingBy в Stream API



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





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

Райффайзенбанк начинает второй набор в Java-школу



Скрам, смузи, эджайл, блокчейн, биг дата, «в каком отделении карту оформляли, туда и идите». Ну, в общем, все мы слышали, что сейчас в тренде в банковской сфере.

Где можно в это втянуться и набрать критическую массу знаний молодому разработчику? В Java-школе Райффайзенбанка: здесь быстро всему научат, расскажут, покажут, да ещё и заплатят.

Что из себя представляет наша
Java-школа? Это трехмесячная оплачиваемая стажировка в одном из крупнейших банков России для студентов последних курсов бакалавриата и магистров. В короткие сроки вы научитесь работать в команде по методологии SCRUM, получите/отточите свои навыки в Enterprise девелопменте, повысите ораторские способности, споткнетесь обо все подводные камни командной работы над одним проектом с применением систем контроля версий и поспорите с командой, что же лучше, GIT или Subversion.



Далее — рассказ очевидца. Из первых, так сказать, рук.

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

Реализация параллельной быстрой сортировки при помощи ForkJoinPool



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



Есть 100 млн. чисел, каждое из которых от 0 до 1млрд.
Нужно отсортировать по возрастанию.
В самом начале программа случайно их заполняет, а потом сортирует.


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

Авторизация

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

Володя Рудомаха
adanick
Марина Викторовна
Георгiй Москвитинъ
Andpyxa Tutunnik
Andrey_fox
Jane linch
genagy
Pasha Radiuk