loading...
привет, чуваки.
вопрос за инструментарий.
тут у меня возник проект с SOAP, REST/JS, ORM и немножко вэба с логами, аудитом и правами доступа и так как мне это для души, то я сам же выбираю что, как и зачем.
загвоздка в том, что я родом из микрософтовских краёв, а эту штуку для разнообразия решил сделать под jvm. ну и начал я копать ковырять, но для джэйвы есть столько всего, что даже как-то и непонятно.
пока я остановился на Spring для среды и его AOP логгинга, аудита и доступа, Hibernate, Apache CXF для сервисов.
Но я честно, как впервые из лесу в магазин игрушек – а вдруг это всё не правильно?
Ну и наверное ещё maven. Меня он пугает и я пару раз просто не дождался когда он закончит своё волшебство. Таки взять себя в руки и встретить его лицом к лицу или ну его?
И это. Не холивору для а правда интересно.
Админы и сочувствующие посетители hardblog.net посчитали злободневным: про тачки и их ремонт
я не разработчик 🙁 но apache tuscany, apache openJPA
ява для души лол, возми рельсы или джангу, или что нибудь на эрланге если совсем для души.
Maven надо. Если в Яве и есть частичка прекрасного, то это вот она. Ставь его плагином в Эклипс, тогда лицом к лицу встречать даже не придется, он сам все сделает. AOP по-моему нахрен. Spring OK. Hibernate OK.
Подозрительно только что я с явой уже лет 10 как особо не связан, а слова эти знаю. Наверняка за 10 лет что-нибудь более интересное или удобное появилось. Ну там, Play какой-нибудь штоле
: ХОЛИВОООР!!!
Только Scheme, только хардкор!
: я специально написал, что jvm, что к счастью не обозначает жэйву. ну и мне тут чувакам показывать будет нужно, поэтому эрланг будет когда будет совсем для души и не будет интересовать результат.
: блин. там же уже под шесть сотен артефактов в стандартной установке. буду смотреть, спасибо.
: ну возми тогда хотябы скалу, хотя под жвм можно и жрельсы через жруби запустить и джангу через жопитон.
: а кто? и почему ЖПА а не хибернейт, например?
: я не про язык сейчас. я про, скажем так, технологии.
то есть вот фронтенд будет простой MVC на spring’e, может я совсем ничего не понимаю и только Lift (это я с потолка придумал). и на самом деле фронтенд довольно маленькая часть.
и у скалы настолько глючный плагин к эклипсе, что я однажды даже устал. или мне не повезло.
: хибернейт ширше, зато openJPA – имплементация стандарта JPA, которая под Java EE может быть изменена на любую другую
А ты вообще уверен что тебе нужен прям ORM?
: Есть ещё более современные альтернативы типа ivy и gradle. Это всё конечно дело привычки и вкусовщина, но для более-менее стандартных проектов мне кажется они полаконичнее. Оба используют мавеновские репозитории, есличо.
Алсо вотсюда ещё посмотри. Очень хвалят.
: могу придумать кучу аргументов.
во-первых, я ими полноценно не пользовался. этого уже, в принципе, достаточно 😉
во-вторых, в любом проекте с бд так или иначе есть момент маппинга из записей в объекты. и я понимаю, что сделать запрос и потом вручную перенести из строки в поля – это самый быстрый способ, но я не сильно фанатею от сиквеля(особенно в коде) и неоднократно видел, что даже в прокетах с требованием к производительности люди придумывают автоматизацию для маппинга ибо задрачивает однотипный код строчить. кстати, не слышал о проектах, генерящих монотонные DAO классы по тем же JPA аттрибутам которые потом исходниками добавляешь в проект.
в третьих, для этого проекта условие не привязываться к одному провайдеру бд, то есть если и сиквель, то ванильный.
и в четвёртых, опять же проектноспецифическое, я ожидаю, что чтений будет минимум на порядок-два больше, чем записей, так что уже готовое кеширование будет мне только на руку. хотя сдаётся мне это ситуация 95% проектов.
: прикольно, очень похоже на asp.mvc хотя понятное дело, что ноги у микрософта ростут из чужих задниц.
все правильно выбрал, только я бы посоветовал использовать для веб-сервисов JAX-WS. там есть еще JAX-RS для RESTful веб-сервисов. периодически приходится делать SOAP-морды для интеграции, делаю на JAX-WS.
под это все есть отличные плагины под maven, которые тебе соберут и задеплоят готовую сборку куда укажешь. плюс есть тулза в поставке JDK: wsgen и wsimport, что значительно облегчает работу с созданием веб-сервисов и клиентов к ним. могу ошибаться, но по-моему ходят слухи о включении JAX-WS в стандартную поставку JDK.
: что-то у меня пока путаница в голове. JAX-WS это более высокий уровень, для исполнения которого нужен стек в виде metro или того же CXF?
(посмотрел конфиги, похоже как раз jax-ws на cxf у меня и есть. как всё многоуровнево )
: с CXF не сталкивался.
если мы говорим про исполнение в ключе hibernate – это имплементация JPA, то JAX-WS имплементируется сервлетами и может работать на обычном сервлет-контейнере(jetty, tomcat). т.е. не нужно тянуть кучу зависемостей и metro это.
может быть, я что-то не так понял, сильно не углублялся.
: ну вот я как раз тоже. но могу сказать, что в эклипсе выбрал фасет про веб сервисы и та мне уже подтянула каких-то 20-30 зависимостей. а так, да, именно в голом томкате. потому что у меня ноутбук слабенький и я боюсь вторую эклипсу запускать – порвётся.
: настоятельно рекомендую изучить получше maven. очень удобная вещь и 20-30 зависимостей буду управляемыми. вообще, организация проектов по maven поначалу кажется какой-то ерундой (особенно плагины, фазы, сборки дистрибуций и т.д.), но если поднатореть, то получается мега-удобно! опять же, автосборка. конечно сборщики сейчас многое умеют, но все равно, при наличии правильного pom’a все значительно упрощается. репозиторий артефактов, например. в CVS хранить зависимости не надо. если интересно, то можешь посмотретьмодуль моего проекта, там как раз есть hibernate, jax-ws и все собирается maven.
: да, похоже нужно.
просто когда я в прошлый раз попытался его использовать, то как-то было мучительно – он всё время что-то тянул из интернета. то есть не просто когда я добавлял зависимость а при каждой компиляции. что-то я делал совсем не правильно 😉
: а на счёт AOP – не могу сказать. не наступал, но пока идея иметь транзакции, логгинг, аудит и права доступа не внутри каждого метода а один раз и декларативно в другом месте меня очень привлекает.
: Из рельсовых задниц, я бы сказал 🙂
: он из интернета тянет, если нет в локальном репозитории. если есть, то он тянет из него)
: эт-то понятно. буду смотреть, да.