Nov. 26th, 2015

ermouth: (ang)

Кажется, будет CouchDB 1.7 (тьфу-тьфу, падаем ниц, о великий @kxepal) и в ней мой JS-рерайт.

Мы сами этот JS-рерайт вовсю уже юзаем и сейчас клепаем с ним секретный вполне боевой проект. Прокси из нода с express.js перед CouchDB стал не нужен – проект умеренно нагруженный, так что Кучдбшный Spidermonkey в самый раз. Любопытно, что кода получается меньше, чем в ноде.

В силу того, что JS-рерайт это, по сути, раутер запросов, такая входная точка для доменного имени – мне понадобилась JS-библиотечка для паттерн-матчинга. Желательно, с близким к Эрлангу синтаксисом.

Ну то-есть разбирать запрос и перенаправлять его куда надо, меняя ключи там, проверяя авторизацию и прочее и прочее.

Снимок экрана 2015-11-26 в 7.48.14Библиотечка такая нашлась, но она оказалась “одноуровневая”. Я её маленько допилил, чтобы поддерживался рекурсивный синтаксис, как на картинке.

Выложил как гист, под гистом коммент с инструкцией. Кому надо – забирайте.

Ещё немножко о секретном проекте, скриншот справа как раз его кусочек.

У нас там впервые в полный рост offline-first, то-есть все веб приложения для авторизованных юзеров нормально работают без интернет-подключения.

Делаем всё для таких мест, где с покрытием и качеством сети всё хреново, поэтому вот так. По-хорошему, это всё CloudWall.

Забавно, что как раз именно такой подход и позволил использовать небыстрый внутренний Spidermonkey в CouchDB, а не шустрый node.js. Дело в том, что мы все вообще тяжёлые map/reduce queries и весь вообще рендер UI выполняем на клиенте.

То-есть мы и на сервере map/reduce можем исполнять – клиент использует тот же код – но паразитировать на вычислительных мощностях клиента и быстрее, и offline-ready, и сервер можно относительно слабый.

По сути, задача сервера – поддерживать на клиентах релевантный датасет и отдавать стартовый код приложений. Ну и, конечно, чувствительные данные живут только на сервере.

Ну понятно, что интерфейсы дикой красоты, responsiveness просто вау, на ойпадах летает ну и всё такое.

---

В процессе написания поста выяснил, что у меня в WinXP висит незакрытая Цивилизация. Интересно, сколько она там так втихую сидела в почти всегда спящей виртуальной машине – полгода? Год? Забытый мир, да ))

Profile

ermouth: (Default)
ermouth

November 2021

S M T W T F S
 123456
78910111213
14151617181920
21 222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 8th, 2025 03:25 am
Powered by Dreamwidth Studios