背景去年下半年,我在微信书架里加入了许多技术书籍,各种类别的都有,断断续续的读了一部分。没有计划的阅读,收效甚微。新年伊始,我准备尝试一下其他方式,比如阅读周。每月抽出1~2个非连续周,完整阅读一本书籍。这个“玩法”虽然常见且板正,但是有效,已经坚持阅读三个月。4月份的阅读计划有两本,《你不知道的JavaScrip》系列迎来收尾。已读完书籍:《架构简洁之道》、《深入浅出的Node.js》、《你不知
背景去年下半年,我在微信书架里加入了许多技术书籍,各种类别的都有,断断续续的读了一部分。没有计划的阅读,收效甚微。新年伊始,我准备尝试一下其他方式,比如阅读周。每月抽出1~2个非连续周,完整阅读一本书籍。这个“玩法”虽然常见且板正,但是有效。已读完书籍:《架构简洁之道》。当前阅读周书籍:《深入浅出的Node.js》。模块机制CommonJS 规范CommonJS 规范的提出,主要是为了弥补当前 J
顺手就是一套 callback业务场景在最新一期的需求中,我需要在所有的购买入口,添加"阅读购买须知"的模块。"阅读购买须知"的模块主要包括两部分内容:购买须知按钮和提示文案。提交购买时,也需要增加对应的校验:是否已经进行了阅读操作。如果未操作,给出提示且不能进行下一步操作;如果已操作,可以继续下一步操作。UI 展示效果组件化设计按照代码复用的设计理念,我将"购买须知"模块进行了组件化设计。下单操
为什么提边界?除了上面提到的,有些过度设计导致的不容易找到修改位置,代码阅读不便。还有一个同样重要的问题。那就是老代码改动不全或现有功能不兼容。如果没注意到这个问题,且提测的时候没有进行特别的说明,可能导致线上Bug的发生。复用设计,不同之处也很重要这个单拎出来写,是因为之前吃过亏。前面提到了功能设计可能会带来的三个问题,其中第一个问题,对于复杂的功能,一味的关注相同之处,去做逻辑复用,导致后续出
故事是这样开始的很久很久以前,我关注的一个游戏博主,发了一个游戏视频。然后我就见识到了什么叫,「游戏叫你一步噶,你绝对走不到第二步」。这个带那么点整蛊的性质的脑洞游戏,瞬间引起了我浓厚的兴趣。需要玩家克服大脑常规套路的惯性,那岂不是游戏处处是惊喜。不过,游戏的本质还是在于趣味性,玩家掌握了规律之后,还是可以通关的。等等,有没有无法通关的游戏?这不就来了么,被「愚弄」智商的愉乐游戏,不设计一个怪浪费
前言await-to-js 的源码较少,代码较少的情况,可以尝试采用 3W 方法进行源码分析,帮助快速了解它的实际应用场景。阅读本文,会有以下收获:了解 await-to-js 库能解决什么问题。分析 await-to-js 库是如何解决问题。摸索 await-to-js 库的实际使用场景。Why:await-to-js 诞生的契机打开它的 github 地址,有很简单的一句介绍:Async aw
前言本篇主要分享如何实现一个弹窗展示形式的6位卡号输入功能。6位卡号输入前面是根据卡的不同状态的流程实现,接下来,讲讲卡号输入的交互实现。卡号输入 UIUI 的呈现,会影响前端的实现方式。这里 UI 设计成弹出层的方式,每个数字都是一个方框。开发前在开发前,我列了一些可能出现的问题。比如,不同手机的光标样式、输入时页面抖动、input无法只输入数字等。所以我在实现的时候,有针对性的规避前面罗列的问
前言前面提到了可以使用yocto-queue库代替Array操作数组,本篇则深入源码了解一下yocto-queue是如何实现替代数组的。yocto-queue源码分析源码中的代码量相对较少,读起来会比较轻松,看似可以琢磨的点少,其实不然。代码中包含知识点主要包括类的属性、链表与数组的对比、队列、自定义迭代器等,容我细讲。git 地址:yocto-queueNode 类node 类的作用是在新增操作
前言本文主要讲解 classnames 相关的知识点。对 classnames 源码,按照功能模块进行解读。尤其对于源码中关键代码从实现层面做了解读。 在总结过程中,对 CSS-in-JS 写法有了不同的想法,结合大佬的文章,将想法记录在了文末。classnames 的原理源码目录功能模块目录结构classnames ┣ ?benchmarks ┃ ┣ ?fixtures.js ┃ ┣ ?
前言通过axios 源码阅读,实现formDataToJSON 抽丝剥茧 formData 与 Object 的转换,接下来详细分享整个过程。formDataToJSON 抽丝剥茧 formData 与 Object 的转换FormData 对象FormData 对象用以将数据编译成键值对,以便用XMLHttpRequest来发送数据。FormData 对象主要用于发送表单数据,但亦可用于发送带键
前言最近在改动老代码时,发现了一个有趣的现象。对于异步请求返回结果处理中,使用finally做兜底处理,不同的页面并不统一,也就是有的页面使用了,有的页面没使用,没使用的页面增加了额外的失败的处理。所以finally到底要不要统一?本着代码规范化原则的思维,我准备一探究竟。finally 听说好用?编程欢乐小剧场某:来吧,是时候做个决定了。一:我不知道怎么回答,多说的讯息。某:我们的异步请求,到底
常用图片资源类型我们项目里目前主要有三种图片资源类型第三方图片资源、本地SVG、本地base64这三种对应不同的使用场景:对于图片画质要求较高、图片内容较复杂的,一般都是将图片资源放到第三方图床上,页面展示通过加载远程地址的方式;小的 icon 图标,首选 SVG 格式,文件体积小,加载更快速。但是实现成本比较大,一般情况需要设计师的支持;base64,某些特殊功能实现下需要的格式,不常见 ,但是
前言antd 5.0 正式发布已经有一段时间了,发布当天,一心二用的看完直播。很喜欢整个设计,有种简约快乐工作的感觉,某些功能设计初衷也给了我一些启发。antd 5.0 提供的主题定制挺酷炫的,加之我最近对「CSS-in-JS」很感兴趣。于是迫不及待的打开了它的源码,准备研究一番 。我大部分情况下都是通过碎片化的时间来研究技术,所以时间合理配置和任务合理分块,一直是我常采用的方式。加上对源码阅读的
灵感闪现某天,正在认真的敲代码,突然同事问了我一个问题,虽然不难,但是解决方案还是挺有趣的。所以写写这篇文章,详细记录一下实现过程。这个功能来自业务功能中的条件分支全覆盖,原本的做法一个includes轻松搞定,而这次,我心生了一点点疑问:includes真的能一劳永逸吗?JS 实验开始includes 不是一劳永逸的法子?编程欢乐小剧场一:年轻人,为何唉声叹气。某:代码改漏了,太不严谨了。一:哪
前言本文主要讲解 classnames 相关的知识点。对 classnames 用法做了详细介绍。对 classnames 源码,按照功能模块进行解读。尤其对于源码中关键代码从实现层面做了解读。 在总结过程中,对 CSS-in-JS 写法有了不同的想法,结合大佬的文章,将想法记录在了文末。文章速读阅读本篇文章,你将有如下图中的收获:听说你叫 className讲 classnames 之前,科普一
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号