Обновить
256K+

Java *

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

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

Проект Lombok, или Объявляем войну бойлерплейту

Время на прочтение6 мин
Охват и читатели58K
Открою не Америку, но шкатулку Пандоры: в Java-коде много бойлерплейта. Типовые геттеры, сеттеры и конструкторы, методы ленивой инициализации, методы toString, hashCode, equals, обработчики исключений, которые никогда не выбрасываются, закрывалки потоков, блоки синхронизации. Проблема заключается даже не в том, чтобы написать всё это — современные среды разработки справляются с такими задачами нажатием нескольких клавиш. Сложность в поддержании бойлерплейта в актуальном состоянии по мере внесения модификаций в код. А в некоторых случаях (многопоточность, реализация методов hashCode и equals) и сам шаблонный код написать без ошибок — далеко не простая задача. Одним из решений проблемы является генерация кода, и в этой статье я расскажу про проект Lombok — библиотеку, которая не только может избавить вас от бойлерплейта, но и сделать это максимально прозрачно, с минимальной конфигурацией и, что немаловажно, с поддержкой на уровне среды разработки.
Читать дальше →

JavaOne/Oracle Develop 2012: общие впечатления. Рассказ с картинками

Время на прочтение5 мин
Охват и читатели1.3K
17-18 апреля 2012 года в Москве, в здании Российской Академии Наук прошла, уже вторая по счёту, конференция JavaOne/Oracle Develop. В прошлом году я посещал сие мероприятие и мне очень понравилось, поэтому приобрёл входной билет как только они появились в продаже. К слову, их минимальная стоимость выросла вдвое относительно прошлого года, но осталась вполне адекватной — 1 000 рублей.

image
Автор фото — Trukhin Yuri

На входе встречал известный Java-персонаж Дюк.
Читать дальше →

Ограничения через реализацию интерфейса против свободы через рефлекшн

Время на прочтение3 мин
Охват и читатели1.4K
  В последнее время очень часто появляются фреймворки которые позволяют разработчику реализовывать функционал в свободном виде не прибегая к наследованию от интерфейсов. Примеры можно увидеть в таких как EJB 3, JUnit 4, JSF 2, Spring Framework 3 и т.д.
Под катом найдете обсуждение обоих подходов.
Читать дальше →

Распространяется ли копирайт на языки программирования?

Время на прочтение2 мин
Охват и читатели3.1K
После полутора лет досудебных разбирательств, сотен рассмотренных документов с участием 75 адвокатов с обеих сторон, представители Oracle и Google сойдутся лицом к лицу в окружном суде Северной Калифорнии, чтобы выяснить, подлежат ли языки программирования защите копирайтом.

Столь кардинальную постановку предложил сам судья. В специальном запросе на прошлой неделе суд постановил, что Google и Oracle должны твёрдо разъяснить свои позиции по фундаментальному вопросу: «применимы ли законы о защите интеллектуальной собственности в отношении языков программирования». И компании уже предоставили свои ответы. В частности, компания Google высказалась чётко: «Нет, языки программирования не подлежат защите копирайтом. Компания Google всегда придерживалась такой позиции».
Читать дальше →

Почему JBoss AS 7 такой быстрый?

Время на прочтение3 мин
Охват и читатели12K
Перевод. Оригинал статьи http://in.relation.to/Bloggers/WhyIsJBossAS7SoFast. Статье скоро год, но вопрос все еще актуален.

Если кратко, то ответ следующий: потому что вся проектировка JBoss AS 7 строится на основе закона Эмдейла (эффективная параллелизация задач) в противоположность закону Мура (ждать железа с большей частотой процессора). Почти каждый процессор на вооружении настольных компьютеров, ноутбуков и серверов сегодня имеет не менее двух ядер, при чем тенденция быстро растет. Дни гонок за частотой процессора уже в прошлом. Так что, программам приходится адаптироваться, чтобы выжать все из того железа, что есть сейчас и будет завтра.
Читать дальше →

Продвижение Java-стартапов

Время на прочтение1 мин
Охват и читатели2.3K
На сайте DZone собираются публиковать серию интервью о Java-стартапах.

image

Вот письмо одного из редакторов сайта:

Java-Стартапы - Мы хотим услышать о Вас!

Сейчас все помешаны на культуре стартапов которая стала модной в индустрии разработки ПО. Стартап Draw Something покупают за $ 200 млн, Facebook покупает Instagram за $ 1 млрд, постоянно происходит что-то новое. Но мы не видим, на каких технологиях базируются эти проекты. В ближайшее время будут опубликовано несколько интервью освещающих эту сторону стартапов.

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

Магический Репозиторий: интеграция Spring Data-JPA и Google Guice

Время на прочтение3 мин
Охват и читатели4.1K
Не так давно на Хабре был хороший пост посвященный проекту Spring Data-JPA.
Проект меня очень впечатлил, т.к. он предлагал хорошо продуманное решение для работы с репозиториями.
Собственные наработки на эту тему у нас имелись, однако Spring Data-JPA был намного более элегантным и функциональным решением.
Была одна загвоздка — проекты с которыми я работаю построены с применением Google Guice.
В свое время это был мой осознанный выбор и в целом он до сих пор устраивает как команды проектов, так и заказчиков.

… но концепция репозиториев от Spring Data-JPA была слишком вкусной…
Читать дальше →

Вышел Kotlin версии M1 (0.1.2090)

Время на прочтение1 мин
Охват и читатели1.5K
Сегодня выпущен первый официальный «milestone» проекта Kotlin — современного языка программирования дла платформы Java, разработанного в компании JetBrains:

Самые интересные изменения:
Читать дальше →

Определяем все классы, которые использует приложение на Java

Время на прочтение12 мин
Охват и читатели20K
Без сомнения каждый, кто в своем резюме указывает опыт разработки на Java, хоть раз в жизни писал строки
public static void main(String[] args)
компилировал их и запускал на выполнение командой наподобие java HelloWorld.
Но многие ли знают, что происходит внутри JVM от момента выполнения этой команды до того как управление передается методу main, как Java находит и загружает необходимые пользователю классы? Возникшая однажды производственная задача заставила автора разобраться в этом вопросе. Результаты изысканий под катом. Сразу стоит оговориться, что статья не претендует на полноту охвата всех существующих JVM, тестирование проводилось только на Sun HotSpot JVM.
Читать дальше →

Пишем первый проект на Play Framework 2.0

Время на прочтение6 мин
Охват и читатели40K
13 марта состоялся релиз второй версии scala/java-фреймворка Play. На хабре уже был обзор новых фич Play 2.0. В этой же статье я хочу восполнить пробел в отсутствии мануалов на русском языке по этому интересному фреймворку на примере создания простого приложения на Java, состоящего из списка категорий и привязанных к ним вакансий.

Статья рассчитана на тех, кто совсем не знаком с Play и хотел бы его «пощупать», не тратя много времени.
Читать дальше →

JavaFX Scene Builder Developer Preview

Время на прочтение2 мин
Охват и читатели17K
На сайте Oracle стала доступна для скачивания предварительная версия JavaFX Scene Builder:

image

Редактор предназначен для мышкоредактирования формочек под JavaFX. Рассмотрим что в нём есть:
Читать дальше →

Ускоряем процесс сборки с maven

Время на прочтение3 мин
Охват и читатели11K
Наверное многие из Вас работают с Maven. Если так, то полагаю каждый из Вас ежедневно собирает свой проект по несколько раз, особенно если Вы сейчас в активной фазе разработки и изменения затрагивают много модулей. В определенный момент времени проект становится довольно большим и билд с каждым днем начинает выполнятся все дольше и дольше… И вот приходит время, когда пора что-то с этим делать.

Мигрируйте с Maven 2 на Maven 3

Вы еще используете maven2? Странно. Одна только миграция на 3-ю версию может значительно ускорить процесс сборки. В моем проекте переход на Maven 3 дал прирост в скорости сборки на 10%. Вероятней всего за счет каких-то фиксов и оптимизаций, что были сделаны в новой версии (так как заявляют разработчики количество кода было существенно уменьшено и сильно отрефакторено). Миграция займет у Вас несколько минут и в большинстве случаев будет безболезненной. Хотя есть шанс, что некоторые конфигурационные файлы все же придется подправить.

Используем ядра и дополнительные потоки

В Maven 3 есть замечательная опция:
mvn -T 4 clean intall
mvn -T 2C clean install

В первом случае мы явно указываем, что хотим запустить процесс сборки на 4 потока. Во втором случае мы указываем, что на каждое ядро должно быть выделено по 2 потока для процесса сборки. Это одна из новых фич нового мавена — Parallel Builds. Эта фича анализирует граф зависимостей Вашего проекта
и распихивает модули по разным потокам, сборка которых может быть выполнена параллельно.
Для моего текущего проекта скорость сборки со вторым параметром (-T 2C) ускорилась на 20%. Правда тут есть один минус. Количество ресурсов, что будет потребляться для билда может значительно вырасти. В моем случае это +30% к потребляемой памяти.
Хочу сразу обратить внимание — если связанность модулей в Вашем проекте очень низкая — то
скорость сборки этой опцией можно увеличить на порядок.
Это, кстати, повод задуматься об Вашей архитектуре проекта. Ведь если билд занимает довольно много времени, то небольшой рефакторинг поможет уменьшить эту цифру. Хотя, конечно, это все очень индивидуально.
Вообще разработчики заявляют, что прирост в скорости сборки может быть 20-50%.
Читать дальше →

Cofoja: Практичная библиотека для контрактного программирования. Часть 1

Время на прочтение11 мин
Охват и читатели2.8K
Данная статья является переводом документа «2010 internship technical report» библиотеки Cofoja. Документ раскрывает причины возникновения библиотеки и отвечает на вопросы критиков, которые можно встретить на Хабре в статьях посвященных данной библиотеки. Статья служит для распространения и понимании реализаций парадигмы Design By Contracts или Контрактного Программирования.
Читать дальше →

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

Flyway: управление миграциями баз данных

Время на прочтение6 мин
Охват и читатели78K
В этой статье я расскажу об одном из средств обеспечения версионности схем и управления миграциями БД — библиотеке Flyway. С поблемой версионности схемы базы данных рано или поздно приходится сталкиваться разработчикам любого приложения, опирающегося на СУБД. Увы, иногда эта проблема принимается в рассмотрение слишком поздно — например, если вопрос о внесении изменений в структуру базы встаёт, когда приложение уже находится в эксплуатации. Но и на этапе разработки контроль схемы базы данных причиняет не меньше проблем, чем все прочие аспекты версионности приложения: в отсутствие чёткой системы управления миграциями локальная, стендовая и эксплуатационная базы могут быстро «разъехаться», не предоставляя при этом никакой информации относительно своего текущего состояния.

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

Апплеты

Время на прочтение1 мин
Охват и читатели16K
С утра Firefox порадовал предупреждением:

image

Предлагается отключить Java Plug-in (то что требуется для запуска Java-апплетов в браузере)
Читать дальше →

Обновление IntelliJ IDEA 11.1

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

Вчера на сайте JetBrains стала доступна для скачивания новая версия среды разработки на Java – IntelliJ IDEA 11.1.

Как всегда IntelliJ IDEA доступна в двух версиях: Ultimate – полная платная версия, а также Community Edition – бесплатная Open-source версия. Владельцы лицензии IntelliJ IDEA 11 Ultimate имеют возможность бесплатного обновления до 11.1.

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

Вышла новая версия Apache POI 3.8

Время на прочтение5 мин
Охват и читатели32K
26 Марта вышел новый релиз библиотеки Apache POI — версии 3.8.

Apache POI — это библиотека на языке Java для чтения и записи документов Microsoft Office,
таких как Excel, PowerPoint и Word. С помощью POI вы можете программно создавать новые
или изменять существующие документы, индексировать текст, обрабатывать вложенные
(embedded) объекты (документы, картинки и т.д.) и много чего другого.

Предыдущая стабильная версия Apache POI вышла полтора года назад, в Октябре 2010 года,
поэтому изменений накопилось порядочно. Исправлено более 200 багов, добавлены многочисленные
новые фичи и улучшена общая производительность.

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

Среды разработки на Java, или от Netbeans к Eclipse

Время на прочтение2 мин
Охват и читатели75K
В одной из крупных гос. компаний ведем небольшим коллективом разработку САПР на платформе Java
Проекту уже полтора года.
До недавнего времени все дружно использовали IDE Netbeans. Периодически радовались новым версиям среды.
И вот ваш покорный слуга увидел релиз Netbeans 7.1. Захотелось попробовать, посмотреть новинку.
Сначала обновил себе (Slackware Linux 12.2). Запустил, открыл проект, собрал (скомпилировал).
Все прошло нормально. Посоветовал коллеге (Windows 7), сам продолжил работу в новой версии.

Тут началось невообразимое. Сборка проекта прошла нормально, а при его выполнении появились странные Exception-s. При щелчке на Exception редактор Netbeans открыл пустое место в коде, где был вообще комментарий, а не какой-либо метод.
При этом сборка того-же проекта вручную с помощью Ant и последующий запуск из командной строки дали абсолютно корректный результат.

Был сделан вывод, что Netbeans 7.1 запускает какой-то собственный кэш, а не только что скомпилированные Java-классы!
Читать дальше →

Исследование платформ для сервера minecraft. Создание собственного сервера Minecraft

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

Содержание


1. Содержание
2. Цели и задачи
3. Выбор платформы для сервера
4. Описание проекта
5. Выводы и перспективы
6. Инструкция для пользователей
7. Список литературы

Цели и задачи


Цель
Создать популярный игровой сервер для игровой программы minecraft.
Читать дальше →

Обзор новых возможностей в playframework v2

Время на прочтение4 мин
Охват и читатели5.9K
Доброго времени суток всем. Хотел бы представить вашему вниманию небольшое описание новых возможностей Play 2. Речь в данной статье пойдет о play2 scala.
Читать дальше →