csRyan

358
获赞数
2
关注数
198
粉丝数
杭州
中山大学 | 软件工程
IP 属地广东
2017-08-31 加入
浏览 18k

So you're passionate? How passionate? What actions does your passion lead you to do? If the heart doesn't find a perfect rhyme with the head, then your passion means nothing.

1,128 声望|达人
全站排名超越 98% 用户
前端
757
javascript
371
react
211
css
207
angular4
172
黄金勋章
暂未获得该勋章
如何获得
1 白银勋章
个人动态
  • 发布了文章2023-06-05
    简单优雅的JavaScript代码片段(三):合并请求,成批发出
    简单优雅的JavaScript代码片段文章系列:简单优雅的JavaScript代码片段(一):异步控制简单优雅的JavaScript代码片段(二):流控和重试简单优雅的JavaScript代码片段(三):合并请求,成批发出场景说明后端提供的接口具备批量查询能力(比如,同时查询10个资源的...
  • 发布了文章2022-02-24
    手写一个Parser - 代码简单而功能强大的Pratt Parsing
    在编译的流程中,一个很重要的步骤是语法分析(又称解析,Parsing)。解析器(Parser)负责将Token流转化为抽象语法树(AST)。这篇文章介绍一种Parser的实现算法:Pratt Parsing,又称Top Down Operator Precedence Parsing,并用TypeScript来实现它。
  • 发布了文章2021-11-06
    【代码鉴赏】简单优雅的JavaScript代码片段(二):流控和重试
    后端为了保证系统稳定运行,往往会对调用频率进行限制(比如每人每秒不得超过10次)。为了避免造成资源浪费或者遭受系统惩罚,前端也需要主动限制自己调用API的频率。
  • 发布了文章2021-05-30
    微前端架构下的样式管控模式:使用CSS Variable来实现“样式参数”
    目前,社区比较关注微前端应用样式的”隔离性“,网上已经有诸多文章介绍了微前端的样式隔离方案。然而,如果微应用的样式只有“隔离性”而没有“可操控性”,那么微应用的样式就是定死的:如同一个不接受外部参数的函数,永远只做预先定义的事情,不接受调用者的管控和配置。
  • 发布了文章2021-03-11
    数据系统杂谈:React,数据一致性,计算与通信的本质
    揭晓答案:在id变化以后的第一次渲染,useAsync仍会返回上一个id对应的data。这一次渲染产生了两个不一致的数据:新的id和旧的data。
  • 发布了文章2020-12-09
    为什么信息产业更容易出现寡头?他们如何驯服标准为自己服务?
    你是否发现,在信息技术产业,经常会出现一家公司占据绝大部分市场的情况:微信、Windows、苹果、Photoshop、Google搜索、Chrome浏览器、Photoshop……大量的IT公司或产品,都在自己的领域呈现主导性优势。
  • 发布了文章2020-10-31
    程序员与流水线工人的区别
    看到最近流行起来的“打工人”的梗,在捧腹大笑以后,我也开始严肃地思考程序员这个工种的本质,开始思考“为什么程序员薪资那么高”。现在将思考结果写出来与各位交流,欢迎与我分享你的思考。
  • 发布了文章2020-08-22
    React hooks之痛:低效的变化传播
    不能。React hooks有一个致命的缺陷:数据变化每传播一步就需要等待1轮渲染。如果通过hook来定义计算关系,那么变化的传播会非常低效。
  • 发布了文章2020-08-15
    假设某个编程语言不支持函数调用本身,如何实现递归
    本文用于记录我在阅读康托尔、哥德尔、图灵——永恒的金色对角线时的思考和实现(主要是其中的YCombinator部分),因此本文不会完整地叙述前因后果。举个例子,使用常见的语言,任何人都能毫不费力地写出一个阶乘函数。下面用JavaScript举例: {代码...} 但是,一个有...
  • 赞了文章2020-07-14
    如何编写一个d.ts文件
    总结一下:从类型type角度分为:基本类型(string、number、boolean等)及其混合;复杂类型(class、function、object)及其混合(比如说又是class又是function)。从代码有效范围分为:全局变量、模块变量和又是全局变量又是模块变量的。从定义文件来说:自己写的.d...
  • 发布了文章2020-07-13
    从前端的视角理解数据和缓存
    数据系统是如此的普遍,以至于开发者实际上每天都在设计数据系统,却常常没有意识到它们的普适性,将多个本质相同的问题当作了孤立的问题来理解。应用状态管理、配置管理、用户数据管理问题,本质上都属于数据系统的问题。
  • 发布了文章2020-06-28
    【React的作弊模式】理解useReducer的优势和高级用法
    或许你已经知道,“当多个state需要一起更新时,就应该考虑使用useReducer”;或许你也已经听说过,“使用useReducer能够提高应用的性能”。但是篇文章希望帮助你理解:为什么useReducer能提高代码的可读性和性能,以及如何在reducer中读取props的值。
  • 发布了文章2020-06-28
    【代码鉴赏】简单优雅的JavaScript代码片段(一):异步控制
    Promise.race不满足需求,因为如果有一个Promise率先reject,结果Promise也会立即reject;Promise.all也不满足需求,因为它会等待所有Promise,并且要求所有Promise都成功resolve。
  • 发布了文章2020-06-15
    两种数据消费方式:pull与push,阴与阳
    pull和push,是在软件中消费数据的两种方式,它们描述了数据生产者(或持有者)与数据消费者之间是如何通讯的。过去我们肯定了解过它们,不过可能会在编程中会忽略它们之间的区别与联系,本篇文章希望帮助大家理解这两者的区别于联系,从而在编程中有意识地分辨与选...
  • 发布了文章2020-06-14
    JavaScript的WeakMap:向【不属于你的对象】添加【私有数据】
    例子1:dom对象,是由浏览器创建的,并且它会被你无法掌控的代码使用(比如大部分页面的dom由React框架管理,又或者当前页面同时运行了别人编写的JavaScript),那么你就不是这个对象的拥有者,应该避免往上面添加属性。
  • 发布了文章2020-04-18
    【React性能优化总结】React组件什么时候重新渲染?如何做性能优化?
    过渡期完成以后,函数式组件成为正统的React的开发模型,"component"就用来指代function component,而classes会使用“legacy class components”的方式来指代。未来不会出现“必须使用class组件才能实现”的React行为。
  • 发布了文章2020-03-25
    【JavaScript函数式编程】自己实现惰性数据流、数据流操作符
    在JavaScript的世界中,ES6的iterable和generator的背后的思想其实就是惰性数据流。对比现在人们对这个思想的诠释(迭代器模式)和40年前的诠释,感觉非常奇妙,加深了我对iterable和generator的理解。
  • 发布了文章2020-03-18
    React hooks,组合与抽象,状态管理
    用户可以定义一个状态仓储来容纳被共享的状态。状态仓储可以是一个全局对象,或者是一系列依附于组件树的对象。一般都会形成一个树状的数据结构,同构于应用的功能树。
  • 发布了文章2020-02-16
    leetcode 刷题总结归纳(干货)
    通用建议:题目一般只给一两个输入示例,这是远远不够的。我们思考的时候经常会被示例给束缚(脑子里只对着那个示例想)。如果自己在做题的时候,在纸上多构造几个示例,对比(找不同)和归纳(找相同),会大大增加解决的概率。
  • 赞了文章2019-10-15
    React 中同构(SSR)原理脉络梳理
    随着越来越多新型前端框架的推出,SSR 这个概念在前端开发领域的流行度越来越高,也有越来越多的项目采用这种技术方案进行了实现。SSR 产生的背景是什么?适用的场景是什么?实现的原理又是什么?希望大家在这篇文章中能够找到你想要的答案。