Чашечка Java
前往频道在 Telegram
Лучшие материалы по Java на русском и английском Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels
显示更多8 570
订阅者
+224 小时
-47 天
-2830 天
帖子存档
8 570
Использование javascript в Vaadin 7 или как я сэкономил $490 на графиках (часть 1)
В этой статье я расскажу вам как внедрял красивые графики в наш сервис учета коммунальных услуг Dom24x7 и с какими проблемами и неудобствами пришлось столкнуться.
Для Vaadin 7 имеется прекрасное официальное дополнение для работы с графиками, но проблема в том, что оно не бесплатное и стоит почти $500! Таких денег мне тратить не хотелось, и я решил поискать альтернативу из бесплатного, но, к сожалению, все что я нашел меня совершенно не удовлетворяло по качеству и тогда я вернул свое внимание на официальное дополнение для работы с графиками и решил изучить его повнимательнее.
Оказалось, что это дополнение всего лишь оболочка для прекрасной javascript библиотеки Highcharts, которую, о чудо, можно было использовать бесплатно в некоммерческих проектах (каковым, на текущий момент, является наш проект, хотя, когда его статус измениться, я с удовольствием приобрету коммерческую лицензию), хотя есть еще прекрасная альтернативная библиотека Amcharts, но все же решил остановиться на предыдущей.
Кстати, разработчики Vaadin объясняют, почему так дорого просят за дополнение по работе с графиками тем, что им приходится приобретать корпоративную лицензию.
Определившись с библиотекой осталось решить вопрос, как же все таки ее подключить к своему проекту?
Статья состоит из двух частей. Первая часть это перевод статьи о том как подключать javascript библиотеки к vaadin проектам, а вторая часть расскажет о там, как я, используя полученные знания, написал библиотеку для отображения графиков.
Итак…
Читать: https://habr.com/ru/companies/dom24x7/articles/218361/?utm_campaign=218361
@a_cup_of_java | Другие наши каналы
8 570
Проект Lazybones — «Лентяй», который работает за вас
Я не люблю Maven.
О моей пассионарной ненависти к этой штуке можно написать не одну статью, но сегодня я хочу поговорить об одной очень хорошей фиче Мавена — об архетипах. Что это такое можно прочитать в официальной документации, в каждом из туторилов по Мавену на Хабре(1, 2, 3), да и вообще, вы наверняка знаете и сами.
Так вот, архетипы — это круто, и было бы здорово, если бы 1) во многих проектах со стандартной структурой они были. 2) можно было бы их прикрутить к тем, у которых их нет.
Примерно так думал Питер Ледбрук, когда смотрел на полное отсутствие архетапов в Ratpack. Тогда и родился проект Lazybones — инструмент генерации проектов.
В этой статье я расскажу вам как 1) Пользоваться Lazybones для генерации проектов, для которых уже созданы шаблоны. 2) Создавать новые шаблоны для любых проектов.
Читать как создавать
Читать: https://habr.com/ru/articles/218205/?utm_campaign=218205
@a_cup_of_java | Другие наши каналы
8 570
JPHP — Как он работает. История создания
В этой статье я расскажу более подробно об истории проекта JPHP и каким образом он был разработан с технической стороны. Текст будет интересен как простым разработчикам PHP, так и любителям компиляторов. Я постарался описать все на простом языке.
JPHP это компилятор языка PHP для Java VM. Две недели назад я писал статью о проекте. Похожие проекты — JRuby для ruby, Jython для python. После публикации первой статьи о JPHP, проект за два дня набрал 500 звёзд на гитхабе и успел засветиться не только в РУнете, но и на зарубежных ресурсах, успел побывать на первом месте в рейтинге гитхаба.
Читать: https://habr.com/ru/articles/218021/?utm_campaign=218021
@a_cup_of_java | Другие наши каналы
8 570
Введение в Акторы на основе Java/GPars, Часть I
Кратко рассматривается API библиотеки GPars и решение многопоточной задачи средней сложности, результаты которой могут быть полезны в «народном хозяйстве».
Данная статья написана в ходе исследования различных библиотек акторов, доступных Java-программисту, в процессе подготовки к чтению курса «Multicore programming in Java».
Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).
Это первая статья из цикла статей цель которых сравнить API, быстродействие и реализацию акторов Akka с реализациями в других библиотеках на некоторой модельной задаче. Данная статья предлагает такую задачу и решение на GPars.
GPars — библиотека написанная для Clojure с широкой поддержкой различных подходов к параллельным вычислениям.
Плюсы GPars
* Исходный код написан на Java (в отличии от Akka, написанной на Scala). Всегда интересно посмотреть «что под капотом» на «родном» языке программирования
* GPars представляет собой целый «зоопарк» подходов (Actor, Agent, STM, CSP, Dataflow)
* GPars использует классы из runtime-библиотеки Clojure, написанной на Java. Интересно покопаться
Читать: https://habr.com/ru/companies/golovachcourses/articles/217899/?utm_campaign=217899
@a_cup_of_java | Другие наши каналы
8 570
JavaFX и AnimationTimer
Вариант применения интересного класса в JavaFX-приложении — предотвращение «заморозки» окна во время длительного процесса. Заодно чуть-чуть об особенностях прорисовки сцен в JavaFX.
Читать: https://habr.com/ru/articles/217269/?utm_campaign=217269
@a_cup_of_java | Другие наши каналы
8 570
Что ждет IntelliJ IDEA впереди?
Совсем скоро нашей флагманской среде разработки IntelliJ IDEA исполнится 14 лет. Уже немало продуктов создано с помощью наших инструментов, и казалось бы всевозможные фичи добавлены в IDE, но мы продолжаем искать новые источники вдохновения, чтобы наши продукты на вашем столе всегда были свежими. По случаю приближающейся годовщины мы хотели бы поделиться нашими взглядами – что именно в ближайшие 5-10 лет будет определять развитие в продуктовой разработке.
Для того, чтобы нам продолжать успешное развитие, как стремительно растущей компании, мы решили обратиться к независимым профессиональным консультантам. Выбор пал на весьма престижное международное бюро с большим опытом сотрудничества и собственными проектами для многих известных IT компаний. Было опрошено множество разработчиков различного возраста, пола, с разнообразными культурными и профессиональными интересами. Вооружившись основными результатами, наши разработчики с огромным энтузиазмом принялись внедрять новые идеи.
Что ждет нас? Все под катом.
Читать: https://habr.com/ru/companies/JetBrains/articles/217877/?utm_campaign=217877
@a_cup_of_java | Другие наши каналы
8 570
Перевод legacy-проекта на Dependency Injection. Путь Ситха
Внесу и свой вклад в тренд темного программирования.
Многим из вас знакома дилемма: использовать ли DI в своем проекте или нет.
Поводы перехода на DI:
* создание развитой системы авто-тестов
* повторное использование кода в различном окружении, в том числе в различных проектах
* использование 3rd-party библиотек, построенных на DI
* изучение DI
Доводы не использовать DI:
* усложнение понимания кода (поначалу)
* необходимость конфигурирования контекста
* изучение DI
Допустим, у нас есть большой рабочий проект, принято решение: переводить на DI. Разработчики чувствуют свой потенциал, уровень мидихлориан в крови зашкаливает.
Путь тебя ждет тернистый и долгий, мой юный падаван.
Если проект большой и в нем много разработчиков, одним коммитом вряд ли удастся сделать такой рефакторинг. Поэтому мы используем несколько плохих практик, упростив переход, а затем от них избавимся.
С чего начать?
Читать: https://habr.com/ru/articles/217523/?utm_campaign=217523
@a_cup_of_java | Другие наши каналы
8 570
Как web-страницу легко превратить в PDF?
Для меня было очень неожиданно то, что в хабе по Java практически нет информации по работе с PDF документами, поэтому я, из личного опыта, хочу на примере сервлета показать как легко можно любую web-страницу превратить в PDF документ.
Читать: https://habr.com/ru/articles/217561/?utm_campaign=217561
@a_cup_of_java | Другие наши каналы
8 570
Аннотации в Java, часть I
Это первая часть статьи, посвященной такому языковому механизму Java 5+ как аннотации. Она имеет вводный характер и рассчитана на Junior разработчиков или тех, кто только приступает к изучению языка.
Я занимаюсь онлайн обучением Java и опубликую часть учебных материалов в рамках переработки курса Java Core.
Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).
Мой метод обучения состоит в том, что я
1. строю усложняющуюся последовательность примеров
2. объясняю возможные варианты применения
3. объясняю логику двигавшую авторами (по мере возможности)
4. даю большое количество тестов (50-100) всесторонне проверяющее понимание и демонстрирующих различные комбинации
5. даю лабораторные для самостоятельной работы
Данная статье следует пунктам #1 (последовательность примеров) и #2(варианты применения).
Читать: https://habr.com/ru/companies/golovachcourses/articles/217595/?utm_campaign=217595
@a_cup_of_java | Другие наши каналы
8 570
Dripstat — сервис мониторинга производительности JVM или MMO игра?
Приветствую, хабражители!
Сегодня я хочу рассказать вам про сервис, который обнаружил буквально недавно — Dripstat. Он позволяет установить на локальную JVM специальный java-агент, который собирает статистику работы сервера приложений и отправляет на сайт, где с ней можно детальнее ознакомиться.
— Ну какие сервисы мониторинга? Сегодня суббота! — скажете вы, и будете правы. Более того, я даже поддержу эту мысль и в данной заметке расскажу как раз об обратной, развлекательной, стороне медали, и чуть-чуть о программировании на JS.
Итак, приглашаю дочитать тех кто заинтересовался. Let's play!
Читать: https://habr.com/ru/articles/217507/?utm_campaign=217507
@a_cup_of_java | Другие наши каналы
8 570
Легкий старт: Spring + MongoDB
Поискал на хабре схожие статьи, нашел только Morphia — легкий ORM для MongoDB, управляемый аннотациями, ничего по связке Spring Data + MongoDB не нашлось, в связи с этим решил написать пост из раздела «для самых маленьких» по настройке и использованию связки Spring + MongoDB.
Читать: https://habr.com/ru/articles/217391/?utm_campaign=217391
@a_cup_of_java | Другие наши каналы
8 570
Дружим штатную громкую связь Volvo с русскими буквами
Доброго времени суток!
Несколько месяцев назад появился у меня чудесный автомобиль Volvo V50 родом из Бельгии. Бортовой компьютер и магнитолу успешно перепрошили на русский язык у официального дилера, а вот с отображением русских имен из записной книжки телефона при использовании штатной громкой связи вышла беда: все кириллические символы показывались в виде подчеркиваний. Я пользуюсь Samsung Galaxy S3 прошитым CyanogenMod 11, поэтому возникла идея подправить стандартный Bluetooth.apk для обеспечения возможности видеть имя звонящего.
Читать: https://habr.com/ru/articles/217381/?utm_campaign=217381
@a_cup_of_java | Другие наши каналы
8 570
JPHP — Новый движок php для Java VM + JIT
Представляю вам свой open-source проект — JPHP. Это альтернативная реализация PHP для JavaVM с поддержкой JIT. Я начал проект в одиночку в октябре 2013 года и за 4 месяца реализовал компилятор php в байткод JVM. Язык поддерживается на уровне PHP 5.3, частично поддерживаются возможности PHP 5.4 и 5.5. По своей идеологии проект напоминает JRuby и Jython.
Я подготовил небольшую презентацию, которая расскажет о проекте и не отнимет у вас много времени:
Читать: https://habr.com/ru/articles/216651/?utm_campaign=216651
@a_cup_of_java | Другие наши каналы
8 570
Концепция Абстрактного Типа Данных
Доброго времени суток, хабравчане!
Следующий пост является изложением моих размышлений на тему природы классов и АТД. Эти размышления дополнены интересными цитатами из книг гуру разработки программного обеспечения
Введение
Начнем с того, что плавно подойдем к определению АТД. АТД, в первую очередь, представляет собой тип данных, что означет следущее:
наличие определенных доступных операций над элементами этого типа;
а также данные, относительно которых эти операции выполняются (диапазон значений).
Читать: https://habr.com/ru/articles/216725/?utm_campaign=216725
@a_cup_of_java | Другие наши каналы
8 570
IntelliJ IDEA 13.1: Весеннее обновление
Привет, Хабр!
Вместе с хорошим известием для Северного полушария, что продолжительность светлого времени суток увеличилась, мы хотим рассказать о релизе IntelliJ IDEA 13.1, случившемся на этой неделе. Но перед рассказом о новинках хотелось бы отметить еще одно, весьма ожидаемое всем Java-cообществом, событие…
Читать дальше
Читать: https://habr.com/ru/companies/JetBrains/articles/216667/?utm_campaign=216667
@a_cup_of_java | Другие наши каналы
8 570
Java 8 в IaaS InfoboxCloud в одну команду. Используем Java 8 в тестах
Совсем недавно вышла Java 8. Это большое и долгожданное событие для всех разработчиков на платформе JVM и безусловно повлияет на код в enterprise проектах.
Мы в InfoboxCloud очень любим технологии Java и ценим Java разработчиков. К релизу Java 8 мы написали скрипты, которые позволят в одну команду установить JRE 8 или JDK 8 в Облачную инфраструктуру InfoboxCloud на любою из ОС Linux. Просто выберите скрипт, вставьте в консоль и нажмите Enter. Гораздо лучше тратить время на написание хорошего кода, чем на установку java.
На Облачной платформе InfoboxCloud Jelastic поддержка Java 8 появится в следующем обновлении программного стека довольно скоро.
В этой статье мы, установив Java 8, рассмотрим как тестировать ваше разрабатываемое ПО с Java 8, собирая его под Java 7.
Читать: https://habr.com/ru/companies/infobox/articles/216563/?utm_campaign=216563
@a_cup_of_java | Другие наши каналы
8 570
Новое в Java 8
Java еще не умерла — и люди начинают это понимать.
Добро пожаловать в ведение по Java 8. Этот материал шаг за шагом познакомит вас со всеми новыми фичами языка. Вы научитесь использовать методы интерфейсов по умолчанию (default interface methods), лямбда-выражения (lambda expressions), ссылки на методы (method references) и повторяемые аннотации (repeatable annotations). Все это будет сопровождаться короткими и простыми примерами кода. В конце статьи вы познакомитесь с наиболее свежими изменениями в API, касающихся потоков, функциональных интерфейсов, расширений для ассоциативных массивов, а также с изменениями в API работы с датами.
Читать: https://habr.com/ru/articles/216431/?utm_campaign=216431
@a_cup_of_java | Другие наши каналы
8 570
Сравниваем производительность reflection в JDK8 и JDK7
Привет, Хабр!
Недавно, путешествуя по коду своего рабочего проекта набрел на довольно высоконагруженный spring бин, который производил обращения к методам объектов (иногда и объектов сгенерированных на лету классов) вызывая геттеры и сеттеры объекта через reflection. В бине уже был реализован кэш геттеров, однако я задался вопросом — насколько быстр reflection и можно ли сделать быстрее.
Читать: https://habr.com/ru/articles/216435/?utm_campaign=216435
@a_cup_of_java | Другие наши каналы
8 570
Java 8 Released
Поздравляю всех с официальным выходом Java 8.
Основные ссылки по данному вопросу:
1. Ссылка на скачивание
2. Ссылка на перечень изменений
Читать: https://habr.com/ru/articles/216303/?utm_campaign=216303
@a_cup_of_java | Другие наши каналы
8 570
QuisyReader
Под влиянием "500 слов в минуту без подготовки" решил реализовать программу которая бы работала на большинстве платформ, так и появилось сиё чудо под названием «QuisyReader».
Читать дальше
Читать: https://habr.com/ru/articles/216099/?utm_campaign=216099
@a_cup_of_java | Другие наши каналы
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
