Показаны сообщения с ярлыком Google. Показать все сообщения
Показаны сообщения с ярлыком Google. Показать все сообщения

пятница, 24 июня 2011 г.

Eclipse Indigo: Пять причин обратить внимание на ECF


Поздравляю всех читателей с официальным выходом Eclipse 3.7 Indigo. Здесь камрад James Sugrue написал статью на JavaLobby - Eclipse Indigo Highlights: Five Reasons to Check Out ECF. Позволю себе перевести ее на русский язык.

Eclipse Communication Framework [1] - традиционный участник Eclipse release trains (перевод "поездов релизов Eclipse" мне как-то не очень нравится, однако термин "поезд" применительно к релизу ПО меня забавляет уже третий год) - непрерывно добавляет новое в свой впечатляющий список возможностей. Данный год не стал исключением - в релиз Eclipse Indigo включен ECF 3.5. В данной статье я сосредоточусь на пяти ключевых возможностях новой версии.

пятница, 14 мая 2010 г.

Знакомимся: EclipseLabs - новая инициатива от Eclipse Foundation и Google


Eclipse и Google анонсировали новую инициативу под названием EclipseLabs. Давайте познакомимся с ней подробнее.



Известно, что сообщество разработчиков для платформы Eclipse создало огромное количество как коммерческих, так и плагинов с открытым исходным кодом. В мире открытых исходников существует два пути создания проекта: подать заявку на официальный Eclipse-проект, который будет размещаться на сайте eclipse.org или создать проект на существующем сервере, предоставляющем хостинг проектов с открытым кодом, таком как Google Code, SourceForge или Codehaus. Создать проект на хостинге Eclipse сложно - нужно пройти довольно нудный IP-процесс. В то же время, есть большая вероятность, что проект на том же Google Code никто не заметит.

Теперь существует еще один способ, объединяющий преимущества двух вышеописанных. Можно создать проект на Google Code без необходимости проходить IP-процесс, но в то же время видимый всеми, интересующимися платформой Eclipse или ищущими плагин под эту замечательную IDE. Данный способ прост - разместить проект в специализированном репозитории Eclipse-проектов - Eclipse Labs.

воскресенье, 28 февраля 2010 г.

Особенности создания и подвижения блога программиста


Одной из главных особенностей профессии программиста является постоянная потребность в новой и актуальной информации. Основным источником такой информации в последнее время является профессиональное сообщество, представленное прежде всего в блогосфере. Как разработчики конкретных технологий, так и их активные пользователи и евангелисты (это слово никак не связано ни с Ветхим ни с Новым заветом, а обозначает просто проповедника, то есть сотрудника компании, которому платят за рекламу той или иной технологии) часто ведут профессиональные блоги, в которых делятся со своими читателями сроками выхода обновлений, особенностями решения каких-то вопросов и проблем, производят сравнение технологий, приводят статистику использования и в конце-концов просто делятся своим мнением. И, несмотря на то, что большинство программистов - интраверты, таких блогов с каждым днем становится все больше и больше. Предположим, что вы тоже хотите присоединиться к сообществу программистов-блоггеров. С целью помочь вам в этом и написана данная статья.

вторник, 5 января 2010 г.

Первые впечатления от Android и Samsung i5700 (Spica)


Прошли праздники (хотя, у кого - как, а у нас еще 5 дней каникул) и Суровый челябинский программист стал счастливым обладателем телефона Samsung i5700 на базе замечательной операционной системы Android 1.5, о чем собственно и хочется поговорить.

Сначала, почему Android? Прежде всего потому что это - открытая и динамично развивающаяся платформа. Причем развивается как сама платформа (к весне Samsung обещает обновления для i5700 на Android 2.0), так и появляются новые приложения под нее. Во-вторых, основным системным языком является Java, которым я довольно уверенно владею и который мне нравится, особенно по сравнению со всякими плюсами, а особенно - с урезаными версиями этих плюсов, использующимися в Symbian. В-третьих, наличие единого репозитория для приложений - Android Market, доступ к которому для России уже открыт (правда пока только к бесплатным программам, которых, впрочем, очень много).



Теперь пару слов об аппарате. Вообще, долгие годы я не доверял телефонам от Samsung, несмотря на то, что бытовая техника и ноутбуки у них получаются очень даже ничего. Но основные проблемы у таких телефонов заключались больше в используемом ПО, нежели в железе. В данном же случае мы имеем ПО на базе сторонней операционной системы - Android, поэтому выбор Samsung'а считаю оправданым, тем более что аппарт довольно дешев и при этом обладает большими возможностями.

пятница, 9 мая 2008 г.

Развивая тему Guice: прикручиваем Velocity с помощью Guice.


Данный пост написан не с целью развития холивара на тему, что лучше Velocity или JSP, но здесь я хочу продемонстрировать как можно подключать такой удобный шаблонный движок, как Velocity к приложению, построенному на базе Guice.

О том, что такое Velocity и многих аспектах его использования можно почитать на форуме программистов и конечно же официальной странице проекта.

пятница, 2 мая 2008 г.

Строим сервлеты на базе Guice


Компания google - основной разработчик IoC контейнера GUICE позиционирует его как легковесное решение для построения Java-приложений различных типов, в том числе и веб-приложений. Для этого существует пакет com.google.inject.servlet, о котором мы сегодня и поговорим.

Прежде всего хочу отметить тот факт, что снапшот guice-servlet в SVN и пакет, включенный в guice 1.0 отличаются - версия в SVN имеет более расширенный функционал. В частности - базовый сервлет, обеспечивающий инъекцию зависимостей и контекст-листенер, обеспечивающий подключение Guice.Injector. Поэтому для примеров в данном посте я использовал версию из SVN.

среда, 23 апреля 2008 г.

Пишем плагинную шину с использованием Guice


Сейчас очень популярны так называемые расширяемые приложения, ведь согласитесь - это очень удобно, когда пользователь может изменить возможности Вашего приложения не влезая в его ядро (что впрочем не отменяет пользу опен-сорца). Но когда первый раз создаешь приложение, расширяемое с помощью плагинов возникает множество проблем и вопросов как при проектировании, так и при реализации с использованием той или иной технологии.

Сегодня мы поговорим о реализации примитивной плагинной шины с помощью IoC-контейнера от гугл - Guice. Реализация плагинной шины с помощью IoC-контейнера дает нам все преимущества паттерна Inversion Of Control. Мы легко можем реализовывать с использованием этого паттерна как базовые какие-то механизмы (API приложения, доступное плагинам), так и сами плагины, что очень удобно. Так-же использование Guice облегчает сам процесс подключения плагинов к системе, как именно - об этом поговорим чуть позже.

воскресенье, 6 апреля 2008 г.

Знакомимся: Guice - IoC контейнер от Google


Перед любым проектировщиком и/или разработчиком более-менее сложного приложения встает вопрос: "Как уменьшить связность кода?" Собственно, уже давно ни для кого не секрет, что излишняя связность кода приложения - верный путь к увеличению энтропии и сложности поддержки. Особенно, если код криво написан, что, к сожалению, не редкость.

Одним из наиболее популярных (на мой взгляд - лучших) способов уменьшения связности кода является использование паттерна Inversion Of Control (Инверсия управления). Очень часто данный паттерн описывают основным правилом Голливуда: "не звони мне, я сам тебе позвоню". При всей философичности данного описания оно является правильным.

Без философии же данный паттерн описывается следующим образом: взаимодействовать должны не реализации (классы), а абстракции (интерфейсы). Не должно быть такого (без фанатизма конечно же), когда класс зависит от класса. Классы должны зависить от интерфейсов. Возникает вопрос - когда создавать инстансы интерфейсов, ведь понятно, что в рантайме интерфейсов не будет, а будут классы. Так вот, вся прелесть IoC проявляется именно в этом. Вы в одном месте описываете правила, по которым будут созданы объекты для реализации интерфейсов. Остальное за вас сделает используемая IoC-подсистема, в частности - IoC-контейнер.