Clojure

Clojure 中文群

u-faadagjchb 5 days ago
有一个很实用的小库专门处理js交互叫cljs-bean
u-jia 5 days ago
我去了解下,感谢[emoji]
u-jia 5 days ago
早上大概翻一下cljs官方文档,没找到比较有用的教程。后面才找到老叶一篇文章里面的这本书,http://cljs-book.clj.im/。
u-jigfaehah 5 days ago
Cheatsheet不错的
u-faadagjchb 5 days ago
@gzmask 比方说写了个ui树,(div (map ui-x xs)) 不产生ui的情况下,空跑一下是不是就能把下级的query算出来?
u-faadagjchb 5 days ago
不用宏解析,那样太复杂。而且限制很多。
u-faadagjchb 5 days ago
好像不行啊,遇到处理数据的函数就不好使了。
u-faadagjchb 5 days ago
query的声明可能是必要的。
u-faadagjchb 5 days ago
感觉是时候看看datascript了
u-facfabjjhaccccddfihfj 5 days ago
chat img
u-facfabjjhaccccddfihfj 5 days ago
@#(无知的菜狗 %) why
u-faadagjchb 5 days ago
datascript的pull syntax,就是eql
u-facfabjjhaccccddfihfj 5 days ago
想替代啥
u-faadagjchb 5 days ago
想找一个fulcro的替代方案
u-facfabjjhaccccddfihfj 5 days ago
只为了更好的语法么?
u-faadagjchb 5 days ago
我觉fulcro的那个思路更合理
u-faadagjchb 5 days ago
不过fulcro确实设计有点过度了
u-facfabjjhaccccddfihfj 5 days ago
什么思路哇!
u-faadagjchb 5 days ago
component + state machine + resolver + mutation 就可以处理web/app前后端加起来的所有情况
u-faadagjchb 5 days ago
是个很通用,很整齐的解法
u-facfabjjhaccccddfihfj 5 days ago
现实用rails比较多吧
u-faadagjchb 5 days ago
fulcro的这个模式如果真用起来的话,应该比rails要快的多。而且是单页应用和客户端适用的。
u-faadagjchb 5 days ago
而且他很通用,不涉及到具体的逻辑但是也可以很高效,不会很ad-hoc
u-facfabjjhaccccddfihfj 5 days ago
前端说不清的,游戏也可看作特general的前端应用;况且graphql还要插腿
u-faadagjchb 5 days ago
这个模式如果你不固定UI渲染的方式的话,做游戏也是可以的。
u-faadagjchb 5 days ago
graphql有一个比较明显的缺点,他是面向model的,不管怎么提供数据,数据总是按model来的,虽然查询是前端声明的,但是也是要按照这个约束来。
u-faadagjchb 5 days ago
EQL的话是面向property的,查询语句是根据UI来的。
u-faadagjchb 5 days ago
后端的resolver做的事情是和graphql一样的,但是拿到的数据能直接装进ui里面。
u-facfabjjhaccccddfihfj 5 days ago
面向model?
u-facfabjjhaccccddfihfj 5 days ago
chat img
u-faadagjchb 5 days ago
graphql的话就是,比如你有个carId, 你可以查Car,然后不管Car里面你要什么,都是Car约定好的。 eql就是你表示如果给我carId,我可以给xyz,前端查的话不管在任何一个地方拿着carId,都可以找后端换xyz。
u-faadagjchb 5 days ago
只放在后端看,这两个几乎是完全一样的。但是如果从整体看,把前端靠虑进来,差别很大。
u-faadagjchb 5 days ago
前者意味着需要看model的定义,决定怎么查,再根据查到的内容,决定怎么处理。在每一个地方渲染的依据都是拿到的整体的数据。 后直意味着不管UI怎么排,都可以拿到和UI对应的数据,所有的UI部件都知道自己关注哪个地方决定要不要渲染。
u-facfabjjhaccccddfihfj 5 days ago
我有carid的话,肯定就想查car的信息啊
u-faadagjchb 5 days ago
carid不一定在后端支持的model里面有,比如person中有car,animal中没有car。 一个更好理解的例子就是当前时间
u-faadagjchb 5 days ago
比如有一个组件要做一个付款倒记时的功能,他要一个当前服务器时间,还需要一个支付关闭时间。这个支付定单里面,就可以没有当前时间
u-faadagjchb 5 days ago
但是UI组件上,这两个东西是要放在一个地方用的。
u-faadagjchb 5 days ago
@gzmask
u-b 4 days ago
@#(无知的菜狗 %) 抱歉,感恩节长假后回公司一堆散事。如果你说的是fulcro的话,取决于vdom带的eql怎么处理,我也不清楚。但是如果你自己写,肯定是可以的。只要把vdom对应的eql片段存在内存里不就行了么?还是我误解了你的意图?
u-faadagjchb 4 days ago
没事的,本来就有时差问题
u-faadagjchb 4 days ago
我在想用其它方式实现fulcro那样, 或是怎么用fulcro而不会乱。
u-b 4 days ago
你可以试试用普通的atom存关系,然后用add-watch 加入你自己的reactive控制器
u-b 4 days ago
每次修改关系的东西就会激活控制器
u-b 4 days ago
然后控制器可以做些normalize之类的东西
u-b 4 days ago
这个东西估计也可以在reagent或者fulcro上面加,只要你弄懂了他们的关系元数据在哪里就行了
u-faadagjchb 4 days ago
@gzmask 我是觉得normalize的数据denormalize的时候默认应该就只搞一层出来。这样数据变的时候,就只有真正变化的那个组件接收的输入会变。
u-faadagjchb 4 days ago
如果是整个tree一起进来,每一层都要判断。
u-facfabjjhaccccddfihfj 4 days ago
diff算法
u-facafichciiiheihbb 4 days ago
patchTarget模式