Lomoson: могу сделать ревью модели, отправьте на почту void.nugget@gmail.com skype void.nugget, желательно mysql-workbench. Нормальный TDD/BDD возможен когда тесты прогоняются менее чем 5-6 секунд, в php / python / ruby с этим куча проблем, а в java вообще ужасы.
Lomoson: про нормализацию БД все так говорят, а на практике у всех "четыре формы", и нету ни третей, ни четвёртой, про остальные две история умалчивает. Вводите tdd/bdd используйте шаблонные классы для CRUD'a, что бы не было одна табличка-один контроллер, и стыдно точно не будет.
Lomoson: ну значит у вас там нет горизонтального масштабирования и один общий фронт на несколько БД - просто бутылочное горлышко. Советую сначала разобраться, хотя бы, с нормализацией моделей базы.
Из фреймворков стоит рассмотреть Grails, Play2 и Xitrum.
Нужно обязательно что-то сварганить на Netty, разобраться как работают pipeline'ы у каналов при обработке запросов/ответов. С JPA - проще с EclipseLink'ом и Ebean. С БД можно пробовать Cassandra и PostgreSQL.
Назар Мокринский опять же слова дилетанта - прочитайте внимательно статью которую сами мне и предложили. MVC Is Stateful. It only makes sense if the View, as well as the View-Model binding is stateful (so the Model can update the View when it changes)
Представление может быть как и в браузере так и на сервере.
В большинстве MVC проектов, к примеру на том же Symfony, данные загружаются с модели БД или кэша, и передаются как состояние в шаблоны Slim, которые находятся на сервере. Потом всё это отправляется в браузер... а в браузере могут использоваться совсем другие состояния, к примеру, для валидации форм.
В случае с богатым фронтнедом, мобильными приложениями и различными REST API ситуация сложнее - там точно нет MVC. Но не нужно генерализировать это на "весь вэб" и "в вэбе нет MVC" - это бредни из-за недопонимания.
Назар Мокринский: я и не отрицаю что есть 5-7 уточнений MVC для различных задач. В случае с MVC состояние хранится в связке View-Model - так написано в статье, которую вы, наверное, неправильно поняли, а состояние запросов то тут не причем.
Как по мне, уже давно пора слазить в реактивности и CQRS-ES'ом - там MVC и не пахло.
Назар Мокринский слова дилетанта: объяснить не могу, но ты тупой и сам ничего не понимаешь.
Если MVC "нет", то о каком шаблоне проектирования идёт речь ? MVP - хорошо подходит для десктопа, а не для вэба - в нём нужно было бы прописывать делегаты для всех сущностей базы, а MVVM является проекцией различных REST API на модель представления информации в браузере.
Берём Play2 - все запросы Stateless, отдельно выделяется модель-вид-контроллер, и создатели обзывают его MVC-фреймворком. Ну так чего же я не понимаю ?
kzlv имеется ввиду J2EE решения - в них очень много заморочек с организацией бизнесс процессов, и они спроектированы с целью максимально чётких формулировок функционала и разработки по заранее подготовленным спецификациям - там исторически сложилось. В общем нужно сначала писать как хотелось бы что бы код работал, как хотелось бы что бы этот код взаимодействовал с другим... и только потом сам код.
Но MVC оно и в Африке MVC - между фреймворками разница реально минимальна, единственное что отличается так это работа с базой, асинхронности да проверка пользовательских форм.
Объём работы реально почти один и тот же, объём Java кода в 1.5-2 раза больше, но не в случае с Groovy/Scala - там много примочек функционального и динамического программирования как в том же python или ruby.
kzlv ну не надо уж так генерализировать - я не вижу особой разницы в сложности разработки ни между rails/django/symfony, не между Typesafe Stack или Grails. Переучивал джангистов на Grails - все остались довольны. Опять же работал со всем - прикрутить scaffolding не проблема. Другое дело что нужно избавится от предрассудка "одна табличка - один СRUD контроллер", и разобраться с DDD и SOA подходами... я вот думал опубликовать статью на хабре, но после комментов к предыдущей как-то передумал.
Да, внутри тэгов можно испоьзовать переменные вот так {variable} либо если это компонент react'a.