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

Java с высоты .Net или наоборот. Прелюдия.

Осознание того что пора менять место работы пришло неожиданно. Просто раз и нашелся новый работодатель. Все как всегда, лучше ЗП, лучше условия, хорошая должность и в придачу к этому Java. К тому же я переходил на новое место работы с парой своих друзей. Работаем с ними уже почти два года. И почти все время на .Net. И взяли нас троих под новый эволюционный виток старого продукта.

На джаву хотел посмотреть очень давно. Особенно из-за того что все говорят, что .Net взял в себя все лучшее от джавы. Вот так вот и подписал я себе приговор.


Говоря о переходе на джаву нельзя ни сказать о проекте, который разрабатывается на этой платформе. Проект очень большой и написано уже очень много. Около 1000 классов, огромная БД. Проект - это билинговая система в основном. Но есть еще и задачи связанные с документооборотом. Приложение представляет собой обычный клиент к БД. Архитектура отсутствует в принципе, доступ к БД идет отовсюду, из форм, из шаблонов отчетов... Безопасность не рассматривалась. При этом основная цель это максимально открытая архитектура и само приложение. В общем жесть, а не проект. Это я все про старую версию приложения. Что же хотят в новой? Все тоже самое плюс: распределенность, секурность, открытость на уровне алгоритмов, автоматизированное тестирование, скриптовый движок тестов, движок отчетов эксель (возможность построение кросстабов (PivotTable), и ужаснейшего вида отчетов) основанный исключительно на шаблонах, все компоненты бесплатны. Это не все, все перечислять долго...

В серии статей, которую я хочу назвать "Java с высоты .Net или наоборот", я расскажу о тех проблемах, которые у меня возникают при переходе на эту технологию. Может быть будет кому то полезно то что я напишу, ну и мне может быть кто-нибудь чего-нибудь подскажет. Основное требование, которое я выдвигаю к статьям это:
1. Пишу сразу, без редактирования
2. Пишу не более 30 минут
3. Пишу как говорю
Я не являюсь гуру Java, но неплохо знаком с dotnet. Все всегда буду сравнивать с технологиями от Microsoft. Так что если что, не придирайтесь к изложению. Если что то не будет понятно, спрашивайте.

Итак первое про что я хочу рассказать это IDE. На текущий момент существует две нормальные бесплатные IDE. Это Eclipse & NetBeans. Попробую их сравнить.

Чем хорош эклипс (поддерживается IBM, по крайней мере раньше), тем что практически все компании пишут именно под него плагины. Выбор плагинов огромен, покрытие функционала тоже. Это здорово и это ужасно. Довелось мне скачать исходники какого-то проекта, XWiki кажется, так мне потребовалось установить под эклипс несколько плагинов, чтобы СОБРАТЬ это приложение! Про то сколько мне пришлось докачать библиотек я молчу. Но если честно докачал это все плагин к сборщику Marven (этот сборщик есть в коробке с NetBeans). Этот сборщик настраивается таким образом, что он знает какие библиотеки нужны для работы приложения и знает с каких репозитариев их забирать. Это здорово конечно. Это удобно. Про то что для работы каких то приложений нужны огромные наборы других библиотек это конечно удручает, но корни этого в идеологии джавы. Про это я еще расскажу, но пока про IDE. Так вот почитав на форуме мне стало ясно что для того что бы эклипс стал просто ОТЛИЧНОЙ иде, требуется подключить определенное количество плагинов. Плагины, как я сказал, есть всякие. А мне понадобилось рисовать UML диаграммы. Ну что же, ноги в руки и ГО в гугл. Нашлось много разных плагинов. Почитал про разные, нашел нужный. Эклипс, как и нетбинс, позволяют устанавливать плагины, используя репозитарии плагинов. Делается это просто, есть пункт меню Install new software, где настраивается доступ к репозитарию и потом выводится список всех имеющихся в нем плагинов. Так я и сделал. Указал репозитарий, выбрал плагин и... Далее мне сказали какие еще плагины и библиотеки нужны для работы текущего плагина. И начались танцы с бубнами. Граф зависимостей впечатлял. Через полтора два часа я все таки запустил этот плагин, он мне не понравился и я пошел знакомится с NetBeans.

Вторая IDE это NetBeans. Поддерживается она компанией Sun. Она работает что называется из коробки. Мне понравился сразу возможность выбора дистрибутива, тут тебе и дистриб для веб разработки, мобильной разработки и разбивка по поддерживаемым языкам есть. Неплохо. Я выбрал дистрибутив для веб разработки. С ним поставляется сразу и сервер приложений (про них буду рассказывать очень много) Glassfish. Установил, бросается в глаза более дружелюбный и симпатичный интерфейс. Попробовал создать проект, попробовал создать веб сервис (то же пробовал делать и из под Eclipse, требовались новые библиотеки и плагины), система определенно работает из коробки. Решил поискать плагин для работы с UML. Нашел кажется два, первый официальный от Sun. Ставлю... Все заработало, прелесть. Хороший дизайнер UML, все что требуется есть и ReverseEnginering сразу. NetBeans похожа своей идеологией на VisualStudio, а она, я считаю, является эталоном.

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

Идеология джавы очень специфична, о ней я попробую рассказать в следующий раз, и сравню все это дело с .Net.

Комментариев нет:

Отправить комментарий