Обновить
195.69

Java *

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

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

Groovy inspiration — Feel the difference

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

Почему Groovy


Будучи Java разработчиком, некоторое время назад я начал посматривать в сторону других языков программирования, и, думаю об этом размышлял далеко не только я. Некоторые мои знакомые, в свое время имеющие отнюдь не малый опыт в разработке под Java — платформу, решительно начали двигаться по рельсам (Rails), соответственно используя Ruby, кто-то еще подумывает приручить Питона с приложением к нему в виде Django. Появляется достаточно книг о том, как Java — программисту мигрировать в мир динамических языков. Может ли что-то нас остановить?
Читать дальше →

Создаем воркспейс для IntelliJ IDEA из мавен проекта

Время на прочтение4 мин
Охват и читатели26K
Давным-давно я работал в одной большой компании, мы писали JEE приложения. Тогда еще была IntelliJ IDEA 4.0. Один из проектов состоял примерно из 30 модулей. Создание воркспейса с нуля занимало кучу времени, поэтому воркспейс хранился в svn. Кто-то сидел на IDEA 4.0, кто-то на IDEA 5.0, и когда кто-то комитил свои iml'ки и ipr'ки в svn, то другие жутко сердились из-за того, что слетали их личные настройки, поэтому у всех был свой личный воркспейс, а новые программисты мучались с уже нерабочим из svn.

Потом появился мавен и maven-idea-plugin, стало возможно создавать воркспейс из мавен проекта. Потом появился плагин «Maven Integration»: интеграция мавена и IDEA, стало возможно открывать сразу мавен проект.

В начале 2010 года у меня была пара проектов примерно с 20 модулями каждый, и я тратил немного времени на их настройку. Сейчас у меня 20 проектов, в каждом около 50 модулей, у каждого проекта есть несколько бранчей и тэгов. Было очень трудно создавать и переключаться между воркспейсами. Другим программистам тоже было трудно, они тоже тратили много времени на создание и настройку воркспейса. Было ощущение, что программисты совсем не тем занимались.
Читать дальше →

Java 7 для Mac OS X: будущее за OpenJDK

Время на прочтение2 мин
Охват и читатели3.7K
Oracle и Apple только что выпустили следующий пресс-релиз:

Редвуд Шорс, Купертино, Калифорния, 12 ноября 2010

Сегодня Oracle и Apple объявили об открытии проекта по разработке OpenJDK для Mac OS X. Apple будет создавать большинство ключевых компонентов, инструментов и технологий, которые необходимы для реализации Java SE 7 на Mac OS X, включая 32-битную и 64-битную виртуальную мащину на основе HotSpot, библиотеки классов, сетевой стек и основу для нового графического клиента. OpenJDK будет доступна разработчикам свободного программного обеспечения, так что они смогут получить доступ к проекту и участвовать в нем.
Читать дальше →

IDEA: обмен опытом в jabber-конференции

Время на прочтение1 мин
Охват и читатели839
Ура! Вышла IDEA 10. Прекрасный инструмент. Спасибо команде разработчиков, делающих его еще более … (впишите сами). Но одновременно, IDEA — сложный инструмент. Для некоторых ­— еще и непривычный. Для обмена опытом работы в IDEA, поддержки новичков создана русскоязычная jabber-конференция intellij-idea@conference.jabber.ru
Приглашаю всех, имеющих опыт разработки под Intellij IDEA. Надеюсь, русскоязычные разработчики когда-нибудь тоже присоединяться :)

IntelliJ IDEA 10

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


Сегодня состоялся релиз новой версии IntelliJ IDEA 10 — самой умной среды разработки для Java. Основной акцент при разработке «десятки» был сделан на удобстве использования и производительности продукта. Из конкретных улучшений в этой области — новый автоматический code completion, возможность выносить окна редактора на второй монитор, вдвое ускоренное построение индексов и многое другое.

Конечно же, прибавилось и более крупных фич — таких как поддержка Mercurial, AspectJ, новых технологий Spring, редактор таблиц баз данных и т.д.

IntelliJ IDEA выпускается в двух версиях — коммерческая Ultimate и опен-сорсная Community Edition. В «десятке» из коммерческой версии в бесплатную переехали два больших плагина — поддержка Android, а также менеджмент задач и интеграция с issue trackers.

Ознакомиться с полным списком нововведений и скачать IntelliJ IDEA 10 можно на сайте jetbrains.com.

Генерация кода с jamon

Время на прочтение8 мин
Охват и читатели3.3K
Генерация кода

В нескольких проектах на разных местах работы я использовал генерацию кода. Зачем?
Чаще всего этим достигается сохранение правильности кода при изменениях. Например при добавлении еще одного типа данных в модель предметной области надо добавить класс на Яве, класс на С ++, код преобразования между ними и значение в Enum. Без генерации кода и работы ручками много, и всегда есть шанс что то из этого забыть.
Иногда reflection может быть заменой генерации кода, но даже тогда такой код будет менее читабельный чем шаблон для генерации.
Исходная информация для генерации кода может выглядеть очень по разному — это может быть Ява класс, у которого через reflection считываем свойства и генерим класс на C++, или csv файл, или XML, или еще что нибудь.

Попробую рассказать как я генерирую код в maven проектах с помощью фреймворка jamon.

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

Как обновить статус в Facebook, LinkedIn & Twitter при помощи spring-social

Время на прочтение9 мин
Охват и читатели6.7K
Не так давно я уже писал о новом проекте SpringSource: spring-social. Сегодня я хочу рассказать (вернее показать на примере) как можно данную библиотеку использовать. В качестве примера используется простейшее приложение, которое позволяет залогиниться во все три сервиса и обновлять статус одновременно во всех трех (осторожно — под катом много букв и кода и совсем нет картинок).
imageimageimageimage
Читать дальше →

Разговор с Brian Goetz о будущем Java

Время на прочтение5 мин
Охват и читатели6.6K
Два дня назад на конференции в Нидерландах мне посчастливилось поговорить с Brian Goetz, делавшим доклады о будущем Java, Project Coin, параллелизме, Fork-Join и лямбда-выражениях. Я задал ему вопросы о поглощении Sun Oracle-ом, мобильной Java и о том, что за давление идёт в прессе на Oracle в последнее время. Ниже — краткое описание того, что я узнал в этот интересный день.
Читать дальше →

Два в одном: spring-mobile & spring-android

Время на прочтение2 мин
Охват и читатели11K
Продолжая тему новых проектов SpringSource хотел бы в одном посте рассказать сразу о двух новых проектах: Spring Mobile & Spring Android.
image
Читать дальше →

Задача по Java Core

Время на прочтение1 мин
Охват и читатели8.8K
В продолжение к хорошей задаче, опубликованной не так давно на хабре, хотелось бы предложить ещё одну задачу.
Смысл, конечно, именно в решении задачи в голове, не используя спец. редакторы и компилятор.

Дан код на Java:
public class HelloWorld {
  public static void main(String... args) {
    http://habrahabr.ru;
    System.out.println("Hello World!");
  }
}


Вопрос: скомпилируется или нет?
Читать дальше →

Интеграция с «Социальными» сервисами при помощи Spring-Social

Время на прочтение2 мин
Охват и читатели6.9K
image
Не так давно копилка проектов SpringSource пополнилась еще одним проектом — Spring-Social, который призван упростить создание приложений интегрированных с различными социальными сетями. Данный проект никак не засветился на Habr-е, попробую восполнить этот пробел.
Читать дальше →

[Перевод] Java Best Practices. Преобразование Char в Byte и обратно

Время на прочтение4 мин
Охват и читатели37K
Сайт Java Code Geeks изредка публикует посты в серии Java Best Practices — проверенные на production решения. Получив разрешение от автора, перевёл один из постов. Дальше — больше.

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

[Перевод] Разделение JVM на платную/бесплатную версии: истерия, начавшаяся с поста в твиттере

Время на прочтение2 мин
Охват и читатели1.1K
В продолжение топика Oracle намеревается разделить JVM На платную/бесплатную версии

pelegri, редактор известнейшего блога о Java и иже — The Aquarium, отписался про ту истерии, которая началась после заявления представителя Oracle относительно Premium-версии JVM.

Мой вольный перевод со вставками необходимых ссылок ниже.

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

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

C Java в Mac OS X не все так печально

Время на прочтение1 мин
Охват и читатели7.7K
картинка, чтобы не было скучноНе так давно стало известно, что Apple прекращает развитие своей собственной версии JVM. Это событие вызвало широкий резонанс, и было воспринято большинством как однозначный признак заката Java. Да, у платформы сейчас не лучшие времена, разработка новой версии идет не так быстро, как хотелось бы, но умирать еще рано.
И этому появилось подтверждение, снова от Apple: компания активно подключается к проекту OpenJDK c целью создания полноценной открытой Java-машины для Mac OS X.
Если вспомнить, что IBM также подключилась к проекту (покинув Apache Harmony), то можно предположить, что все происходящее — вовсе не закат, а новая жизнь для Java. Ведь JVM прекрасно существует под Windows, не будучи разработанной Microsoft и включенной в поставку системы.

5 вещей, которых вы не знали о многопоточности

Время на прочтение10 мин
Охват и читатели297K
Хоть от многопоточности и библиотек, которые её поддерживают, отказываются немногие Java-программисты, но тех, кто нашёл время изучить вопрос в глубину ещё меньше. Вместо этого мы узнаём о потоках только столько, сколько нам требуется для конкретной задачи, добавляя новые приёмы в свой инструментарий лишь тогда, когда это необходимо. Так можно создавать и запускать достойные приложения, но можно делать и лучше. Понимание особенностей компилятора и виртуальной машины Java поможет вам писать более эффективный, производительный код.

В этом выпуске серии «5 вещей …», я представлю некоторые из тонких аспектов многопоточного программирования, в том числе synchronized-методы, volatile переменные и атомарные классы. Речь пойдет в особенности о том, как некоторые из этих конструкций взаимодействуют с JVM и Java-компилятором, и как различные взаимодействия могут повлиять на производительность приложений.
Читать дальше →

Первый взгляд на Activiti

Время на прочтение4 мин
Охват и читатели22K
activiti
На этой неделе пришлось столкнуться с Activiti — новым workflow движком для Java, и так как тема эта еще не обсуждалась на Хабре, решил поделиться впечатлениями. Сразу скажу — впечатления немного печальные, но об этом под катом

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

Gradle: Tasks Are Code

Время на прочтение5 мин
Охват и читатели48K
В предыдущем топике я постарался вкратце рассказать, что же такое Gradle и на каких идеях он построен. Также была освещена концепция Source Sets и функциональность, с ней связанная.

Теперь я хотел бы рассказать о том, чем Gradle зацепил лично меня. Речь пойдёт о способах работы с задачами. Задача в Gradle — близкий аналог Ant Target. И, чтобы не путаться в терминах, под задачей (или task) далее по тексту всегда будет подразумеваться Gradle Task. Если речь будет идти о сущности из Ant, то это будет указано явно: Ant task.

Так вот, задачи в Gradle создаются при помощи специального dsl (domain specific language) на основе Groovy. И возможности, которые этот dsl предоставлет, на мой взгляд, почти безграничны в сравнении с ant или maven.

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

Gradle: Better Way To Build

Время на прочтение5 мин
Охват и читатели115K
Ни один проект с использованием платформы Java (и не только) не обходится без инструментов сборки (если только это не «Hello, world!»). Рано или поздно, но собирать дистрибутив руками надоедает. Да и компилировать из консоли было бы неплохо, если в проекте используется несколько разных IDE. А перед сборкой дистрибутива было бы здорово проставить номер версии в его имени. И unit тесты прогнать — не зря же Kent Beck книжки пишет. А там и Continues Integration на горизонте маячит. И здорово было бы научить CI сервер это все делать самостоятельно. Одним словом, есть уйма задач.

Раз есть задачи, то есть и решения. Думаю, большинство разработчиков хоть раз, но сталкивались с Ant. Очень многие используют Maven. Есть другие, не такие распространённые инструменты: GAnt, Buildr, и др. Каждый из них обладает набором своих плюсов и минусов, но сегодня я хочу представить вам кое-что новенькое. Gradle.
Читать дальше →

Почему Gradle?

Время на прочтение7 мин
Охват и читатели103K
Если вы еще не знаете, что такое Gradle, то о нём можно почитать в предыдущих двух обзорах:
  1. Gradle: Better Way To Build
  2. Gradle: Tasks Are Code

Не так давно c Maven на Gradle была переведена сборка Hibernate Core. На что информационное сообщество отреагировало неоднозначно. Я хочу представить вашему вниманию перевод статьи, посвященной миграции сборки Hibernate. В статье раскрываются причины принятия такого решения, описываются преимущества Gradle и проблемы с Maven2. Дальнейшее повествование ведётся от лица Steve Ebersole.
Читать дальше →

Джеймс Гослинг: почему Applе отказывается от JVM

Время на прочтение2 мин
Охват и читатели2.7K
Как известно, несколько дней назад компания Apple фактически отказалась от дальнейшей разработки Apple JVM. Прошло более десяти лет с тех пор как Стив Джобс со сцены конференции JavaOne 2000 заявлял, что сделает «лучшую на планете платформу для Java прямо из коробки».

В далёком 2000 году Sun занимала 150-е место в списке крупнейших корпораций Америки, опережая Oracle и Apple, не говоря уже о стартапе Google, который вошёл в список Fortune 500 только в 2005 году.

Что и говорить, времена изменились.
Читать дальше →

Вклад авторов