文章
已发布的全部长文。
hello, world 示例
发布于我们先写一个关于 graphql.js 的 hello, world 示例,并且围绕它展开对 graphql 的学习 由上,也可以看出 graphql 很关键的两个要素: schema 和 query 。而当我们开发 web 应用时, schema 将会是服务端的主体,而 query 存在于前端中,类似 REST 中的 API。
了解 graphql: schema 与 operation
发布于从上文 $1 中可以看出 graphql 很关键的两个要素: schema 和 operation 。 而当我们开发 web 应用时, schema 将会是服务端的主体,而 operation 存在于前端中,类似 REST 中的 API。 我们先抽出 schema 的代码部分,这里有 GraphQLSchema , GraphQLObje
Node 应用中如何进行参数校验
发布于Controller 层 Fail Fast:JSON Schema/ajv 与 Joi 对比、koa-joi-router 路由校验,以及 safe-regex 防 ReDoS。
结构化日志
发布于在一个健壮的项目中,日志是必不可少的。而格式化的日志更有助于我们快速检索日志,更快的找到性能瓶颈,更快的解决线上故障。 如果在 nodejs 环境中,推荐 $1 作为日志库 在所有关于日志的组件/函数库中都会有 level 的属性。它表示日志的紧急程度。一般会分为以下几个等级 + error : 线上第一时间需要解决的问题 + warn
Linux 常见系统调用详解:从 epoll 到 mmap 的完整 C 语言 API 指南
发布于详细介绍 Linux 操作系统中 11 个核心系统调用的使用方法,包含 epoll、accept、read/write、mmap、brk 等函数的 C 语言签名、参数说明和实际应用示例。
Node 中的全链路式日志
发布于有效解决此类问题,我们需要依赖全链路式的日志作为蛛丝马迹。如当发现测试环境某条 API 延迟过高时,通过该 API 在日志系统中找到所涉及到的所有关键逻辑及数据库查询,查找是否 SQL 查询过多或其中有慢查询所致,或者是否被上游服务拖累。
dev 与 devDep 的区别
发布于当 require('package-hello') 时,假设 package-hello 是一个 npm 库,我们是如何找到该 package 的? 1. 寻找当前目录的 node_modules/package-hello 目录 1. 如果未找到,寻找上一级的 ../node_modules/package-hello 目录,以此递归
Node 中异常上报与监控
发布于Node 后端在 API/GraphQL 中间件与 process 事件里收异常,FormatError 字段设计,以及 Sentry 上报与错误级别指标。
Sequelize V5 升级指南:完整迁移方案与 1400+ 编译错误解决实录
发布于详细记录 Sequelize 从 V4 升级到 V5 的完整过程,包含 TypeScript 编译错误处理、运行时问题解决方案,以及 1784 行代码变更的实战经验分享。
如何调试 node.js 源码
发布于node.js 源码托管在 $1。 通过以下命令对 node.js 源码进行编译。 等待的时间较长,需要一顿吃火锅的功夫。 源码编译之后会生成 ./out 目录,在根目录中会生成可执行命令行工具 node 与 node_g ,指向 ./out 中的符号链接。 使用 node_g 替代全局的 node ,可对源码进行调试。
PostgreSQL 用户 ID 重构:自增主键优化与数据迁移方案
发布于详解如何在 PostgreSQL 中安全地重设用户表 ID,包含外键设置、数据迁移策略和 Sequence 配置的完整解决方案
Sequelize 升级实战:使用 sed 命令批量替换 String Operators
发布于详解如何使用 sed 命令和正则表达式批量替换 Sequelize.js 升级到 V5 版本时的 String based operators,提升代码迁移效率
Code Spliting
发布于Code Spliting 往往归为两个方面: 1. 通过 splitChunksPlugin 提取公共子模块,把第三方模块打包为 vendor.js 。一般被称作 Bundle Spliting 。 1. 通过 import() 动态加载模块,进行按需加载。一般被称作 Code Spliting 。 Code Spliting 可显著提
前端二进制数据处理完全指南:ArrayBuffer、Blob、DataURL 等类型转换详解
发布于深入解析前端二进制数据处理:ArrayBuffer、TypedArray、Blob、DataURL、ObjectURL 之间的转换,涵盖文件上传下载、音频处理等实战场景
Apache Spark 完全入门指南:从环境搭建到 Structured Streaming 的零基础学习教程
发布于详细讲解Apache Spark大数据处理框架的核心概念,涵盖环境搭建、Dataset、RDD、SQL、DataFrame等主要组件,包含实战代码示例,适合初学者快速掌握Spark开发技能
Scala 入门学习完全指南:从基础语法到面向对象编程实战
发布于全面的 Scala 编程语言学习教程,涵盖环境配置、数据类型、函数、类与对象、集合操作等核心概念,助您快速掌握函数式编程
纯 CSS 实现 Material Design Input 过渡效果详解
发布于详解如何使用纯 CSS 实现 Material Design 风格的 input 过渡动画效果,涵盖多种 CSS 选择器技巧和实现方案
SBT 入门实战指南:Scala 项目构建配置与依赖管理完全教程
发布于详细介绍 SBT 构建工具的使用方法,涵盖项目创建、配置管理、编译运行、打包部署和第三方库依赖管理的完整实战教程
Canal 安装配置指南:MySQL Binlog 同步到 Kafka 的完整部署方案
发布于详解 Canal 安装配置过程,实现 MySQL binlog 增量数据同步到 Kafka,包含完整的环境搭建和配置文件设置步骤
Kafka 从入门到实战:分布式流处理平台完整学习指南
发布于深入学习 Kafka 分布式流处理平台,涵盖环境搭建、集群配置、Producer/Consumer API 使用,从基础概念到生产实践的完整指南