Я попытался написать приложение на playframework
+ scala
+ Angular JS
.
Целью было создать веб-приложение, которое будет работать либо хорошо, когда JavaScript выключен или включен в браузере. Это обычное требование, когда вы пишете Public Site (что должно быть хорошо для людей и для Google, которые индексируют его)
Итак, я закончил с ~ 50% кодом, написанным в JavaScript
, имеющим две (2) папки с именем "controller" - один для кода scala
один для кода JS
(поскольку AngularJS также использует концепцию контроллера).
Кроме того, поскольку JS
-код должен использовать вызовы Ajax
, мне пришлось создать еще один scala -контроллер, который возвращает json
, но не html
назад клиентский запрос. И.. это все, что мне не нравится. Это кажется слишком большим усилием.
В playframework
стороне шаблона я должен подумать, как объединить scala
с JavaScript
, передавая параметры с одного языка на другой. Используя некоторые трюки, например, показывая, что, когда JS будет обработан, показывается, что когда он должен быть выключен.
Все это делает мой шаблон менее неустойчивым, и однажды, когда у меня будет огромная база кода, я могу придумать решение для дублирования моих шаблонов (шаблоны js templates + scala ) - использовать правильный шаблон, когда JS
выключен/включен. Тогда количество JS-кода может вырасти до 60%..
И потом кажется, что я буду дублировать все, например, два разных приложения - для Google и для люди. То, что было бы общим (только), это мои данные сами в моей базе данных, я не должен дублировать данные. Но.. у нас может быть другая проблема с форматом этих данных (и, скорее всего, будет json-based [потому что я не трачу время процессора на преобразование табличного объекта), но не на основе таблицы - NoSQL.. тогда снова мы приходим к JS, например DB - как к MongoDB), а JS
отлично работает с Json, изначально.
Затем задайте вопрос, почему бы не использовать 100% JS
для простых вещей, таких как: запрос-ответ, формирование страницы, < сильные > макеты. Контроллер сервера JS
может сформировать мои шаблоны - тогда мне не нужно переключаться с одного языка на другой и быть еще более продуктивным в этом смысле.
Вопрос:
Есть ли у вас какие-либо предложения? Лучшие практики по этому поводу? Я не тот парень, который хочет использовать NodeJS
для использования JavaScript
в качестве ОДНОГО языков для всего - для сервера и клиента. Но позвольте говорить о производительности и потребностях бизнеса.
Есть пример (не мой) контроллеров AnjularJS, сколько JS мне нужно написать: https://github.com/tastejs/todomvc/tree/gh-pages/architecture-examples/angularjs/js
и просто представьте, что я должен держать контроллеры PlayFramework вместе с ними - для вызовов HTML и AJAX, смешивая вещи в шаблонах scala/playframework с JavaScript.