25 июля 2012 г.

Создание и работа с RESTful web service в Groovy/Grails

Программисты всегда хотели упростить себе жизнь. Одна парадигма сменялась другой, появлялись новые языки, новые подходы. В мире веб-разработки произошли большие изменения - появились такие фреймворки, как Ruby on Rails, Django. И если еще можно вести долгие споры что же использовать для создания сайтов (PHP, RoR, Lift), то для веб сервисов в enterprise традиционно используется Java. Оглянитесь, не смотря на возможность реализации веб сервисов на руби или питоне или любом другом вашем любимом языке, enterprise-мир эту возможность не использует! В первую очередь это связано с проблемой интеграции данных сервисов в существующее java-окружение. К счастью существуют языки на 100% совместимые с java, которые могут помочь нам, простым скромым программистам, уменьшить рутину и оставить для разработки только самые интересные части системы. Одним из этих языков является Groovy. Сегодня я хочу рассказать как с помощью Groovy и Grails написать простенький веб-сервис. Кто знает, возможно вам удастся убедить вашего начальника, что время быстрой разарботки уже пришло?

21 марта 2012 г.

Ruby глазами Java-программиста

Программист должен быть любознательным и всегда с радостью воспринимать что-то новое. Именно поэтому я решил помимо знакомого мне Grails посмотреть на тот фреймворк, который был вдохновителем для его создания - Ruby on Rails. Но перед тем, как углубляться в фреймоврк было бы неплохо знать язык, который он использует. Сам по себе язык Ruby крайне простой, но мне, как C/Java программисту, он первое время показался просто мозговыносящим. Но если не держаться за старый опыт и открыться простоте Ruby то тогда всё получится :) В этой заметке я бы хотел привести моменты, которые меня особенно удивили.

29 февраля 2012 г.

Spring Web Flow и Grails 2

Предположим бизнесс-процесс вашего приложения требует от пользователя последовательности действий, которые он должен совершить. К примеру, в интернет-магазинах мы не можем посмотреть страницу благодарности за покупку не сделав этой самой покупки. Или мы не можем посмотреть какой-либо отчет, не указав критерии данных, которые должны войти в отчет. Для простых действий всё довольно тривиально, но если шагов перед завершением процесса должно быть множество, то мы рискуем превратить наш код в вермишель из хитросплетений вызовов и проверок. Для того чтобы этого избежать существует замечательный фреймворк - Spring Web Flow. И в этой заметке я приведу пример его использования в Grails 2.0.1.

7 февраля 2012 г.

Проксирование запросов БД

Недавно меня попросили написать приложение, которое бы проксировало запросы к БД и возвращало результат выполнения этих запросов клиенту. Не знаю стоял ли за этой просьбой здравый смысл - возможно кто-то хотел скрыть от клиентских приложений параметры БД, а возможно просто не осилил работу с БД в своем языка (странно, да?). Но задача есть задача и вооружившись Java, Spring и Apache CXF за пару часов я набросал простенький веб-сервис для запросов. О том как я это сделал и будет данная статья.

2 февраля 2012 г.

Инициализация double brace

Во всех языках программирования существуют красивые, лаконичные и простые конструкции, составляющие основу языка, а есть "хаки", глядя на которые невольно вспоминаешь собеседования и вопросы вида "вот вам 5 строк кода и 10 минут на то, чтобы объяснить как это вообще работает". Об одной из таких конструкций, а именно об инициализации double brace я и хотел бы сегодня рассказать.

24 января 2012 г.

Ссылки в Java

Все знают что такое жесткая (strong) ссылка. Мы сталкиваемся с ними ежедневно. Например, этот код:
StringBuffer buffer = new StringBuffer();
создаст экземпляр класса StringBuffer и поместит жесткую ссылку на этот экземпляр в переменную buffer. Что же заставляет нас называть такую ссылку жесткой? И какие они еще бывают? Ответы - под катом.

23 января 2012 г.

Подготовка к собеседованию на java-программиста-2 (уровень Middle)

Продолжаем популярную тему собеседований. На этот раз мне попалась компания, в которой большое внмание уделяется многопоточности. Под катом вы найдете 15 вопросов, которые были мне заданы на должность Staff Java developer.