среда, 25 ноября 2009 г.

Что нового в JDK 7 - Часть первая

На днях завершилась конференция Devoxx.com, где Mark Reinhold официально объявил - замыкания (closures) будут в JDK 7. Для многих замыкания были очень важным нововведением - с одной стороны они должны значительно расширить выразительность языка и привнести некоторую долю функционального программирования в Java. В вот с другой стороны это усложнит язык - и не все разработчики смогут в полной мере использовать эти возможности.

Но замыкания это отдельная тема для отдельной статьи, сейчас могу предложить только оригинальную статью Closures in JDK 7. Я постараюсь написать об этом позже.

А теперь вернемся к теме - А что-же еще нового в JDK 7, которая должна выйти в сентябре 2010 года?

Намнем с 7ми нововедений в языке, которые были реализованы в рамках проекта Coin (это перевод статьи New language features in Java 7):

вторник, 17 ноября 2009 г.

Что почитать Java разработчику - Блог №1 - Geek Explains

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

Язык: английский
Автор: An Indian, a Software Engineer, a Web Addict, and a Blogger.
Тематика: Различные тонкие моменты и особенности Java
Частота обновления: Несколько раз в месяц
Оценка: 10/10

Практически уникальный блог, выделяется на фоне других именно своей тематикой. Автор редко пишет о новых технологиях, конференциях или теоретических вещах. Основной материал блога составляют рассказы о ситуациях в Java с которыми мы регулярно сталкиваемся на работе, но обычно откладываем на потом или просто забиваем. Например:

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

Что нового будет в Maven 3

Apache Maven — фреймворк, сборщик программных проектов, специфицированных на XML-языке POM (en).

Управление зависимостями является одной из самых сильных сторон этого фреймворка. В отличие от Ant, сборка проекта в maven описывается декларативно а не императивно (командами). В Maven большинство операций стандартизировано, а большинство нестандартных задач решаются с помощью плагинов.

Сейчас Maven находится в стадии активной разработки. Стабильной версией является вертка 2.2, в разработке находится версия 3.

Одной из главных особенностей версии 3 будет полная обратная совместимость с проектными файлами написанными для версии 2.x. Хорошо это или плохо - сложно сказать. С одной стороны это значительно ускорит миграцию старых пользователей на новую версию, с другой требует больших трудозатрат от разработчиков. Для облегчения жизни при поддержании совместимости разработчики написали большое количество Unit Testов, покрывающих большую часть функционала. Совместимы будут не только файлы сборки, но и плагины.

Еще одной интересной особенностью в 3ей версии будет так называемый Polyglot Maven. Этот подпроект направлен на значительное расширение возможностей при написании и интерпритации pom файлов. Например теперь pom-файлы можно писать с использованием Groovy. При этом это не просто еще один вариант записи нотации - в таком pom файле можно использовать функции языка Groovy для манипуляции данными. Создана специальная утилита, позволяющая конвертировать polyglot pom в привычное xml описание. Мне пока сложно представить где эта возможность найдет свое применение, но она явно позволит вносить больше динамики в файлы сборки. Например извлечение параметров сборки из БД или других источников.

Embedded maven - Maven уже перерос время когда он был внешним средством для сборки проекта. Сейчас Maven уже интегрирован в Eclipse с помощью плагина m2eclipse, и как мне известно в NetBeans используют версию 3 для реализации поддержки Maven. При этом главной проблемой стала неподготовленность API maven для использования в качестве библиотеки. Оно было достаточно сложным и запутанным. В версии 3 этому уделили отдельное внимание. Вместе с полной обратной совместимостью это дало неожиданный эффект - уже сейчас плагины интеграции maven в основные IDE используют 3ью версию как встроенную библиотеку. Но при этом API еще находится в стадии активной разработки и не подвергалось заморозке.

Оптимизация производительности - тут все понятно. Оптимизации потребления CPU, дисковых операций, кеширования. В результате обещают повышение скорости сборки на 50-200%.

Maven Shell - специальный вариант работы Maven, значительно расширяющий обычную CLI версию. Обещают что это будет значительно удобнее и производительнее чем обычные сборки из командной строки.

Ну и самое главное - вместе с выходом 3.0 GA нам обещают полностью обновленную книгу: Maven: The Definitive Guide.

Если у кого-то возникло желание уже сейчас испробовать Maven 3, то для вас готова свежая 3ья альфа. Разработчики призывают к активному тестированию и обещают оперативно реагировать на отзывы, отчеты об ошибках и патчи.

ps: В основе статьи лежит: Maven 3.0-alpha-3 Released!

понедельник, 16 ноября 2009 г.

Виды сертификации Java

Сертификация - это один из способов документального подтверждения вашего опыта в той или иной области.

Для Java существует несколько основных направлений сертификации:
       
  • От компании SUN - на знание самого языка и технологий
  •    
  • От компаний Oracle, IBM, RedHat - на знание конкретного стека технологий, разрабатываемых этими компаниями (например SOA Fundamentals от IBM или JBoss jBPM от RedHat)
  •    
  • От сторонних компаний - на знание конкретных продуктов или технологий .


    И полный список этих сертификаций очень большой, но нужны-ли нам эти все сертификаты, а если нужны - с чего начать?


    Что такое сертификация?


    Сертификация - это подтверждение фаших профессиональных знаний и опыта в той или иной области. Формы проведения сертификации могут быть различными:
         
    • Удаленный экзамен
    •    
    • Тестирование
    •    
    • Практическое задание
    •    
    • Личное собеседование
    •    
    • Теоретические вопросы

    Также сертифкация может состоять из нескольких этапов или заданий. Обычно сертификации соответствуют профессиональному развитию человека - начиная с самых основ языка или технологии и заканчивая экспертным уровнем понимания архитектуры решения. Такие сертификации расчитаны на прохождение в течении нескольких лет.
    Для чего это нужно?