пятница, 10 августа 2012 г.

Как я провел лето

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

Вот как выглядит интерфейс этого приложения:

Рис.1 Список абонементов

Рис. 2 Детали абонемента

Рис. 3 Выбран абонемент Чебурашки

Рис. 4 Отчет по оплатам за месяц

На данный момент приложение задеплоено по адресу: http://clubmanager1.com:8080/login . Логин и пароль такие: demo, demo123. (Оперу и IE ниже 9 не подериживаю)

Как видите, приложение -- достаточно простое, чтобы его можно было не сильно напрягаясь написать за отпуск. Но и достаточно большое, чтобы опробовать ClojureScript на деле.

Я использовал следующие библиотеки:
[org.clojure/clojure "1.4.0"]
[noir "1.3.0-beta10"]
[com.mysql/connectorj "5.1.12"]
[korma "0.3.0-beta11"]
[cheshire "4.0.1"]
[enlive "1.0.1"]
[enfocus "0.9.1-SNAPSHOT"]

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

Для отрисовки шаблонов изначально использовал Enlive. На клиентской стороне -- порт Enlive-а на ClojureScript, который называется Enfocus.

В общем и целом -- впечатления очень положительные. Серьезных технологических затыков или багов нигде не обнаружил. Правда Enfocus сейчас активно обновляется до версии 1.0.0-SNAPSHOT, но этот снапшот глючный. Автор enfocus-а срочно правит баги, так что скоро увидим и стабильную версию. Версия Enfocus 0.9.1 -- достаточно стабильна и очень похожа на Enlive.

6 комментариев:

  1. Круто! Поздравляю, отличное начинание, отличная технология

    ОтветитьУдалить
  2. А сырцы-то будут?

    ОтветитьУдалить
  3. В ближайшие месяцы -- нет. Вот когда продукт заработает, и будут люди, которые им пользуются -- тогда открою.

    ОтветитьУдалить
    Ответы
    1. Откройте, если не жалко. Я крайне мало работал с вебом, а посмотреть готовый исходник подобного проекта не прочь бы, для общего образования.

      Удалить
  4. Я еще не созрел для открытия исходника. Хочу вначале запустить проект, чтобы он заработал, и были бы люди, которые им пользуются. Тогда и открою.

    ОтветитьУдалить