首页 文章 精选 留言 我的

文章列表

共 220323 篇
React 状态更新后组件不重新渲染?从闭包陷阱到引用相等性排查

React 状态更新后组件不重新渲染?从闭包陷阱到引用相等性排查

在 React 函数组件里,调用 setState 之后组件没有按预期重新渲染,是日常开发中很容易踩到的一类问题。它通常出现在事件回调、定时器、异步请求或 useMemo/useCallback 缓存之后:状态值确实变了,但 UI 没动,或者拿到的始终是旧值。原因往往不在 React 本身,而是闭包捕获了旧变量、依赖数组写错、对象引用没变、状态更新被合并,或...

JavaScript 中 async/await 在 forEach 里不生效的底层原因与正确写法

JavaScript 中 async/await 在 forEach 里不生效的底层原因与正确写法

很多人从 Promise 切到 async/await 之后,会习惯性地把原来 .then() 的写法直接改成 await,但在数组遍历里踩坑的概率非常高。最典型的一幕是:写了一个 async 函数,在 forEach 的回调里 await 某个异步请求,结果发现 forEach 后面的代码先执行了,收集到的结果永远是空的,或者控制台里打印顺序完全乱掉。这不...

Go 语言 http.Client 连接池踩坑:为什么你的 Keep-Alive 没生效?

Go 语言 http.Client 连接池踩坑:为什么你的 Keep-Alive 没生效?

用 Go 写后端服务时,调用外部 HTTP 接口几乎是家常便饭。为了复用 TCP 连接、降低延迟,大家都会依赖 http.Client 默认开启的 Keep-Alive 机制。但实际压测或上线后,有时会发现连接数暴涨、TIME_WAIT 堆积,甚至被下游服务限流——明明用的是同一个 client 实例,连接却完全没复用。问题通常出在响应体没有正确关闭、Tra...

Node.js 中使用 worker_threads 处理 CPU 密集型任务踩坑记录

Node.js 中使用 worker_threads 处理 CPU 密集型任务踩坑记录

最近在做一个图片元数据提取的服务,需要对用户上传的图片解析 EXIF 信息、生成缩略图并计算感知哈希。起初所有逻辑都跑在主线程里,接口响应时间从几十毫秒涨到了两三秒,并发稍微一高整个服务就像卡死一样。Node.js 的单线程事件循环遇到这类 CPU 密集型任务时,会把回调、定时器和 I/O 事件全部堵住,视觉上就是请求排队、心跳超时。这个问题很常见,通常发生...

Go 里用 time.Ticker 做定时任务,为什么你的 goroutine 会泄漏?

Go 里用 time.Ticker 做定时任务,为什么你的 goroutine 会泄漏?

线上有个用 Go 写的内部服务,跑了两天之后内存曲线一直缓慢往上走,pprof 一看 goroutine 数量比启动时多了好几千,而且全是同一个堆栈,停在 runtime.gopark 上。排查之后发现是几处用 time.Ticker 做轮询的地方出了问题。这类代码写起来很顺手:创建一个 Ticker,起一个 goroutine 循环读它的 C 通道做事情。...

React 中 useEffect 依赖数组的常见陷阱:从无限循环到闭包陈旧值

React 中 useEffect 依赖数组的常见陷阱:从无限循环到闭包陈旧值

在 React 函数组件中,useEffect 的依赖数组看起来简单,实际开发里却经常引发两类让人头疼的问题:一是组件陷入无限重渲染,二是 effect 内部读到的 state 或 props 永远是旧值。尤其是在 effect 中调用了 setState、又直接或间接依赖了对象或函数时,依赖数组的浅比较机制会让判断结果和直觉不一致。这篇文章从一个搜索列表页...

Node.js 中正确断开 PostgreSQL 连接池:避免进程挂起与连接泄漏

Node.js 中正确断开 PostgreSQL 连接池:避免进程挂起与连接泄漏

在 Node.js 服务里用 pg 库连接 PostgreSQL 时,很多人会直接在接口末尾调用 client.end(),或者把 pool 丢在全局不管。本地跑起来一切正常,部署到 Docker 或 PM2 后却经常遇到进程无法退出、连接数持续增长、数据库侧看到大量 idle 连接的问题。这通常是因为没有区分 client 和 pool 的生命周期:poo...

大模型底层架构与推理流程AI源码深度剖析

大模型底层架构与推理流程AI源码深度剖析

本文针对简易Transformer大模型核心推理链路进行源码解析,聚焦模型前向推理、注意力计算两大核心模块。旨在帮助开发者理解大模型底层数据流转逻辑,厘清从输入token到输出文本的完整计算流程。示例代码为简化版本,剥离分布式训练、KV缓存优化等工程化模块,保留最核心算法逻辑,便于快速上手阅读。​

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册