Какую технологию выбрать для разработки веб-проекта?

💡 Усі статті, обговорення, новини — в одному місці. Приєднуйтесь до GameDev спільноти!

Доброго времени суток!

Хочу создать свой веб-проект.

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

P.S.: Вопрос вызван целесообразностью и оправданностью использования подходящей технологии.

Всем спасибо за конструктивные ответы

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Целесообразно ли использовать для разработки такого проекта указанную выше технологию (учитывая что знаком с ней) или посоветуете что-то другое?

Java, Python, PhP, Scala, Asp.Net RoR — и все их фреймоврки — все подходит и все целесообразно использовать но только при пряморукости того кто использует

пиши на чем интересно и не парся.

Нужно пойти от обратного, определится какой функционал необходим (в идеале нарисовать прототип), а после думать какими фреймворками, на каком языке это лучше всего реализовывать. А так вопрос в никуда — хочу проект, на чем писать — хз, что должно получиться — хз, сколько ресурсов — хз.
P.S. «хз» — описание некой меры неопределенности.

Вам нада mvp ?
берите PHP + фреймворк например Laravel + тема bootstrap за 15уе
и через недельку- другую будет у вас вполне рабочий прототип

15 уе можно даже сэкономить, если вы понимаете о чем я .. :)

Это коммерческий проект на котором будут зарабатываться деньги?
Это проект чтоб побаловаться и пощупать что-то новенькое в свободное время?
Это проект чтобы прокачать скилл с более свежей энтерпрайзной технологией и найти работу?

Для всех трех вариантов совсем разные наборы технологий получаются.

Perl
спочатку відростити вуса, а тоді вже можна

Делай на Java и не заморачивайся. Всё равно если выстрелит — всё перепишешь. И вот как раз ПЕРЕПИСЫВАТЬ в хороший качественный код намного проще на Java.

Исключение — если хочешь дёшево на первом этапе, и не сам будешь делать. Тогда PHP. И естественно, расплатишься за это на следующих этапах — его сложнее поддерживать и менять. А менять придётся. А будет лень.

На Play как тут советуют иди ТОЛЬКО если собираешься писать на Scala. Это наскальный фрефмворк, и с Java тебе будет неудобно с ним работать.

Пойми правильно, масштабировать проект придётся не вширь, а в глубину. К примеру, захочешь заменить MySql на что получше, или прыгнуть на no-sql базу (в том числе частично). Захочешь мыло красивое рассылать. Роли захочешь всяко-разные иметь.
Смотри по дизайну, что за платформу возьмёшь. Как правило, бутсрапа хватает на первый год за глаза. Но возможно у тебя своё представление о UX, и тогда бутстрап наоборот, будет мешать.

Короче, хорошие фреймы есть на любом языке. Но если твоя цель найти ИНВЕСТОРА — то Java явно лучший выбор. Если же цель двинуть быстро, и есть абсолютная уверенность что ты имеешь ключ к своей уникальнейшей нише рынка — тогда ищи кто тебе быстро сделает за деньги, но так чтобы ты СМОГ РАЗОБРАТЬСЯ.

Вероятнее всего ты ПРОИГРАЕШЬ. То есть вкладываться сразу как бы и не разумно. Но с другой стороны, ЕСЛИ выстрелит, то сейчас ты закладываешь фундамент. Обидно будет проиграть, из-за того что фундамент оказался слабым, и каждое движение роста — болезненным.

PS. Для масштаба нужны деньги. Притом не деньги инвесторов, а те которыми ты сам можешь рискнуть, зная что никто больше не одобрит (или очень долго придётся объяснять). Почему так: входя в инвесторские пулы, ты оплачиваешь своим успехом всех неудачников этого пула. И да, инвестор может захотеть выдернуть деньги из твоего проекта чтобы спасти утопающего.
Из последнего: глянь как Upwork потерял капитализацию и продолжает терять с угрозой полного банкротства. А это между прочим сильнейший игрок рынка, с сильнейшим ресурсом на планете. А всё журавлик в небе...

Но если твоя цель найти ИНВЕСТОРА — то Java явно лучший выбор.
разве «под инвестора» не будет выгрышнее смотреться «хипстерская» технология?

А не подскажете, какие есть java-фреймворки для крупных web-проектов? Куда хотя-бы смотреть?

Да, вопросы задавать тоже надо уметь. Ок, уточню: хотелось бы что-то ближе к CMS на Java: с пользователями, группами, статьями, комментариями, загрузкой картинок на сервер, поодержкой markdown и т.п.

P.S.
Но не Play Framework

с пользователями, группами, статьями, комментариями, загрузкой картинок на сервер, поодержкой markdown и т.п.
Wordpress troll-face

Есть Liferay Portal. У него есть бесплатная Community Edition web.liferay.com/...s/liferay-portal/overview

Но рекомендовать не стану. По опыту ведения проектов — на Java лучше писать свое. Не встречал хорошую CMS на Java.

Если есть опыт с Java возможно лучшим решением будет Play! 2.5 т.к. он:

  • полностью reactive
  • имеет достаточно широкий круг пользователей (да, со спрингом не сравнится, но всё же)
  • горизонтально и вертикально масштабируется за бесплатно
  • имеет полный Java 8 API
и ещё много другого.

Из минусов особенностей:
крайне не рекомендуется писать блокирующий код (хотя это и не смертельно)
со временем можно перейти на Scala в начале as better Java, затем затем как полностью язык разработки

Как платформа он и неплох, но мне например было крайне непривычно работать с EBEan как ORM провайдером.

не-не-не. Ебеня ужасны. Как здорово что их вынесли в отдельный от фреймворка модуль. В первой версии моей аппы я сразу от него отказался, вместо него использовал Spring Data JPA. Сейчас пишу больше под Neo4j т.к. данные имеют графовую структуру и, в отличии от JDBC драйвер не блокирующий.

Если для бизнеса то php и symfony 2 + Memcache/Redis для высоконагруженных сайтов ( тут правда уже обычный хостинг не подойдет), найти более менее похожее решение и уже допилить, это что бы максимально выйти на рынок, пока будете эксперементировать конкуренты зарелизят уже пару версий и заберут клиентов ( если думаете что конкурентов нету, их дохрена просто вы в про них не знаете).

Но я смотрю люди тут предлагают всякие извращения, так вот я как то пилил веб страницы на C++ CGI... ну очень быстро работало, что даже масштабирования не надо никакого

Если и начинать проект на симфе то уже лучше на третьей c полностью перепилеными формами. Но вводить enterprise level framework на начальных этапах разработки, ещё до запуска первой версии, как по мне чревато. Тогда уж лучше Silex

выбирать надо оптимальное решение уже на начальном этапе, как показывает практика наврятли уже кто то будет портировать на другу платформу — дорого и время, а это самый критический показатель

ну можно использовать MicroKernel, запилить туда бандл с юзерами, на коленке в контроллерах сделать солянку с использованием контейнера как сервис локатора и получится тот же Silex/Slim

А шо таке Silex по суті? Обгортка над Пімплом. Якшо вам запилити якусь маленьку аппу на кілька controller/action то ок. Якщо ж доведеться писати щось хоча б середньої складності, всерівно доведеться використовувати шматки Symfony. І в даному випадку не бачу потреби та раціональності, використовувати service locator замість повноцінного dependency injection container і кожен раз ламати собі голову як завести черговий бандл.

Поддерживаю, всёзависит от сложности проекта.

кожен раз ламати собі голову як завести черговий бандл
А такое происходи только с теми бандлами что, как по мне, не правильно написаны. Правильный бандл — это только и исключительно только обвязка для либы, в которой и находится весь функционал. Вот эту либу в пимпл можно запхнуть без проблем. А если функционал пишется сразу в бандле без разделения то это чуть сложнее.

Конкурировать не собираюсь. Проект похож лишь масштабом, а не идеей.

А почему все молчат о GWT, Vaadin, ZK?
Человек же УЖЕ пишет на Java, значит через неделю-другую вполне сможет худо-бедно наваять веб-приложение.

А почему все молчат о GWT, Vaadin, ZK?
навіть в голос не згадуйте таке

***ть ты ******* такое людям предлагать

Во-первых, человек должен это выучить. Во-вторых, вы много знаете новых проектов за последние 2-3 года, которые бы использовали GWT, Vaadin, Wicket и т.д ?

Спасибо за внятный ответ:)
Я не предлагаю, я для себя спрашиваю «Почему...» ибо столкнулся с этими фреймворками по работе. Хочется знать, насколько они пригодны для использования в новых проектах.

Хочется знать, насколько они пригодны для использования в новых проектах.
вони ніколи не були придатні для використання. ні сьогодні, ні вчора, ні 5 років назад

может быть, вы хотите привести аргументы?

Вот эта ссылка расскажет об их популярности за последние 5 лет. www.indeed.com/...wt-q-Wicket-q-Vaadin.html

Если все, что описывает проект:

Хочу создать свой веб-проект
тогда лучше пока не выбирать технологию. Для начала возьмите Pencil (pencil.evolus.vn) либо Balsamiq (balsamiq.com) и набросайте черновик интерфейса; создайте текстовый документ либо Google Doc с примерным ТЗ. И уже только после этого задавайтесь вопросом о технологии.

Если же понимание того, что нужно все же есть — то подумайте кому ваш проект может быть нужен. Если что-то небольшое для «обычного» пользователя — то лучше PHP / MySQL. По той простой причине, что хостинг дешевле. Для Java / NodeJS нужен либо виртуальный сервер, либо облако, а это подороже, поэтому думайте.

На амазоне инстансы EC2 от 5 баксов.

Практически для любой задачи хватит php на бек-энд и jQuery на фронт-энд. Но учитывая то что вы хорошо размахиваетесь, и ваш проект схож с сервисом airbnb то я вам советую начать выбирать себе фреймфорк, что то типа symphony, zend, kohana, последний самый простой, быстрый и весьма надежный(что в принципе зависит уже от вас), на фронт-энд AngularJS, хотя это все индивидуально, ну и сразу можете учесть размеры предпологаемой базы и как оно должно работать) ну там репликация и тд. :)

symphony, zend, kohana, последний самый простой, быстрый и весьма надежный
а также давно и надёжно покинут разработчиками github.com/...ana/graphs/code-frequency

очередная бессмысленная тема в поисках волшебной пилюли.
Во первых если нет понятия о технологиях их отличии и особенностях то в серьезном проекте делать нечего. А для несерьезного любая сойдет.
Во вторых, 9 из 10 ответов будут связаны с личными предпочтениями или умениями а не с тем что нужно проекту (тем болшее не озвучены требовани к проекту)

А какого плана веб-проект? Может это планируется что-то высоконагруженное или онлайн-банкинг какой-нить с оперденями. Тогда может вообще стоит посмотреть на какой-нибудь Эрланг)

А если ближе к какому-нибудь типовому проекту (портал, магазин и т.д.) то Django / RoR / PHP / Node.js + JavaScript с головой хватит.

А так чуть ли не у каждого языка есть хотя бы один веб-фрейморк)

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

Что то на быструю руку, что будет работать
Node.js
ИЛИ
PHP

Django или ROR (очень развитая экосистема для разработки при небольшом пороге вхождения)
Golang интересная тема, но сам никогда не экспериментировал с Web.

Если хочешь новых ощущений:
Elixir + Phoenix
OR
Erlang + cowboy + ErlyDTL (для шаблонизации)

З.Ы. Забудь о spring + hibernate, если ранее с этим не работал. С этим днищем убьешь лося и неделю времени, пока на «Hello world» в HTML.

Если хочешь новых ощущений:
Elixir + Phoenix
OR
Erlang + cowboy + ErlyDTL (для шаблонизации)

можно еще как вариант новых ощущений — Haskell + Yesod/Happstack/Snap/Scotty + Elm :) ну или Clojure + ClojureScript.

Elm кстати совместно с эликсиром (видел несколько видосов с буржуйской конференции по эликсиру) вполне используется.

Хоспади, если человенк уже пишет на джаве, почему бы не взять тогда уже скалу ?

эм... а кто ему мешает взять скалу?)

Backend: java + spring Mvc
Front end : backbone.js

Ок))) не обовязково бекбон. Я його юзав. Бачу час перейти на щось новіше реакт енгулар напр.

там в комментах автору накидали за воротник.
юзать фреймворк некорректно и предъявлять претензии к скорости-надежности-расширяемости-etc — это популярная ловушка :(

Трудозатраты на отрисовку «Hello world» в HTML при первом знакомстве с этой котовасией пробовал считать?

Не рахував. Робив веб апп на такому стеку тільки. Ви б могли написати ваші розрахунки?

Сейчас Angular.js намного более популярен.

Ту которую лучше знаешь.

Django + JQuery решит абсолютно все Ваши вопросы... ну или если очень прям хочется «повыделываться» и задействовать на фронтенде что-то типа AngularJS и т.п. то на бэкенд кидайте Django-REST-framework

+1 якщо на python робити

Если есть опыт работы с Java но нет опыта работы с конкретным фреймворком для серверной части, то у Вас нет опыта работы с Java :)
Попробуйте node.js, он достаточно прост и, говорят, хорошо масштабируется. Я сам с ним сейчас разбираюсь, довольно прост в использовании, но возможностей масса.

Если Javascript не нравится, есть смысл разбираться с Java фреймворком или другим языком. Лично мне больше нравятся явно типизированные языки с компилятором — проще найти ошибку.

но нет опыта работы с конкретным фреймворком для серверной части
на самом деле, по запросу lightweight REST java можно найти такие штуки, с которыми легко работать. по крайней мере, быстро накидать CRUD — плёвое дело

Что мешает выбрать несколько? В любом случае возможно придется: сейчас модно совсем отделять фронтенд от бекенда, где на фронтенде монстр типа ангуляра/реакта/ембера/что-там-щас-модно, со своими приблудами для сборки. Соответственно бекенд превращается в API, и API можно городить совсем по разному: хоть по отдельному сервису на каждый вызов :) При этом: не понравится — можно кусочно заменять.

так как есть небольшой опыт работы с этой технологией
просто с Java? или именно с каким-то серверным фреймворком?
Необходима технология, которая позволит в дальнейшем удобно масштабировать проект.
вне зависимости от языка можно добавить серверов, поставить балансер и маштабироваться без оглядки на код.

Использовал фреймворки такие как spring, hibernate

Ну так используй то что знаешь

— spring boot так само легко піднімається як і nodejs . кількість настройок мінімальна
для роботи з базою є spring data.

— фронт по бажанню , можна ангуляр

Підписатись на коментарі