跨域访问
cros的定义
很多web程序员不够深入了解跨域访问, 上个月Zoom(就是那个刚上市的zoom)爆出本地zoomserver 跨域访问漏洞的问题暴露了程序员的无知.
有篇很有意思的文章,推荐阅读
进入阅读→Reagent文档: Batching and Timing
https://github.com/reagent-project/reagent/blob/master/doc/BatchingAndTiming.md
state变化 -> UI变化
react会尽可能批量处理render, 批量render是react高性能的重要原因. 多次对程序状态的修改, 可能会体现为一次页面的更新. 页面(Dom)重绘的时机是浏览器自己控制的, 在'适当时机'更新. 这种行为有诸多好处
进入阅读→lisp 代码编辑
编辑lisp代码是个享受, 是的, 是个享受. 有Paredit伴你左右, 编辑代码树会成为你最重要的编程习惯.
括号会变成你最好的朋友, 像空气, 虽一无所觉, 但无所不在, 生死相托.
进入阅读→OH: "If you think paredit is not for you then you need to become the kind of person that paredit is for."
camel-snake-kebab
命名方法
- camel: 驼峰, helloWorld
- snake: 蛇形, hello_world
- kebab: 烤肉串, hello-world
kebab读音[kɪˈbɑːb], 是clojrue的默认命名方式
进入阅读→Reagent 深入学习第四部分
- 在第一部分中, 我们了解了如何定义组件并响应变化.
- 在第二部分中, 我们观察了组件的生命周期.
- 在第三部分中, 我们探讨了组件序列的细微差别.
最后, 我们构建一个涂鸦应用程序. 涂鸦应用程序允许用户使用鼠标创建线条绘图. 本章并不会介绍任何新特性.
在过程中我们会共同发现一些原则. 掌握这些原则, 会让我们对应用中可能遇到的问题有更好的准备.
进入阅读→Reagent(React)深入学习第三部分
欢迎来到第三部分!
第一部分我们看到了如何生成一个reagent组件, 组件如何挂载属性, 响应事件, 在数据的驱动下的状态变化.
第二部分我们学会了为什么要以及怎么使用生命周期函数, 以及怎么避免使用Form3...
进入阅读→Reagent(React)深入学习第二部分
欢迎来到第二部分!
第一部分我们看到了如何生成一个reagent组件, 组件如何挂载属性, 响应事件, 在数据的驱动下的状态变化. 接下来的更有挑战:
进入阅读→Reagent(React)深入学习第一部分
Clojurescript(cljs) 交互式执行环境
Reagent是React在cljs上的一个封装库, 诞生于React还是Class Component的时代.
在使用函数来组织组件这件事情上, 它走的比于Function Component更远, 使用方法也更加直观清晰.
进入阅读→Clojure,你成功引起了我的注意
应该是在2012年,我还是个Haskell的粉丝,看过一些lisp的入门(因为使用emacs,得写些elisp配置文件),对lisp有这个语言括号很多而且性能很差的认知。当时在YouTube上看一个clojure的视频
视频里的人说:
进入阅读→如果你已经会编程了,这不是你的优势,而只会是障碍,你需要改掉一些坏毛病
面向对象的设计模式和Clojure
我们所使用的语言本身已经完犊子了. 所以我们搞出来一个叫设计模式的东西.
- 尼古拉斯・赵四
这里有两位谦逊的程序猿 - Pedro Veel 和 Eve Dopler 正在运用设计模式, 来着手解决一些通用而常见的软件工程问题.
进入阅读→