Fork me on GitHub
#clojure-russia
<
2015-08-28
>
delaguardo05:08:42

О чем говорить будем?

Kira Sotnikov06:08:14

abtv [6:47 PM] Кстати, а 31 августа будет митап? Было бы неплохо обсудить workflow на примерах. В стиле: repl сильно меняет workflow по сравнению с языками где её нет и тут несколько примеров как использовать repl или так: я начал использовать fig wheel и моя жизнь больше не будет прежней) Ну если серьезно, то хочется обсудить best practices именно workflow, а именно - как тратить меньше времени на разработку и что бы еще автоматизировать (автообновление кода и т.п.) Было бы очень здорово, если бы участники поделились опытом разработки на clojurescript.

Kira Sotnikov06:08:26

delaguardo: думаю нормальная тема

Kira Sotnikov06:08:52

delaguardo: если есть что предложить вэлком

delaguardo06:08:59

основная проблема которая меня сейчас в clojurescript волнует - это здоровенные билды итогового js) интересно как кто что делает для уменьшения сборки

Kira Sotnikov06:08:19

delaguardo: у меня проблема в том что памяти не хватает

Kira Sotnikov06:08:25

в CircleCI ограничение на 4 гига

Kira Sotnikov06:08:28

на контейнер

pacman06:08:41

@delaguardo: а вы через :advanced компилируете в один большей js?

delaguardo06:08:43

@lowl4tency: 4 гига не хватает? а для чего конкретно?

Kira Sotnikov06:08:56

для компиляции cljs

delaguardo06:08:13

@pacman: в несколько модулей, но основной фаил все равно достаточно большой получается, особенно если использовать Om или другой whateverreactwrapper

delaguardo06:08:10

@lowl4tency: не кисло так, но это можно решить добавлением билдов в репозиторий и не собирать ничего на CircleCI

Kira Sotnikov06:08:34

delaguardo: тогда теряется вся прекрасность

delaguardo06:08:00

ну да, это не путь джедая)

delaguardo06:08:05

но решает проблему)

pacman06:08:18

ну а к примеру какой размер получается самый большей и самый маленький?

Kira Sotnikov06:08:27

посмотрел логи

pacman06:08:31

из тех модулей что у вас есть

Kira Sotnikov06:08:39

больше 5 минут с xmx 3500m не собирается

Kira Sotnikov06:08:01

pavel_kopychenko: ты имеешь в виду конечный результат js в мегабайтах?

Kira Sotnikov06:08:25

ща посмотрю

delaguardo06:08:46

@pacman: первая версия с Om весила 240Kb gzip, сейчас 40, но уже без Om и реакта

pacman06:08:48

еще раз уточню, это еще после того как вы сжали это все в один js файл при помощи google closure компилятора/обфускатора ?

Kira Sotnikov06:08:39

1 ап 107 кб второй апп чуть ольше мегабайта

Kira Sotnikov06:08:48

несжатые

delaguardo06:08:34

после того как собрали cljs с advanced режимом и после этого зажатые gzip и это самый толстый фаил

delaguardo06:08:28

несжатые - 1.3Mb и 200Kb

niquola08:08:17

@delaguardo: а как cider к cljs подсоединить?

delaguardo08:08:13

я figwheel для этого использую

delaguardo09:08:00

минимальная конфигурация - lein new figwheel hello-world

delaguardo09:08:55

потом стартануть figwheel сервер

lein figwheel %id dev сборки%

delaguardo09:08:30

из emacs -

M-x cider-connect
ввести порт который забинден за сервером

delaguardo09:08:21

в REPL -

(use ‘figwheel-sidecar.repl-api)

niquola09:08:55

сча попробую

niquola09:08:14

а в одном emacse можно одновременно работать с двумя cider соединениями? Как он будет понимать какой для clj а какой для cljs?

delaguardo09:08:25

Это разные буферы, так что все норм

delaguardo09:08:53

А, понял вопрос

delaguardo09:08:17

Поидее это зависит от минорного мода

delaguardo09:08:46

но если честно, не пробовал ни разу)

delaguardo09:08:28

вру, попробовал прямо сейчас) работает

delaguardo09:08:57

но у меня spacemacs сборка, так что может в ней что-то допилено

niquola09:08:00

У меня тоже

niquola09:08:27

На сорцы в cljs не переходит

delaguardo09:08:37

вот тут есть немного подробностей

delaguardo10:08:55

странно, у меня работает

delaguardo10:08:52

M-RET g g
так пытаешься перейти?

niquola13:08:18

Кто чем гоняет данные между сервером и клиентом - edn, transit, json?

ul13:08:38

transit на одном проекте, json на другом — не успели перевести на транзит ещё

ul13:08:13

в первом бэкенд на питоне, поэтому легко было добавить

ul13:08:20

а второй на http://asp.net

ul13:08:57

некогда писать свою имплементацию, а вроде готовой нет ещё для c#

niquola14:08:03

а чем плох edn?

niquola14:08:15

js не поймет?

niquola14:08:39

я к тому что clj->cljs можно и edn, а остальным transit

dottedmag14:08:55

Парсер edn медленнее, чем JSON.read

niquola14:08:26

Но тебе все равно потом - js->clj делать

dottedmag14:08:12

Мегабайт текста обработать - медленнее, чем 150 объектов.

niquola14:08:40

ok - понял (проверю simple_smile

dottedmag14:08:07

JSON.read занимается тем, что называется heavy lifting: конверсией текста в объекты языка программирования. Transit после этого лишь навешивает бирки.

niquola14:08:14

а есть бенч гденить?

ilshad14:08:03

В случаях, когда объем маленький и миллисекунды считать не надо (всякие админки) - используем EDN. Если большой - Transit. На публичных API, для мобильных приложений - JSON.

dottedmag14:08:07

Rich Said So (tm)

pacman15:08:06

вполне не плох

prepor21:08:08

@lowl4tency: надо всегда смотреть сжатыми после advanced. оно специально такие имена присваивает, что бы максимально эффективно гзиповалось

Kira Sotnikov21:08:33

prepor: я занимаюсь деплоем и инфраструктурой, я в код практически не лезу

Kira Sotnikov21:08:40

Поэтому я тут не советчик

prepor21:08:40

ну так мы ж вроде про деплой как раз )

Kira Sotnikov21:08:18

prepor: мы про сжатие )

prepor21:08:27

ну так это часть деплоя

Kira Sotnikov21:08:47

я сожму, заобфуцирую а аппликухи потом не найдут ничего simple_smile

prepor21:08:12

расжатием занимается браузер

prepor21:08:14

в общем то тезис в том, что соотношение между сжатый / не сжатый обычный js и сжатый / не сжатый после google closure может сильно отличаться

Kira Sotnikov21:08:59

prepor: изучу, применю, отвечу