Respo 里"递进渲染"的优化策略

2016-11-22
阅读 4 分钟
4k
论文读得少, 代码读得也不多, 不知道术语是什么, 只好造了一个,英文表述 "Successive Rendering", 模仿 "Progressive Rendering",简单说, 就是 React 那样的性能优化方案, 我发现是个通用的办法,在 React 当中, 做 Diff 之前需要生成 Virtual DOM, 这很消耗性能,而递进渲染通过简单的办法有效使用的缓存, 能大大提高性能.

从程序员角度做一些思考

2016-11-18
阅读 3 分钟
2.3k
出于很多原因, 我在线下的生活其实挺无聊, 偶尔逛逛公园, 就这样了.所以更多的时间我还是在网上用文字和人打交道, 微博啦, Twitter 啦,当然现在图片渐渐多了起来, 从买了 Pad 以后, 视频也多了起来.以前的我, 相对于同龄人来说也是苍白的, 苍白到再学校里只概念图书馆.有了电脑以后另说. 总之我生活的环境不是很有文化底...

Respo 首屏 DOM 更新的方案, CSS 动画的 Demo

2016-11-10
阅读 3 分钟
3.9k
比如做了一定程度的首屏优化, 有一个已经渲染了 App Shell 的 HTML,同时, 这个页面要等待 js 加载完才能运行, 所以设计了 CSS loading 动画,还有一个因素, 浏览器端渲染的 HTML 与静态页面的 HTML 存在不一致.

思考 Web 应用的数据流

2016-11-10
阅读 2 分钟
4.6k
之前做了个玩具叫做 Cumulo, 大致意思后端计算数据, 通过 Diff/Patch 发到前端,那么前端浏览器的 Store 就不需要业务逻辑了, 从而减少开发.然而这种做法存在天然的缺陷, 首先, 性能问题, 其次, 持久化问题.其实都可以归结为性能, 要性能, 就必须做增量, 那么整个架构就崩溃了.

公司的秋季技术交流会留的一些感想

2016-10-29
阅读 5 分钟
4.7k
公司内部的活动, 所以去的还是内部的前端比较多, 拉外边的牛人来讲.除了经常打招呼的贺老跟民工叔叔, 还来了起点中文的同学, 不过名字没认全,然后见到了 ningjs 的李寅侃大大, 当时看了视频, 确实聊着就哈哈哈哈 :D看起来以后有技术大会找人做总结应该是经常发生的事情了.. 很有意思.聊到两块我关注比较多的话题, 我觉得...

前端编译期页面渲染作为优化方案的想法

2016-10-21
阅读 3 分钟
4.3k
前面有篇文章已经写了一遍, 就是在 Respo 站点上有的优化方案,[链接]这种方案当中, 页面的静态内容是提前编译好的, 但同时前端也做渲染,大致的流程是

感觉值得引进一下国外造轮子的套路

2016-10-12
阅读 2 分钟
8.2k
写这篇笔记的动机有点不纯, 我觉得国内应该多造些轮子,今天 Facebook 的 yarn 出来了, 然后国内刷屏,这也不是 Facebook 第一次这么干了, 总是搞大新闻.我觉得, 国内也应该搞一搞, 反过来的对英文社区施加影响.而且刷屏这种事情, 恐怕还真多要套路

Respo 文档站点的 isomorphic rendering 方案

2016-10-09
阅读 4 分钟
3.2k
正好帮我刷一下访问量... [链接]注意站点的特别之处, 绝大部分的链接都是触发页面局部渲染的,而在特殊的 js 无法加载的情况下, 还是以链接的形式刷新页面.所以, 整个站点既是单页面, 又是服务端渲染... 感受一下.

更新了 router-as-view 组件

2016-09-23
阅读 2 分钟
1.6k
有点老调重弹了, 写短一点, 这篇文档介绍一下 router-as-view 组件的改进.组件前身是在简聊当中使用的 router-view 组件, 独立实现的路由,由于我重构了的简聊 Store 方案, 发现路由存在私有状态, 于是设计了这个方案.后来简聊停在了那个版本, GitHub 上的代码也就大概锁死了,所以最近我重命名了组件为 router-as-view 以...

一些用函数式编程重新理解的观念

2016-09-19
阅读 4 分钟
4.9k
我刚写顺手 CoffeeScript 的时候对程序的理解当然不一样,coffee 当中思路还算清晰, 全局变量和局部变量, 然后有函数,从而形成大大小小的对象以及闭包, 然后之间的数据发生相互作用,而这些关联和互作用足够复杂, 可以模拟我们业务所需的逻辑,作为脚本语言来说, 非常灵活的一套方法了.

Respo 的服务端渲染

2016-09-14
阅读 2 分钟
2.8k
因为 Respo 也是基于 Virtual DOM 的方案, 所以也能做服务端渲染,为了方便, 渲染过程用的是 Planck, 而不是直接调用 Boot.Respo SSR 的内容是承接前面的 Vue SSR 以及渐进首屏渲染的.

[译] 快速介绍 JavaScript 中的 CSP

2016-09-10
阅读 4 分钟
8.6k
CSP 是什么? 一般来说, 它是写并行代码的一套方案.在 Go 语言里自带该功能, Clojure 通过基于 Macro 的 core.async 来实现,现在 JavaScript 通过 Generator 也能做支持了, 或者说 ES6 的功能.

js-csp 可以开始尝试了

2016-09-09
阅读 4 分钟
6k
其中 <- 符号是往 channel 当中写入数据的操作.同时注意一般 <- 的位置对于 goroutine 来说是阻塞的,由于 channel 能够处理异步操作, 也就是说能做到异步代码用同步写法.更多的细节搜索 "go channel" 应该就能找到.

首屏渐进式渲染设想

2016-09-06
阅读 2 分钟
9.6k
这篇文章是关于 HTML 渲染的首屏优化的,主要是针对 web app 这种相对交互较多的应用场景,首屏优化主要为了改善用户对于页面的感知,而服务端渲染(SSR)是 web app 优化首屏依赖的重要手段.

Vue 2 服务端渲染初探

2016-08-24
阅读 3 分钟
39.3k
似乎 Vue 1 有看到过通过 jsdom 做后端渲染的例子, 性能不佳.Vue 2 开始将 Virtual DOM 作为底层实现, 于是模块分离开始支持 SSR.

My future of programming

2016-08-15
阅读 4 分钟
3.4k
正常的题目应该是 the future of programming 才对,不过我想我的套路终归会被认为是旁门左道, 很多人并不喜欢,再者说, 编程探索的方向有很多, Cirru 只是很窄的一个方向.大概在编译器, 文本语法, IDE 这些方向依然会是改进的主流.半图形编程嘛, 太奇怪, 而且也不通用, 也许还能把人吓怕了.但我还是想把自己的想法整理出...

Respo 近期归纳

2016-08-04
阅读 3 分钟
3.1k
Respo 是我基于 ClojureScript 写的模仿 React 的一个类库.之前有过文章介绍了, 起因是 React 社区对 cljs 的推崇,cljs 是 Lisp 方言, 而且自带 Immutable data, 很实用写 virtual DOM.我从三月初开始写, 中间断断续续做了优化和改进,目前项目开始稳定, 并且积攒了一些经验可以整理出来分享.

关于 Cirru Vector 语法以及近期回顾

2016-07-23
阅读 4 分钟
3.2k
上周给 Cirru 增加了一个简单的向量语法, 基于 EDN 弄的.之前 Cirru 已经有 .cirru 格式的缩进写法, 但是不合适,原因是我的代码普遍用 Cirru Editor 生成的, 结构比较复杂,而 Cirru 缩进语法通过程序生成的代码, 总是不够可靠,于是我改用了 JSON 存储, 但 JSON 的问题是查看 git diff 不方便,于是基于 Clojure EDN 语法...

Clouditor: 基于栈的编辑器的想法

2016-07-10
阅读 2 分钟
3.2k
Clouditor 是基于我前些天的一些想法整理出来一个原型项目,简单说呢, 我觉得编辑器的侧边栏应该显示调用栈而不是文件树,具体的一些我录了视频, 应该还是能说清楚的:

Respo 快速入门

2016-06-25
阅读 4 分钟
4.6k
本文使用了 Respo 低版本的 API, 新版本的写法请参考英文版本或者官网需要的区别是 mutate! 已经用 cursor 的方案替代了.

Cumulo 的 ClojureScript 模块已经成型

2016-06-19
阅读 4 分钟
3.1k
刷一下存在感, 感觉 Cumulo cljs 接近一个可 Demo 的状态了2014 开始使用 React 之后, 就对 Restful 的套路感到有疑问React 要的是声明式地描述结构, 然后用算法自动填充其中的逻辑Restful API 的设计类似 DOM API 的设计, 跟 React 的思路完全不同为了在网络层达高开发效率, 高层级的抽象是少不了的

关于自身技术栈的一些思考跟感想

2016-06-02
阅读 2 分钟
5.9k
一般心情烦躁我是应该把文章扔豆瓣上, 不过这篇技术内容太多了点大概每过一段时间就会觉得迷茫, 虽然和身体有关, 但跟技术方面也有关系这个大概是从到上海开始的, 毕竟之前上学和实现很难形成自己的节奏我印象比较深的一次, 大概是两年前某个时候, 我写的 Todolist 坏了之前的一段时间, 我因为学会了 Vue, 又学会了 Reac...

初步整理的关于 Progressive Web Apps 的资料

2016-05-25
阅读 6 分钟
8k
在 Twitter 上看到 Addy Osmani 发的视频被狂转, 开始注意[链接][链接]之前几乎对这个词语没有印象, 看到是在 IO 的演讲还以为是新技术在 Youtube 上找一下, 这次好多个视频是关于 Progressive Web Apps 的视频的内容主要是讲网站优化, 分别用 React, Angular, Ember 做例子可惜没有 Vue, 大概要等小右补... 方案应该没...

单页面开发思路, 阶段小结

2016-05-22
阅读 7 分钟
6.3k
去年年底在公司内部发过一篇梳理, 回顾了下两年面对的各种前端问题单页面由于正在发展之中, 加上 React 社区的发展, 细节不少虽然不是很难的东西, 但一边摸索一边推进不得不想了挺多考虑到后面不是做大型单页面应用, 中间很多问题大概不会继续深入了我觉得相关的技能梳理一下也比较有用.. 当做记录也好本来是两个月前打...

近期(Mar~May)个人技术关注点回顾

2016-05-13
阅读 4 分钟
3.6k
一个人待久了有点话唠, 这篇随笔乱的想法也多很快准备回去上班了, 心里有点打鼓, 但还是尽量吧算下来歇了大概两个月, 身体也好些了, 心态也平稳了许多去年冬天时候一会感冒一会咽炎, 被咳嗽折腾了好久, 挺不开心的照顾好自己这种事情, 本以为容易, 到身体不适再去想真的挺难的死磕 bug 时候会说再坚持一会, 再坚持一会, ...

基于热替换技术推想未来的 Web 开发技术

2016-05-08
阅读 4 分钟
8.6k
微博上写了几段, 想想太长, 还是写成文章发出来, 这事对我还挺重要的原本是在反思自己为什么兴趣所在的前端项目居然蔓延得那么广甚至导致技术不专一, 很多细节做不好. 其中的原因何在? 我认为前端太广于是想到整体发展的趋势上, 于是认为背后还在更深层的事件按这点进行推想, 也就是站在热替换这点往前眺望, 有种可能性...

声明式写动画, 可以的!

2016-05-07
阅读 4 分钟
4.8k
写得我脑子都乱了, 后面决定分成章节写, 所以先看章节几个标题吧: 前端动画库的问题 声明式写动画组件 Quamolit 项目来源 Quamolit 方案的思路 Quamolit 方案的实现 Quamolit 存在的问题 声明式写动画的前景 前端动画库的问题 经常看新闻的话, 有相当多的动画库. 其实很多知识封装 API 而已当然 API 是好的, 提供更多兼...

关于 Haskell 当中使用 mutable 数据的一些资料

2016-05-05
阅读 5 分钟
5k
网上扒了不少链接, 看了以后对问题有点改观, 但是消化不掉所以整理一下放在这里, 希望有点提升, 而且可以讨论下这个问题Clojure 教程当中明明白白讲过 Atom, 所以可变数据的态度明确Clojure 里就是整体用不可变数据, 而可变的部分用 Atom 包裹起来到了 ClojureScript 更放开了调用 JavaScript 代码时的可变状态由于 Cloj...

Respo 单页面应用 Demo 代码解释

2016-05-05
阅读 4 分钟
4.4k
Respo 确实是个轮子, 甚至不像是 react-lite 那样能替代 ReactRespo 主要的目标是用 ClojureScript 重新实现一遍, 以及改进和学习为了方便使用, 我把相应代码整理出一个模块, 方便的有兴趣的同学使用[链接]随后我增加了一个 example 用来展示具体的使用方法[链接]我用一个视频录制了从创建项目到完成界面的过程[链接]

关于 Quamolit 动画方案设计的思考

2016-04-19
阅读 9 分钟
3.7k
最近两周在思考 React 动画的问题, 也就是 Quamolit 的代码之前实现的 Respo 属于山寨 React, 实际上复杂度比起 React 低太多了回过头想想挺走运, 想清楚了 sorted-map diff 的算法, 然后搞定了而且类似的算法在 Quamolit 当中也起到了决定性的作用, 所以说走运Respo 主要是基于缓存和性能优化方面考虑的, 并不涉及动画Q...