Разработка "модели" для clojurescript / clojure приложений - PullRequest
8 голосов
/ 10 февраля 2012

Примечание: Я занимаюсь бэкендом (Java) по профессии и работаю в Clojure в свое свободное время, поэтому прости меня за мое невежество.

Я пытаюсь разобраться в Clojurescript и узнать, как он может вписаться в проекты, над которыми я работаю, или планирую работать в будущем. Поскольку я вырос с «классическим» подходом к веб-разработке (например, Clojure, выполняющий бэкэнд, распределяющий данные во внешний интерфейс через JSON для обработки в JS или возвращающий HTML-страницу для отображения в браузере), у меня возникли проблемы пытаясь понять, как Clojurescript может сделать вещи лучше, чем эта модель.

Может ли кто-нибудь объяснить мне, каков будет общий подход к разработке Clojurescript / Clojure, поскольку моник проекта Clojurescript One означает, что разработка приложений будет унифицирована под одним языком (как таковой)

  • Какие задачи обычно выполняются в части приложения Clojurescript?
  • Какие задачи обычно выполняются в части приложения Clojure (например, бэкэнд)?

Буду признателен за любую помощь, или если кто-нибудь подскажет мне какие-то схемы, объяснения или еще что-нибудь - это тоже было бы здорово!

Ответы [ 4 ]

7 голосов
/ 10 февраля 2012

Я думаю, что приложения Clojure / ClojureScript будут структурированы очень похоже на бэкэнд-технологию X + JavaScript.

Одно большое преимущество при разработке приложений с Clojure и ClojureScript - более богатым форматом данных, чем JSON (вы можете представлятькарты и наборы с произвольными ключами) без потери компактности.

JavaScript - прекрасный, прекрасный язык, но ClojureScript предлагает немало преимуществ.Это семантически проще (функционально), поставляется с богатой стандартной библиотекой, надежной библиотекой приложений, проверенной в бою (Google Closure), и всеми преимуществами, которые вы получаете от вкусного применения синтаксической абстракции с помощью макросов.

Тем не менее,по-прежнему очень много альфа-программного обеспечения, и инструментальные средства все еще требуют большой работы.

2 голосов
/ 10 февраля 2012

Немного предыстории обо мне, я разработал с Clojurescript, JQuery, Vaadin, Servlets, JSP и многими другими веб-технологиями.

1) Clojurescript гораздо сложнее изучить, чем любую другую веб-технологию, которую яиспользовали по мере необходимости специфические знания Java, Clojure, Closure (с символом s;), Closure Lib и Closurescript.

2) Clojurescript не имеет смысла для небольшого приложения.Это имеет смысл только тогда, когда у вас будет ALOT обработки на стороне клиента

3) Насколько я понимаю, только использование Clojurescript - это лучший javascript (именно поэтому он лучше подходит для больших приложений) в качестве компонента минификатораClojurescript доступен и для javascript

4) Только клиентская часть будет записана в Javascript, сервер будет в сервлетах Clojure / Java

1 голос
/ 25 декабря 2016

Для меня clojure и clojurescript предлагают более чистый код, чем смешанный стек.Существует только один язык, и код довольно легко читается.

В бэкэнде clojure выполняет то, что обычно делает java. Проверка ввода, сохранение в базе данных и, прежде всего,реализация бизнес-логики.Наш бэкэнд также проверяет входящие / исходящие данные по типам, используя призматические схемы.

Коротко о внешнем интерфейсе: Мы получаем симпатичный код с использованием ClojureScript и быстро пишем. Мы используем версию ClojureScript material-ui при написании компонентов пользовательского интерфейса.Мы должны писать меньше кода по сравнению с JavaScript, и я считаю, что код нашего компонента пользовательского интерфейса легче читать, чем аналог JavaScript.Одна из основных причин - более короткие закрывающие теги и меньший шум от языка кодирования.Разработка с использованием ClojureScript довольно быстрая.

Конечно, ClojureScript используется для простой проверки импутации, такой как RegExp для телефонных номеров и т. Д.

Одним из недостатков clojure, который вы, вероятно, заметили, являются длинные строки последавая собственные имена для функций.Я не нашел серебряной пули, как с этим справиться.

Как сказал dnolen : ClojureScript все еще развивается.Сейчас он намного лучше, чем 6 месяцев назад, поэтому вам придется постоянно проверять его зрелость.

1 голос
/ 04 апреля 2013

Возможно, микро-фреймворк Ganelon (автор которого я, кстати) подойдет вам - модель исполнения аналогична Vaadin: код Clojure на стороне сервера передает обновления пользовательского интерфейса в браузер через AJAX / JavaScript, но мы этого не делаем сохранять состояние приложения в сеансе по умолчанию.

Демо и документы доступны на http://ganelon.tomeklipski.com/

...