我在 ClojureScript 的 2017

2017-11-19
阅读 6 分钟
5.4k
2016 年我在 React 社区就不是非常活跃了, 虽然还会搬运一下新闻, 也密切关注着 Jordan Walke 的消息, 但是对于 React 社区的新技术很少去上手用了. 再说自己搞了 Respo, 从此怼 React 怼 Vue 就有了资本, 脾气当然是更不温顺了. 我自认为是 ClojureScript 社区的成员, 这一点很久都不会变了.

shadow-cljs: JavaScript 依赖的实践

2017-11-11
阅读 5 分钟
4.2k
之前关于 js 依赖的文章(问题, 前景)里面, 我解释了为什么 shadow-cljs 当中采用了和 ClojureScript 默认的方案不同的做法. 简单回顾下:

关于 emotion 初步使用的笔记

2017-11-08
阅读 2 分钟
9.3k
群里听达峰大大讲 Strikingly 用的是 emotion 的方案, 留了个心眼.之前查看过一些 CSS in JS 方案, 大致看过 emotion, 不知道哪个比较好:[链接]但是既然 Strikingly 有实践经验, 而且当时也是我看中的几个之一, 觉得比较安全.[链接]

shadow-cljs 2.x 使用教程

2017-10-11
阅读 5 分钟
9.3k
shadow-cljs 是一个新开发的 ClojureScript 开发和编译工具.以前编译主要是 lein-cljsbuild, boot-cljs, lein-figwheel,现在新的工具 Lumo 和 shadow-cljs 也可以完成编译工作了.特别是 shadow-cljs 的功能覆盖开发当中很多场景, 对 JavaScript 开发者更友好.对于前端开发者来说, shadow-cljs 上手也非常简单, 不需要去...

Cirru 是怎样编译到 Clojure 的

2017-09-21
阅读 3 分钟
3.9k
这篇文章解释一下 Cirru 到 Clojure 代码的编译步骤.目前编辑使用的是 Cumulo Editor, 参考这里的 Demo.Cirru 是整个大的项目的名字, Cirru 本身的目标是 AST 编程,而 Cumulo Editor 是目前项目下最新的语法树编辑器. 也就是 AST 里的 Syntax Tree.所以在新闻中你看到的 Cirru 的存在形态, 目前是这样的:

对于城市效率的遐想

2017-09-18
阅读 2 分钟
1.8k
去西西弗的书店坐过几次, 与其说是卖书, 更多是在卖咖啡了.上班或者忙碌之后, 到矢量咖啡买饮料占一个座位, 就能坐很久,而且并不是为了喝饮料, 而是为了看书的氛围付费, 边上就是书架.

关于 Cirru Editor 存储格式

2017-09-16
阅读 3 分钟
2.2k
Cirru 是一个使用语法树编辑器来编写代码, 以此绕开语法限制的方案.目前成熟的编辑器方案有 Stack Editor 和 Cumulo Editor,其中 Cumulo Editor 是我目前开发当中正在持续维护的, 用于开发 ClojureScript.

笔记, TypeScript 配置 Prettier

2017-09-12
阅读 1 分钟
15.5k
目标: 文件保存时执行一次格式化 迁移已有代码的格式 代码提交前进行一次格式化 首先确认了 Prettier 对 TypeScript 有良好的支持. [链接] 保存时格式化 当然这个依赖 VS Code 的插件, [链接]在 VS Code 中安装之后, 通过 .prettierrc 文件配置, 临时的配置比如(虽然我不喜欢 Tab 但公司用啊): {代码...} 配置文件也可以...

Cumulo Editor 启动教程

2017-07-25
阅读 2 分钟
2.2k
Cumulo Editor 是在 Cirru 项目下的一个实时协同语法树编辑器,语法树编辑器说的是代码以树形结构保存, 以 DOM 的形态被编辑,实时协同说的是多人编辑时能相互看到彼此的光标和修改的字符,Cumulo 最终会被编译成 Clojure(Script) 代码, 有兴趣可以浏览下教程:[链接][链接]

Cumulo Editor 是如何实现实时协同编程的

2017-07-12
阅读 4 分钟
5.2k
A collaborative editor is a form of collaborative software application that allows several people to edit a computer file using different computers, a practice called collaborative editing. There are two types of collaborative editing: real-time and non-real-time. In real-time collaborative editi...

从技术文档角度反观书籍

2017-07-11
阅读 2 分钟
2.5k
我喜欢书店的一个原因是我不平时爱和人交流, 看书反而轻松以前,而且在书店遇到人都是完全不用打招呼的, 大家自己看看书就完了,我四年级到县城, 才逐渐接触到书店和图书馆这种神奇的存在,对于后来变成了书呆子的我来说确实更好的去处. 远离喧闹.从这个角度看上去, 编程和看书的共同点是有的: 专心和文字打交道.

ClojureScript 的 code splitting 和 long term caching

2017-06-27
阅读 3 分钟
1.7k
Code splitting 是指将前端代码拆分成多个不同的文件,主要的场景是 vendor.js 和 main.js 进行的拆分,以方便在业务代码更新时, 可以避免用户下载所有代码,因为 vendor.js 当中的类库未必是更新的.

Respo 中的 defcomp Macro

2017-06-14
阅读 3 分钟
3.8k
我在 Respo 里遇到一个语法糖的问题, 听说要 Macro 才能解决.Respo 里定义组件的写法挺长的, 包含了好几层的嵌套函数和缩进:

"ClojureScript & React" 讲堂分享, 相关链接

2017-06-13
阅读 1 分钟
2k
ClojureScript 带给 React 项目的借鉴意义[链接] Keynote 插入高亮代码的方案: {代码...} Syntax [链接][链接][链接] Features [链接] Evaluation & Compilation [链接][链接][链接] 热替换 [链接] Data tree [链接][链接] Immutable Data [链接][链接][链接] Atoms [链接][链接][链接][链接] Cursor [链接] 其他 [...

用 ClojureScript 语法运行 React

2017-06-12
阅读 6 分钟
7.3k
得益于最近 ClojureScript(简称 cljs) 社区的发展, 运行和编译 cljs 已经越来越方便.刷一篇文章来展示一下如何用 ClojureScript 来模仿前端写法运行 React.

Cirru 演进历程: 2012 ~ 2016

2017-06-11
阅读 8 分钟
6.1k
Cirru 的初衷是的逃脱文本语法的麻烦, 摆脱文本的局限,基于 S-Expression 简化的结构用来表示表达式嵌套, 作为存储结构,然后 Cirru Editor 基于这个结构实现, 通过图形界面来修改代码,早期 Cirru 也提供了文本格式来兼容, 现在倾向于不使用.目前基于 Cirru 设计的最重要的工具是 Stack Editor, 用于生成 Clojure 代码.St...

编程以外的依赖关系

2017-05-29
阅读 2 分钟
3.6k
主要是关于依赖关系在编程语言领域外的一些场景,并不只有代码当中会呈现出这种模式, 历史随着时间也有,考虑到编程语言本身就是用来模拟的真实世界, 这应该也存在相似性,而且随着编程语言描述世界的能力的增强, 是否能成为哲学语言也未可知.

我期待 Vue 改进的一些地方

2017-05-05
阅读 2 分钟
11.1k
贴点我的 ClojureScript 代码, 免得被人当成菜鸟... [链接] 期待 Vue 改进的一些开发当中的细节: 查看 this.data.x 数据 开发过程当中经常需要查看当前的组件状态当中数据的结构,我平时的习惯就是两个, 一个 log, 另一个直接在界面显示, console.log 打印 Vue 里的数据, 出现奇怪的对象,我听说了 Vue 通过 Proxy 劫持了,...

关于下一代前端框架的一些个人想法

2017-04-12
阅读 3 分钟
4.7k
断断续续想了一个多星期, 想不下去了, 索性写成文章看看对别人是否有用吧.中间有好多我不知道怎么解决的问题, 工具链不成熟, 特别是个人能力不够.问题是, 下一代的前端框架的是怎样的, 我如何实现出来?我原来在想 Facebook 搞 ReasonML 了, 新语言很重要, 那么我应该努力学,然而仔细想想, 问题没那么直接, 我们真的需要...

前端大会流水账

2017-04-09
阅读 2 分钟
3.3k
感觉几个演讲槽点最大的就是我的那个, 还是匿了.主要还是积累太少, 加上我上午临时更新的 PPT 没同步对, 很快就过了,早上尤雨溪演讲中提到 Weex 说我从分享, 我才想起来没放 Vue 的图片,于是去补了几张 PPT, 顺便手动统一了字体, 然而并没有用上.后来发现有之前做 Weex 的熟人也在, 居然面基了, 哈哈哈.我个人认为 Weex ...

Respo 组件状态管理的思考

2017-04-01
阅读 3 分钟
3.9k
更新了 Respo 到 0.4.x, 移除了原先基于 init-state update-state mutate! 的代码,原先的版本是模仿的 React, 在组件曾经管理状态, 但同时支持热替换过程组件状态的稳定,现在的版本 state tree 需要手段管理, 同时和 Virtual DOM 的结构对应,也就是说, 从原来的自动管理编程了手工管理, 实际上是变麻烦了.那么, 为什么? ...

不真切的独立思考的能力

2017-03-30
阅读 2 分钟
2.8k
真的要讨论这个问题的话, 还是行为心理学里边的内容, 我当然讲不了.但这是我的一个想法, 或者说总结下来的一个体会, 甚至说一个感想,独立思考这种东西, 至少对于我来说并不存在, 甚至对于大多数人来说也不确切,没有一个人能基于 0 和 1 的最原始的规则构造出所有的计算机世界来,一切的内容都来自其他人的的想法的堆积, ...

[译] A Prettier JavaScript Formatter

2017-03-28
阅读 4 分钟
7.6k
今天我发布 Prettier, 一个 JavaScript 格式化工具. 它的灵感来源于 refmt, 它对于 ES2017, JSX 和 Flow 的语言特性有着高级的支持. 通过将 JavaScript 解析为 AST 并且基于 AST 美化和打印, Prettier 会丢掉几乎全部的原始的代码风格, 从而保证 JavaScript 代码风格的一致性. 跟 ESLint 不一样的在于它没有大量的 optio...

Elixir Meetup 相关不相关的一些感触

2017-03-26
阅读 3 分钟
2.7k
状态不佳, 睡到快中午, 出去参加了 Meetup, 回来吃饱喝足直接就睡了,然后爬起来的想刷点文章之类的. 所以写在这里也就一些散乱的想法.关于 Meetup 的日程, 可以看活动页面, 包括本次主题等等:[链接]

用 Weex Vanilla 写 Todolist 的尝试

2017-03-17
阅读 3 分钟
4.3k
关于如何在 Weex 上使用 Vanilla 代码写页面, 在前面有一篇文章已经介绍过了:[链接]大致上, 可以参考这个 Demo, 其实就是一些 DOM 操作,[链接]所以我明确的一个事实是 Weex 确实有一套 DOM API,而且这套 API 应该说是所有基于 Weex 的框架的基础, 像 Weex, Rax, 甚至如果有 Angular 版本.

从 ES4 历史做的一些不友好的揣测

2017-03-03
阅读 3 分钟
5.7k
ES6 大家都熟悉, ES5 大家都会写, 没什么好说的, ES4 很多人都不熟悉.我从 2010 开始接触 JavaScript, 那时候也不知道 ES 几, 直接就学了,后来渐渐知道 ES5, 然后又出来 ES6, 现在已经 2017 来了.ES4 还是有次在民工叔叔写的东西里看到的, 忘了是 GitHub 还是微博,当时大概知道一点 ES4 加了很多神奇的高级功能, ES6 只...

关于基于 Weex Virtual DOM API 造框架的一些遐想

2017-01-20
阅读 2 分钟
3.1k
小结一下最近的事情, 当然还是关于 Weex 为主,晚饭前还跟同事扯淡说一晚上写一个 Weex 框架出来的可能性,还是实力不够... 不过经过两个晚上的加白天偷了点时间, Respo 算是跑通了,最近需要熟悉 Weex 的 Virtual DOM API, 因而顺带花了大量时间,我想说, 如果你想造个 Weex 框架, 可以开始玩了...

Cumulo Workflow 项目进展

2017-01-11
阅读 2 分钟
2k
这几天在微博刷了 Woodenlist 的内容, 算是进展还是满意的.Woodenlist 基于我之前的 Wanderlist 做的一个小项目, 可惜现在还没用起来.要做到能用, 后面需要增加很多细节, 不展开了. 这里只关心技术部分.

面对 2017 的轻狂和多疑

2016-12-31
阅读 6 分钟
7.8k
过去一年互联网上看到过好多关于中国制造的赞誉的声音,比如手机行业的崛起, 比如陆续披露的各种超级工程, 以及在国外的成就,中国中低端制造业简直称霸全球了, 相比前一年的新闻非常乐观,而美国和一些西方国家仍然占据高端部分, 比如手机芯片, 知识产权等等.我就在想, 软件行业呢, 软件的制造和服务, 我们做到廉价和高效...

js-csp 异步编程的一些简单的例子

2016-12-25
阅读 6 分钟
3.7k
发现一个月没刷技术文章了, 有点慌, 整理一篇短的 CSP 用法出来,只包含最基本的用法, 在 Go 里边最清晰, 不过我是在 Clojure 写的 CSP.js 版本的 CSP 实现包含异步, 用法会更繁琐一些, 但是也值得看看.我相信 async/await 普及之前, js-csp 还是一个很有意思的选择.