рекомендации по выбору нового стека веб-разработки

StackOverflow https://stackoverflow.com/questions/1621708

  •  06-07-2019
  •  | 
  •  

Вопрос

Я работаю в средней или небольшой команде (10 человек), разрабатывающей и поддерживающей несколько веб-корпоративных приложений.

У нас есть дюжина из них, построенных с помощью самодельного фреймворка с asp-classic, работающего против ms-sql server.

Мы оцениваем переход на новый стек разработки.

Мы бы хотели, чтобы это было открыто (бесплатно) и просто.

Я просматривал веб-фреймворки java, но все они кажутся чрезвычайно перегруженными для наших нужд (за возможным исключением http://www.playframework.org/, который я еще не мог изучить ...)

Мы думаем о переносе нашего собственного фреймворка на этот новый стек, а не о внедрении совершенно нового стека, о котором мы не знаем ...

до сих пор мы рассматривали следующие возможности

  • обычная java - jsp - jsf

  • groovy - gsp (вообще без граалей)

  • jruby (вообще без рельсов)

нам действительно комфортно работать с динамическими языками (ну, настолько динамичными, насколько может быть классический asp) и с компактным и понятным фреймворком...

Я не вижу маленьких и простых веб-фреймворков для java, подобных тем, что существуют для php или ruby...

Мне действительно нравится groovy, но я не вижу никаких веб-реализаций за пределами grails...Кроме того, языковая документация кажется не совсем полной (возможно, я ищу не в том месте).

php мог бы быть вариантом, но я думаю, что было бы трудно отстаивать его в моей текущей работе...

есть какой-нибудь другой вариант, совет, плюсы и минусы?

большое спасибо

-- редактировать

какая-нибудь связанная ссылка Кто-нибудь может порекомендовать простую платформу Java web-app framework?

Это было полезно?

Решение

Я не могу ничего рекомендовать, но настоятельно рекомендую вам рассмотреть эти вещи:

  • Быстрое развитие.По сути, вы хотите сохранить файл подкачки и перезагрузить его в браузере.Мгновенно!Это можно сделать, не соглашайтесь на длительное время развертывания.
  • Простые, читаемые текстовые файлы!
  • Условное кодирование вместо явного кодирования - большие XML-файлы в конечном итоге сведут с ума одного или нескольких разработчиков.Чем меньше, тем лучше.
  • Хорошая поддержка инструментов (простое окрашивание синтаксиса может быть большим подспорьем)
  • Подумайте о долгосрочной поддержке по вашему выбору.Вы фактически вступаете в повторный брак со своим программным обеспечением - будет ли оно по-прежнему поддерживаться через 10 лет?Кем?Будут ли у вас альтернативы (JSR великолепны - посмотрите на количество движков сервлетов)?

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


Редактировать:Еще несколько вещей:

  • Вы хотите иметь возможность проверять что-либо во время компиляции.Одна из вещей, которые делают возможным создание соборов на Java, заключается в том, что статическая проверка типов предотвращает множество неприятных ошибок во время выполнения."О, ЭТО способ?Ну, этого здесь нет, извини.Бум!"
  • Ты хочешь хорошо сообщение об ошибке.Встроенный!Попробуйте создать исключение NullPointerException глубоко-глубоко и посмотрите, что 1) пользователю и 2) разработчику говорят об этом.Все, что требует обращения к файлу журнала для получения подробной информации, в конечном итоге вызовет звонки в 3 часа ночи.
  • Изучите масштабируемость с самого начала.Любому нетривиальному клиенту это понадобится, и мир перейдет на многоядерность, так что вы вполне можете подумать об этом уже сейчас.Что вы будете делать, когда вся волшебная пыль pixie performance dust будет использована, а ее просто не хватит:Для приложения требуется больше, чем одна коробка.

И прочтите это: http://www.pragprog.com/titles/mnee/release-it

Другие советы

Я бы посоветовал вам еще раз взглянуть на Grails.Он использует hibernate и spring под прикрытием, но в большинстве ситуаций вам не нужно знать подробности этих фреймворков.Существует большое сообщество и множество документации / блогов / списков рассылки для поддержки, а также процветающее сообщество плагинов с более чем 300 плагинами, решающими практически любые задачи.

Если вас все еще отталкивают grails, вы могли бы заглянуть в игровой фреймворк.У меня нет никакого опыта работы с этим, но недавно вокруг этого появился некоторый трафик в hacker news и тому подобном.Я знаю, что он использует groovy для языка шаблонов.

Вы забываете о другом крупном игроке в этой области:в Стопка ламп (linux, Apache, MySQL и mod_perl).Все компоненты бесплатны, доступно множество книг по разработке LAMP и каждому из этих компонентов, а также уже доступно огромное количество библиотек и компонентов.

Если вы боитесь Grails и вам нужна Java, попробуйте Stripes и прочитайте отличную книгу Stripes (http://www.stripesbook.com/blog/).Вы можете купить электронную книгу в формате pdf за 23 доллара.Книга описывает фреймворк в поразительных деталях.Stripes - это очень мощный, легкий MVC фреймворк, который решает все распространенные проблемы веб-разработки (шаблоны, сопоставление URL-адресов, проверка формы, безопасность, интернационализация, тестирование), но он не будет автоматически создавать уровень базы данных для вас, если вы не захотите этого с помощью Stripernate.Вы также можете использовать Groovy вместе с ним.Вы можете использовать его автономно или с Spring.

Я добился большого успеха в простых веб-проектах, используя Весенний MVC с JSTL JSPS.Spring MVC - это фреймворк, который можно сохранить чертовски простым (для настройки используется 1 дополнительный XML-файл).Вы можете отказаться от всех необычных опций и просто указать набор JSP, которые вы хотите связать с именами представлений, а затем перенаправить на эти представления, указав их имена в контроллере.

Spring MVC также может легко масштабироваться и быть настолько сложным, насколько вам нужно, позволяя вам переключаться с JSTL на JSTL с помощью Tiles, или Struts, или JSF, или Wicket.Он также может обрабатывать сложные веб-потоки, используя Поток Весенней Паутины проект.Но для большинства проектов я просто делаю это простым - создаю JSTL JSP, создаю контроллер, который предоставляет объекты, необходимые JSP, и связываю их, заставляя контроллер возвращать это представление.Как только вы настроите проект и ознакомитесь с конфигурацией, на установку новой страницы уйдет, возможно, пара минут.

Если вам нравится Groovy, но не нравятся Grails, вы могли бы попробовать Гэлик, который представляет собой легкий заводной фреймворк.Однако, AFAIK, вы можете использовать Gaelyk только в том случае, если вы размещаете приложение на Google App Engine

Если ваши приложения не будут размещаться на GAE, и вы действительно не хотите использовать Grails, другой вариант - использовать Канавки, Сервлет шаблона Groovy, GSPs.

Однако лично я считаю, что это большая ошибка - отмахиваться от Grails.Это действительно отличный фреймворк, и вы можете пройти долгий путь, не зная многого о Spring и Hibernate.Одна из ваших жалоб - это отсутствие документации Grails.Я думаю, вы, должно быть, искали не в том месте, потому что в дополнение ко всем доступным книгам, есть очень обширная справочный документ и много другой доступной документации на веб-сайте.Наконец, есть очень активный список рассылки.

Я выбрал платформу JRuby - Rails (3) из-за ее очень богатой и мощной экосистемы, но главным образом потому, что:
* очень прост в использовании
* много-много библиотек
* быстрая поддержка через IRC
* глубокая документация

Вы также можете проверить веб-фреймворк Scala + Lift ( imho лучший статический типизированный язык, хороший фреймворк)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top