首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
全沾开发(huā)
Jiasm
创建于2021-05-11
订阅专栏
前端、Node.js相关,也会涉及到一些 GOLANG 及运维
等 17 人订阅
共46篇文章
创建于2021-05-11
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
总结工作以来的第一个十年
在当前公司接近 4 年,同时也是社会工龄接近 10 年的节点,思来想去还是记录一下过去这十年发生的事情和思考,毕竟可能没有下一个工作的十年了 :(
Verdaccio publish 时包含 deprecated 导致历史版本丢失问题原因分析
公司内部的 NPM 因为一些固有的 bug 经常被吐槽,最近刚好有时间可以来做优化,然后就尝试解一下之前遇到的一个 publish 的 bug,下边是分析记录。
记一个生产工具过于智能导致的坑
一个 zsh 特性引发的惨案,期间被迫翻看源码绝望之中偶然发现问题所在,挥泪写下记录避免其他人遭遇同样的问题。
记一次 Node.js http 服务的排障记录
最近我们团队接手了一个需要定时重启才能用的遗留项目,记录了完整的排障流程。主要涉及一些 TCP 相关的东西。
ioredis源码阅读[1]
上次针对 redis 的源码阅读涉及普通的 client,这次针对 cluster 模式下的 client 源码进行分析。 具体的源码路径就是在 lib/cluster 目录下了。
ioredis源码阅读[0]
从项目中看,源码都在 lib 文件夹下,是一个纯粹的 TS 项目。 lib 目录下的文件主要是一些通用能力的提供,比如 command、pipeline以及数据的传输等。 而下分的两个文件夹,redis 与 cluster 都是具体的 redis client 实现,clust…
grpc-node 源码阅读笔记[0]
其主要逻辑会集中在 数据的序列化/反序列化 以及 数据的传输上,而这两项 gRPC 分别选用了 Protocol Buffers 和 HTTP2 来作为默认选项。 gRPC 在 Node.js 的实现上一共有两个官方版本,一个是基于 c++ addon 的版本,另一个是纯 JS…
PM2源码分析
其他的一些功能就都是基于 PM2 之上的辅助功能了。 PM2 的项目结构算是比较简洁的了,主要的源码都在 lib 目录下, God 目录为核心功能多进程管理的实现,以及 API 目录则是提供了各种能力,包括 日志管理、面板查看系统信息以及各种辅助功能,最后就是 Sysinfo …
如何写一个简单的node.js c++扩展
可以看到,最后会匹配一个 .node,而后边的描述也表示该后缀的文件为一个二进制的资源。 而这个 .node 文件一般就会是我们所编译好的 c++ 扩展了。 日常的开发其实只用第一项就够了,我们用自己熟悉的语言,写一段熟悉的代码,然后发布在 NPM 之类的平台上,其他有相同需求…
GitLab CI/CD 在 Node.js 项目中的实践
首先是测试用例,最初我们设计在了 git hooks 里边,在执行 git commit 之前会进行检查,在本地运行测试用例。 这会带来一个时间上的问题,如果是日常开发,这么操作还是没什么问题的,但如果是线上 bug 修复,执行测试用例的时间依据项目大小可能会持续几分钟。 而为…
使用JSDoc提高代码的可读性
首先,JSDoc 并不会对源码产生任何的影响,所有的内容都是写在注释里边的。 所以并不需要担心 JSDoc 会对你的程序造成什么负面影响。 很显而易见的,编辑器也不能够确定这个函数究竟是什么含义,因为任何类型的两个参数都可以进行相加。 所以编辑器就会使用一个在 TypeScri…
Node程序debug小记
有时候,所见并不是所得,有些包,你需要去翻他的源码才知道为什么会这样。 今天调试一个程序,用到了一个很久之前的NPM包,名为formstream,用来将form表单数据转换为流的形式进行接口调用时的数据传递。 这是一个几年前的项目,所以使用的是Generator+co实现的异步…
基于游标的分页接口实现
分页接口的实现,在偏业务的服务端开发中应该很常见,PC时代的各种表格,移动时代的各种feed流、timeline。 出于对流量的控制,或者用户的体验,大批量的数据都不会直接返回给客户端,而是通过分页接口,多次请求返回数据。 所以可能习惯性的就使用类似的方式创建分页请求接口,让客…
了解可执行的NPM包
NPM是Node.js的包管理工具,随着Node.js的出现,以及前端开发开始使用gulp、webpack、rollup以及其他各种优秀的编译打包工具(大多数采用Node.js来实现),大家都开始接触到一些Node.js,发现了使用NPM来管理一些第三方模块会很方便。 大家搬砖…
util.promisify 的那些事儿
util.promisify是在node.js 8.x版本中新增的一个工具,用于将老式的Error first callback转换为Promise对象,让老项目改造变得更为轻松。 在官方推出这个工具之前,民间已经有很多类似的工具了,比如es6-promisify、thenif…
如何编写 Typescript 声明文件
使用TypeScript已经有了一段时间,这的确是一个好东西,虽说在使用的过程中也发现了一些bug,不过都是些小问题,所以整体体验还是很不错的。 TypeScript之所以叫Type,和它的强类型是分不开的,这也是区别于JavaScript最关键的一点,类型的声明可以直接写在代…
async语法升级踩坑小记
首先还是要谈谈改代码的理由,毕竟重构肯定是要有合理的理由的。 如果单纯想看升级相关事项可以直接选择跳过这部分。 从最原始的开始说起,期间确实遇到了几个年代久远的项目,Node 0.x,使用的普通callback,也有一些会应用上async.waterfall这样在当年看起来很优…
适配器在JavaScript中的体现
适配器设计模式在JavaScript中非常有用,在处理跨浏览器兼容问题、整合多个第三方SDK的调用,都可以看到它的身影。 其实在日常开发中,很多时候会不经意间写出符合某种设计模式的代码,毕竟设计模式就是老前辈们总结提炼出来的一些能够帮助提升开发效率的一些模版,源于日常的开发中。…
使用TS+Sequelize实现更简洁的CRUD
如果是经常使用Node来做服务端开发的童鞋,肯定不可避免的会操作数据库,做一些增删改查(CRUD,Create Read Update Delete)的操作,如果是一些简单的操作,类似定时脚本什么的,可能就直接生写SQL语句来实现功能了,而如果是在一些大型项目中,数十张、上百张…
使用 TypeScript 改造构建工具及测试用例
最近的一段时间一直在搞TypeScript,一个巨硬出品、赋予JavaScript语言静态类型和编译的语言。 第一个完全使用TypeScript重构的纯Node.js项目已经上线并稳定运行了。 第二个前后端的项目目前也在重构中,关于前端基于webpack的TypeScript套…
下一页