禅与计算机 禅与计算机
首页
  • Java基础

    • 一文搞懂Java核心技术
    • Java面向对象知识点大总结,建议收藏
    • 聊聊Java中的异常
    • 聊聊Java中的常用类String
    • 万字长文带你细聊Java注解本质
    • 来聊聊Java的反射机制
    • 深入解析Java泛型的魅力与机制
    • Java集合框架深度解析与面试指南
    • Java常用集合类HashMap深度解析
    • LinkedHashMap源码到面试题的全解析
    • 深入解析CopyOnWriteArrayList的工作机制
    • Java基础IO总结
    • Java三大IO模型小结
    • Java BIO NIO AIO详解
    • Java进阶NIO之IO多路复用详解
    • Java8流式编程入门
    • 一文速通lambda与函数式编程
    • Java8函数式方法引用最佳实践
    • Java异常:从原理到实践
  • Java并发编程

    • Java并发编程基础小结
    • 深入理解Java中的final关键字
    • 浅谈Java并发安全发布技术
    • 浅谈Java并发编程中断的哲学
    • Java线程池知识点小结
    • 浅谈Java线程池中拒绝策略与流控的艺术
    • synchronized关键字使用指南
    • 深入源码解析synchronized关键字
    • 详解JUC包下的锁
    • 详解并发编程中的CAS原子类
    • LongAdder源码分析
    • AQS源码解析
    • 深入剖析Java并发编程中的死锁问题
    • Java并发容器总结
    • 详解Java并发编程volatile关键字
    • 并发编程ThreadLocal必知必会
    • CompletableFuture基础实践小结
    • CompletableFuture异步多任务最佳实践
    • 硬核详解FutureTask设计与实现
    • 线程池大小设置的底层逻辑与场景化方案
    • 来聊一个有趣的限流器RateLimiter
  • JVM相关

    • 从零开始掌握 JVM
    • JVM核心知识点小结
    • JVM指令集概览:基础与应用
    • JVM类加载器深度解析
    • JVM方法区深度解析
    • Java内存模型JMM详解
    • Java对象大小的精确计算方法
    • 逃逸分析在Java中的应用与优化
    • 从零开始理解JVM的JIT编译机制
    • G1垃圾回收器:原理详解与调优指南
    • JVM故障排查实战指南
    • JVM内存问题排错最佳实践
    • JVM内存溢出排查指南
    • 简明的Arthas使用教程
    • 简明的Arthas配置及基础运维教程
    • 基于Arthas Idea的JVM故障排查与指令生成
    • 基于arthas量化监控诊断java应用方法论与实践
    • 深入剖析arthas技术原理
    • 探索JVM的隐秘角落:元空间详解
  • 深入理解Spring框架

    • Spring 核心知识点全面解析
    • Spring核心功能IOC详解
    • Spring AOP 深度剖析与实践
    • Spring 三级缓存机制深度解析
    • 深入 Spring 源码,剖析设计模式的落地实践
    • 探索 Spring 事务的奥秘
    • 深入解析Spring Bean的生命周期管理
    • 解读 Spring Boot 核心知识点
    • Spring Boot 启动优化实战:1分钟到13秒的排查与优化之路
    • Spring Boot自动装配原理及实践
    • 一文快速上手Sharding-JDBC
    • sharding-jdbc如何实现分页查询
    • 基于DynamicDataSource整合分库分表框架Shardingsphere
  • 计算机组成原理

    • 计算机硬件知识小结
    • CPU核心知识点小结
    • 浅谈CPU流水线的艺术
    • 从Java程序员视角聊聊CPU缓存
    • CPU任务调度和伪共享问题小结
    • CPU MESI缓存一致性协议
    • CPU内存管理机制
    • 内存深度解析
    • 磁盘存储原理
    • 详解计算机启动步骤
    • CPU南北桥架构与发展史
    • CPU中断机制与硬件交互详解
  • 操作系统

    • 如何实现一个高性能服务器
    • Linux文件结构与文件权限
    • Linux常见压缩指令小结
    • Linux核心系统调用详解
    • Linux进程管理
    • Linux线程管理
    • 进程与线程深度解析
    • Linux进程间通信机制
    • 零拷贝技术原理与实践
    • CPU缓存一致性问题深度解析
    • IO任务与CPU调度艺术
  • 计算机网络

    • 网卡通信原理详解
    • 网卡数据包处理指南
    • 基于抓包详解TCP协议
  • 编码最佳实践

    • 浅谈现代软件工程TDD最佳实践
    • 浅谈TDD模式下并发程序设计与实现
    • 面向AI编程新范式Trae后端开发环境搭建与实践
    • 基于Vibe Coding的Redis分页查询实现
    • 告别AI无效对话:资深工程师的提示词设计最佳实践
  • 实用技巧与配置

    • Mac常用快捷键与效率插件指南
    • Keynote技术科普短视频制作全攻略
  • 元认知

    • 摩擦感:AI时代的写作自省
    • 从断墨寻径浅谈程序员的元学习能力
    • AI时代专注力培养
    • 如何阅读一本书:技术书籍的读书笔记方法论
  • 开发工具

    • IDEA配置详解与高效使用指南
    • Windows环境下JDK安装与环境变量配置
    • Windows 10 下的 Maven 安装配置教程
    • Linux与macOS下Git安装及SSH配置教程
    • 打造高效mac终端:oh-my-zsh与插件配置
    • 详解AI时代下生产力最佳实践—Iterm2+zsh
    • 手把手用WSL在Windows上搭一个Linux开发环境(含MySQL实战)
    • 系统重装简记:从U盘启动盘到常用软件清单
    • AI时代,Windows开发者转Mac的快速上手指南
  • Nodejs
  • 博客搭建
  • Redis

    • Redis核心知识小结
    • 解锁Redis发布订阅模式
    • 掌握Redis事务
    • Redis主从复制技术
    • Redis的哨兵模式详解
    • 深度剖析Redisson分布式锁
    • 详解redis单线程设计思路
    • 来聊聊Redis所实现的Reactor模型
    • Redis RDB持久化源码深度解析
    • 来聊聊redis的AOF写入
    • 来聊聊Redis持久化AOF管道通信的设计
    • 来聊聊redis集群数据迁移
    • Redis SDS动态字符串深度解析
    • 高效索引的秘密:redis跳表设计与实现
    • 聊聊redis中的字典设计与实现
    • 重读 Redis SCAN 源码:那些当年没看懂的反向迭代细节
  • MySQL

    • MySQL基础知识点小结
    • 解读MySQL 索引基础
    • MySQL 索引进阶指南
    • 解读MySQL Explain关键字
    • 探秘 MySQL 锁:原理与实践
    • 详解MySQL重做日志redolog
    • 详解undoLog在MySQL MVCC中的运用
    • MySQL二进制日志binlog核心知识点
    • MySQL高效插入数据的最佳实践
    • MySQL分页查询优化指南
    • MySQL流式查询的奥秘与应用解析
    • 来聊聊分库分表
    • 来聊聊大厂常用的分布式ID生成方案
  • ElasticSearch

    • Elasticsearch核心原理与架构设计
    • ES 基础使用指南
    • ElasticSearch如何写入一篇文档
    • 深入剖析Elasticsearch文档读取原理
    • 聊聊ElasticSearch性能调优
    • Spring借助Easy-Es操作ES
  • Netty

    • 一文快速了解高性能网络通信框架Netty
    • Netty网络传输简记
    • 来聊聊Netty的ByteBuf
    • 来聊聊Netty消息发送的那些事
    • 解密Netty高性能之谜:NioEventLoop线程池阻塞分析
    • 详解Netty中的责任链Pipeline如何管理ChannelHandler
    • Netty Reactor模型常见知识点小结
    • Netty如何驾驭TCP流式传输?粘包拆包问题全解
    • Netty解码器源码解析
  • 消息队列

    • 一文快速入门消息队列
    • 消息队列RocketMQ入门指南
    • 基于RocketMQ实现分布式事务
    • RocketMQ容器化最佳实践
    • RocketMQ常见问题与深度解析
    • Kafka快速安装与使用指南
  • Nginx

    • Linux下的nginx安装
    • Nginx基础入门总结
    • Nginx核心指令小结
    • Nginx进程结构与核心模块初探
    • Nginx应用进阶HTTP核心模块配置
    • Nginx缓存及HTTPS配置小记
    • nginx高可用实践简记
    • Nginx性能优化
  • 微服务基础

    • 微服务基础知识小结
    • 分布式事务核心概念小结
    • OpenFeign核心知识小结
    • 微服务组件Gateway核心使用小结
    • 分布式事务Seata实践
    • 用 Docker Compose 完成 Seata 的整合部署
  • Nacos

    • Nacos服务注册原理全解析
    • Nacos服务订阅流程全解析
    • Nacos服务变更推送流程全解析
    • 深入解析SpringCloud负载均衡器Loadbalancer
    • Nacos源码环境搭建与调试指南
  • Seata

    • 深度剖析Seata源码
  • Docker部署

    • 一文快速掌握docker的理念和基本使用
    • 使用docker编排容器
    • 基于docker-compose部署微服务基本环境
    • 基于docker容器化部署微服务
    • Gateway全局异常处理及请求响应监控
    • Docker图形化界面工具Portainer最佳实践
  • Go基础

    • AI时代的Go语言基础语法认知
    • AI时代视角下聊聊Go语言的编译过程
    • 一文快速掌握Go语言切片
    • 来聊聊go语言的hashMap
    • 一文速通go语言类型系统
    • 浅谈Go语言中的面向对象
    • go语言是如何实现协程的
    • 聊聊go语言中的GMP模型
    • 极简的go语言channel入门
    • 聊聊go语言基于epoll的网络并发实现
    • 写给Java开发者的Go协程(goroutine)入门精讲
  • mini-redis实战

    • 来聊聊我用go手写redis这件事
    • mini-redis如何解析处理客户端请求
    • 实现mini-redis字符串操作
    • 硬核复刻redis底层双向链表核心实现
    • 动手复刻redis之go语言下的字典的设计与落地
    • Go 语言下的 Redis 跳表设计与实现
    • Go 语言版 Redis 有序集合指令复刻探索
    • 基于 Claude Code 复刻 Redis 慢查询指令实践
    • mini-redis SCAN指令复刻:自底向上的工程方法论实践
  • 项目编排

    • Spring脚手架创建简记
    • Spring脚手架集成分页插件
    • Spring脚手架集成校验框架
    • maven父子模块两种搭建方式简记
    • SpringBoot+Vue3前后端快速整合入门
    • 来聊聊Java项目分层规范
  • 场景设计

    • Java实现文件分片上传
    • 基于时间缓存优化浏览器轮询阻塞问题
    • 基于EasyExcel实现高效导出
    • 10亿数据高效插入MySQL最佳方案
    • AI时代不可替代的底层思维:位运算与逻辑运算实战
    • 对账核销场景设计与重构实践
    • 千万级交易流水慢查询综合治理实践
    • 记一次StarRocks源码级排错和既有架构优化实践
    • 基于快照合并修复Seata AT回滚补偿与Flink批攒导致StarRocks数据不一致最佳实践
  • CI/CD

    • 基于NETAPP实现内网穿透
    • 基于Gitee实现Jenkins自动化部署SpringBoot项目
    • Jenkins离线安装部署教程简记
    • 基于Nexus搭建Maven私服基础入门
    • 基于内网的Jenkins整合gitlab综合方案简记
  • 监控方法论

    • SpringBoot集成Prometheus与Grafana监控
    • Java监控度量Micrometer全解析
    • 从 micrometer计量器角度快速上手promQL
    • 硬核安利一个监控告警开源项目Nightingale
  • Spring AI

    • Spring AI Alibaba深度实战:一文掌握智能体开发全流程
    • Spring AI Alibaba实战:JVM监控诊断Arthas Agent的工程化构建与最佳实践
  • 大模型评测

    • M2.7 真能打!我用两个真实场景测了测,结果有点意外
    • Qoder JetBrains插件评测:祖传代码重构与接口优化实战
    • 从一次线上事故到底层算法复刻与监控落地,我用MiniMax M3跑通了完整闭环
  • AI工具链

    • Claude Code 实战指南:从安装配置到企业级开发流程
    • 一次 Claude Code 启动失败的 AI 辅助排查复盘
    • 基于提示词工程与KITE框架的Redis签到功能开发实践
    • Claude Code 记忆管理:CLAUDE.md 最佳实践
    • Claude Code 规则管理:Rules 拆分编排与迭代实践(文末送书)
    • VSCode与Claude Code后端开发环境搭建与AI编程工作流实践
    • AI 写的企业级组件不敢用?我替你验过了
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

sharkchili

计算机禅修者
首页
  • Java基础

    • 一文搞懂Java核心技术
    • Java面向对象知识点大总结,建议收藏
    • 聊聊Java中的异常
    • 聊聊Java中的常用类String
    • 万字长文带你细聊Java注解本质
    • 来聊聊Java的反射机制
    • 深入解析Java泛型的魅力与机制
    • Java集合框架深度解析与面试指南
    • Java常用集合类HashMap深度解析
    • LinkedHashMap源码到面试题的全解析
    • 深入解析CopyOnWriteArrayList的工作机制
    • Java基础IO总结
    • Java三大IO模型小结
    • Java BIO NIO AIO详解
    • Java进阶NIO之IO多路复用详解
    • Java8流式编程入门
    • 一文速通lambda与函数式编程
    • Java8函数式方法引用最佳实践
    • Java异常:从原理到实践
  • Java并发编程

    • Java并发编程基础小结
    • 深入理解Java中的final关键字
    • 浅谈Java并发安全发布技术
    • 浅谈Java并发编程中断的哲学
    • Java线程池知识点小结
    • 浅谈Java线程池中拒绝策略与流控的艺术
    • synchronized关键字使用指南
    • 深入源码解析synchronized关键字
    • 详解JUC包下的锁
    • 详解并发编程中的CAS原子类
    • LongAdder源码分析
    • AQS源码解析
    • 深入剖析Java并发编程中的死锁问题
    • Java并发容器总结
    • 详解Java并发编程volatile关键字
    • 并发编程ThreadLocal必知必会
    • CompletableFuture基础实践小结
    • CompletableFuture异步多任务最佳实践
    • 硬核详解FutureTask设计与实现
    • 线程池大小设置的底层逻辑与场景化方案
    • 来聊一个有趣的限流器RateLimiter
  • JVM相关

    • 从零开始掌握 JVM
    • JVM核心知识点小结
    • JVM指令集概览:基础与应用
    • JVM类加载器深度解析
    • JVM方法区深度解析
    • Java内存模型JMM详解
    • Java对象大小的精确计算方法
    • 逃逸分析在Java中的应用与优化
    • 从零开始理解JVM的JIT编译机制
    • G1垃圾回收器:原理详解与调优指南
    • JVM故障排查实战指南
    • JVM内存问题排错最佳实践
    • JVM内存溢出排查指南
    • 简明的Arthas使用教程
    • 简明的Arthas配置及基础运维教程
    • 基于Arthas Idea的JVM故障排查与指令生成
    • 基于arthas量化监控诊断java应用方法论与实践
    • 深入剖析arthas技术原理
    • 探索JVM的隐秘角落:元空间详解
  • 深入理解Spring框架

    • Spring 核心知识点全面解析
    • Spring核心功能IOC详解
    • Spring AOP 深度剖析与实践
    • Spring 三级缓存机制深度解析
    • 深入 Spring 源码,剖析设计模式的落地实践
    • 探索 Spring 事务的奥秘
    • 深入解析Spring Bean的生命周期管理
    • 解读 Spring Boot 核心知识点
    • Spring Boot 启动优化实战:1分钟到13秒的排查与优化之路
    • Spring Boot自动装配原理及实践
    • 一文快速上手Sharding-JDBC
    • sharding-jdbc如何实现分页查询
    • 基于DynamicDataSource整合分库分表框架Shardingsphere
  • 计算机组成原理

    • 计算机硬件知识小结
    • CPU核心知识点小结
    • 浅谈CPU流水线的艺术
    • 从Java程序员视角聊聊CPU缓存
    • CPU任务调度和伪共享问题小结
    • CPU MESI缓存一致性协议
    • CPU内存管理机制
    • 内存深度解析
    • 磁盘存储原理
    • 详解计算机启动步骤
    • CPU南北桥架构与发展史
    • CPU中断机制与硬件交互详解
  • 操作系统

    • 如何实现一个高性能服务器
    • Linux文件结构与文件权限
    • Linux常见压缩指令小结
    • Linux核心系统调用详解
    • Linux进程管理
    • Linux线程管理
    • 进程与线程深度解析
    • Linux进程间通信机制
    • 零拷贝技术原理与实践
    • CPU缓存一致性问题深度解析
    • IO任务与CPU调度艺术
  • 计算机网络

    • 网卡通信原理详解
    • 网卡数据包处理指南
    • 基于抓包详解TCP协议
  • 编码最佳实践

    • 浅谈现代软件工程TDD最佳实践
    • 浅谈TDD模式下并发程序设计与实现
    • 面向AI编程新范式Trae后端开发环境搭建与实践
    • 基于Vibe Coding的Redis分页查询实现
    • 告别AI无效对话:资深工程师的提示词设计最佳实践
  • 实用技巧与配置

    • Mac常用快捷键与效率插件指南
    • Keynote技术科普短视频制作全攻略
  • 元认知

    • 摩擦感:AI时代的写作自省
    • 从断墨寻径浅谈程序员的元学习能力
    • AI时代专注力培养
    • 如何阅读一本书:技术书籍的读书笔记方法论
  • 开发工具

    • IDEA配置详解与高效使用指南
    • Windows环境下JDK安装与环境变量配置
    • Windows 10 下的 Maven 安装配置教程
    • Linux与macOS下Git安装及SSH配置教程
    • 打造高效mac终端:oh-my-zsh与插件配置
    • 详解AI时代下生产力最佳实践—Iterm2+zsh
    • 手把手用WSL在Windows上搭一个Linux开发环境(含MySQL实战)
    • 系统重装简记:从U盘启动盘到常用软件清单
    • AI时代,Windows开发者转Mac的快速上手指南
  • Nodejs
  • 博客搭建
  • Redis

    • Redis核心知识小结
    • 解锁Redis发布订阅模式
    • 掌握Redis事务
    • Redis主从复制技术
    • Redis的哨兵模式详解
    • 深度剖析Redisson分布式锁
    • 详解redis单线程设计思路
    • 来聊聊Redis所实现的Reactor模型
    • Redis RDB持久化源码深度解析
    • 来聊聊redis的AOF写入
    • 来聊聊Redis持久化AOF管道通信的设计
    • 来聊聊redis集群数据迁移
    • Redis SDS动态字符串深度解析
    • 高效索引的秘密:redis跳表设计与实现
    • 聊聊redis中的字典设计与实现
    • 重读 Redis SCAN 源码:那些当年没看懂的反向迭代细节
  • MySQL

    • MySQL基础知识点小结
    • 解读MySQL 索引基础
    • MySQL 索引进阶指南
    • 解读MySQL Explain关键字
    • 探秘 MySQL 锁:原理与实践
    • 详解MySQL重做日志redolog
    • 详解undoLog在MySQL MVCC中的运用
    • MySQL二进制日志binlog核心知识点
    • MySQL高效插入数据的最佳实践
    • MySQL分页查询优化指南
    • MySQL流式查询的奥秘与应用解析
    • 来聊聊分库分表
    • 来聊聊大厂常用的分布式ID生成方案
  • ElasticSearch

    • Elasticsearch核心原理与架构设计
    • ES 基础使用指南
    • ElasticSearch如何写入一篇文档
    • 深入剖析Elasticsearch文档读取原理
    • 聊聊ElasticSearch性能调优
    • Spring借助Easy-Es操作ES
  • Netty

    • 一文快速了解高性能网络通信框架Netty
    • Netty网络传输简记
    • 来聊聊Netty的ByteBuf
    • 来聊聊Netty消息发送的那些事
    • 解密Netty高性能之谜:NioEventLoop线程池阻塞分析
    • 详解Netty中的责任链Pipeline如何管理ChannelHandler
    • Netty Reactor模型常见知识点小结
    • Netty如何驾驭TCP流式传输?粘包拆包问题全解
    • Netty解码器源码解析
  • 消息队列

    • 一文快速入门消息队列
    • 消息队列RocketMQ入门指南
    • 基于RocketMQ实现分布式事务
    • RocketMQ容器化最佳实践
    • RocketMQ常见问题与深度解析
    • Kafka快速安装与使用指南
  • Nginx

    • Linux下的nginx安装
    • Nginx基础入门总结
    • Nginx核心指令小结
    • Nginx进程结构与核心模块初探
    • Nginx应用进阶HTTP核心模块配置
    • Nginx缓存及HTTPS配置小记
    • nginx高可用实践简记
    • Nginx性能优化
  • 微服务基础

    • 微服务基础知识小结
    • 分布式事务核心概念小结
    • OpenFeign核心知识小结
    • 微服务组件Gateway核心使用小结
    • 分布式事务Seata实践
    • 用 Docker Compose 完成 Seata 的整合部署
  • Nacos

    • Nacos服务注册原理全解析
    • Nacos服务订阅流程全解析
    • Nacos服务变更推送流程全解析
    • 深入解析SpringCloud负载均衡器Loadbalancer
    • Nacos源码环境搭建与调试指南
  • Seata

    • 深度剖析Seata源码
  • Docker部署

    • 一文快速掌握docker的理念和基本使用
    • 使用docker编排容器
    • 基于docker-compose部署微服务基本环境
    • 基于docker容器化部署微服务
    • Gateway全局异常处理及请求响应监控
    • Docker图形化界面工具Portainer最佳实践
  • Go基础

    • AI时代的Go语言基础语法认知
    • AI时代视角下聊聊Go语言的编译过程
    • 一文快速掌握Go语言切片
    • 来聊聊go语言的hashMap
    • 一文速通go语言类型系统
    • 浅谈Go语言中的面向对象
    • go语言是如何实现协程的
    • 聊聊go语言中的GMP模型
    • 极简的go语言channel入门
    • 聊聊go语言基于epoll的网络并发实现
    • 写给Java开发者的Go协程(goroutine)入门精讲
  • mini-redis实战

    • 来聊聊我用go手写redis这件事
    • mini-redis如何解析处理客户端请求
    • 实现mini-redis字符串操作
    • 硬核复刻redis底层双向链表核心实现
    • 动手复刻redis之go语言下的字典的设计与落地
    • Go 语言下的 Redis 跳表设计与实现
    • Go 语言版 Redis 有序集合指令复刻探索
    • 基于 Claude Code 复刻 Redis 慢查询指令实践
    • mini-redis SCAN指令复刻:自底向上的工程方法论实践
  • 项目编排

    • Spring脚手架创建简记
    • Spring脚手架集成分页插件
    • Spring脚手架集成校验框架
    • maven父子模块两种搭建方式简记
    • SpringBoot+Vue3前后端快速整合入门
    • 来聊聊Java项目分层规范
  • 场景设计

    • Java实现文件分片上传
    • 基于时间缓存优化浏览器轮询阻塞问题
    • 基于EasyExcel实现高效导出
    • 10亿数据高效插入MySQL最佳方案
    • AI时代不可替代的底层思维:位运算与逻辑运算实战
    • 对账核销场景设计与重构实践
    • 千万级交易流水慢查询综合治理实践
    • 记一次StarRocks源码级排错和既有架构优化实践
    • 基于快照合并修复Seata AT回滚补偿与Flink批攒导致StarRocks数据不一致最佳实践
  • CI/CD

    • 基于NETAPP实现内网穿透
    • 基于Gitee实现Jenkins自动化部署SpringBoot项目
    • Jenkins离线安装部署教程简记
    • 基于Nexus搭建Maven私服基础入门
    • 基于内网的Jenkins整合gitlab综合方案简记
  • 监控方法论

    • SpringBoot集成Prometheus与Grafana监控
    • Java监控度量Micrometer全解析
    • 从 micrometer计量器角度快速上手promQL
    • 硬核安利一个监控告警开源项目Nightingale
  • Spring AI

    • Spring AI Alibaba深度实战:一文掌握智能体开发全流程
    • Spring AI Alibaba实战:JVM监控诊断Arthas Agent的工程化构建与最佳实践
  • 大模型评测

    • M2.7 真能打!我用两个真实场景测了测,结果有点意外
    • Qoder JetBrains插件评测:祖传代码重构与接口优化实战
    • 从一次线上事故到底层算法复刻与监控落地,我用MiniMax M3跑通了完整闭环
  • AI工具链

    • Claude Code 实战指南:从安装配置到企业级开发流程
    • 一次 Claude Code 启动失败的 AI 辅助排查复盘
    • 基于提示词工程与KITE框架的Redis签到功能开发实践
    • Claude Code 记忆管理:CLAUDE.md 最佳实践
    • Claude Code 规则管理:Rules 拆分编排与迭代实践(文末送书)
    • VSCode与Claude Code后端开发环境搭建与AI编程工作流实践
    • AI 写的企业级组件不敢用?我替你验过了
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 技术文档

  • GitHub技巧

  • Nodejs

  • 博客搭建

  • 环境配置

    • Windows环境下JDK安装与环境变量配置
    • Windows 10 下的 Maven 安装配置教程
    • AI时代,Windows开发者转Mac的快速上手指南
      • 写在文章开头
      • 个人mac键盘与系统配置
        • F1~F12功能键标准化配置
        • mac内置键盘调整
        • F19虚拟功能键配置
        • 输入法配置
        • 菜单栏管理增强(iBar)
        • 应用程序窗口管理与alt-tab插件
        • 终端快捷操作
        • 文件管理:用QSpace替代Finder
        • 系统锁屏快捷键
      • 第三方应用启动器配置
      • 小结
      • 参考
  • 编程工具
  • 环境配置
sharkchili
2026-06-17
目录

AI时代,Windows开发者转Mac的快速上手指南

# 写在文章开头

这几年随着AI的飞速发展,类unix系统mac 成为大部分开发主流工作机,考虑到这一部分迁移的成本,笔者将早期一篇个人从win切换到mac的配置核和程序清单加以整理并分享出来,希望对一些近期使用比较纠结的读者有所帮助。

SharkChili · 禅与计算机程序设计的艺术

开源贡献

  • mini-redis:教学级 Redis 精简实现 · https://github.com/shark-ctrl/mini-redis

关注公众号,回复 【加群】 加入技术社群

# 个人mac键盘与系统配置

# F1~F12功能键标准化配置

默认情况下,MacBook的F1~F12对应的是灯光、音量等调节操作。但作为软件开发者,我们更依赖这些键位的原生语义,所以需要把它们改回标准功能键,确保键位能做到:

  • F12能直接呼出Chrome控制台

  • F5刷新页面

  • 触发idea等工具中依赖功能键的快捷操作

至于调节音量、亮度这类特殊功能,再配合fn键即可。

因此在正式演示macOS快捷操作之前,我们需要先针对F1~F12进行配置调整。对此我们需要打开系统设置->键盘,然后选择"功能键"选项进行键盘基本配置:

我们找到功能键选项,勾选下图所示的开关,此时F1~F12就变成了标准功能键,而特殊功能则需要配合fn键才能使用:

# mac内置键盘调整

与win系统不同的是,mac的输入法切换快捷键是ctrl+空格。而在内置键盘的键位布局上,control键被排在了地球仪(fn)键的右侧,并不在小指自然下落的最角落位置,切换输入法时不太容易精准按到。所以笔者拿到新mac后,都会把control和地球仪(fn)键互换,让小指能第一时间够到control键,从而延续Linux和Windows下终端里早已习惯的ctrl操作(如ctrl+c、ctrl+a/e)。对应的设置步骤为:

  1. 打开系统设置 → 键盘
  2. 点击键盘快捷键,进入修饰键
  3. 在选择键盘处选中内置键盘,将Control(^)键和地球仪(🌐)键的功能互换

默认情况下,市面上大部分外接键盘都按win系统的键位摆放,接入mac后想保持键位一致,就得对修饰键做一次调整。要做到知其所以然,得先看物理布局:win键盘上紧挨空格的是alt键,它所在的位置正是mac上⌘(Command)所在的位置;再往外的win键,则落在mac的⌥(Option)位置上。所以目标很明确——让alt键发挥⌘的作用、让win键发挥⌥的作用,这样外接键盘敲起来才和mac原生布局一致。

但这里有个容易踩的坑:把win键盘插上mac后,系统默认不是按位置、而是按键名来识别的。经笔者实测,默认状态下alt键被识别成⌥(Option),win键被识别成⌘(Command),恰好和我们想要的相反。

所以在mac的修饰键设置里,要做的就是把这两个键的功能对调过来:

  1. 把win键(默认被识别为⌘)改设为⌥(Option)
  2. 把alt键(默认被识别为⌥)改设为⌘(Command)

理解了这层映射关系,下面动手就很清晰了。打开键盘快捷键配置,在修饰键里通过usb keyboard选项选中这块外接键盘,按照上文的映射关系把对应键位逐个调整过来即可。调整后,外接键盘就和macOS原生键位兼容了:

除了在系统原生的修饰键里调整,笔者更推荐用Karabiner-Elements来统一管理所有键位映射。它本来是笔者用来配置F19(下一节会讲)的工具,为了管理上的统一,现在笔者干脆把所有键盘的映射关系都交给它来设置。对应的安装指令如下:

brew install --cask karabiner-elements
1

安装完成后首次启动,需要在系统设置中授予辅助功能权限。这里补充一点:Karabiner-Elements启用后会覆盖系统原生的快捷键映射,所以一旦决定用它,就把所有键位映射都委托给它,别和系统设置混用。

配置本身很简单——打开Simple Modifications,在左侧选中要调整的目标键盘(内置键盘或外接的usb keyboard),再逐条调整映射语义即可。以内置键盘为例,笔者把fn和control对调(方便用control+空格切输入法):

同理,外接键盘也在这里把⌥和⌘对调,逻辑和上文修饰键的调整完全一致,只是统一收口到了Karabiner里。

# F19虚拟功能键配置

F19是一个标准键码,但现代Mac物理键盘上并没有这个键,正因为它不容易被其他程序占用,很适合拿来做自定义全局快捷键的触发键。笔者的做法是借助Karabiner-Elements把右⌘键映射为F19,正因为如此,笔者就可以用F19配合应用首字母构建出一套组合快捷键,例如F19+i呼出idea、F19+V呼出微信。

对应的配置步骤为:

  1. 打开Karabiner-Elements,选择Complex Modifications
  2. 添加一条自定义规则,把右⌘键映射为F19(即下方配置中to_if_alone指定的f19,单独按下右⌘时触发)
  3. 对应完整配置如下:

注意:在Karabiner-Elements的Complex Modifications中启用规则后,可能需要点击"Reload"按钮使配置生效。如果配置后右⌘键没有响应,可以检查Karabiner-Elements的状态图标是否为绿色。

完整的JSON配置如下:

{
    "manipulators": [
        {
            "description": "Change right_⌘ to ⌘+control+⌥+shift.",
            "from": {
                "key_code": "right_⌘",
                "modifiers": { "optional": ["any"] }
            },
            "to": [
                {
                    "key_code": "left_shift",
                    "modifiers": ["left_⌘", "left_control", "left_⌥"]
                }
            ],
            "to_if_alone": [{ "key_code": "f19" }],
            "type": "basic"
        }
    ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

对应F19配置可参考:https://bbs.huaweicloud.com/blogs/421390 (opens new window)

# 输入法配置

说实话,mac自带的输入法一直是笔者深恶痛绝的一点——相比Windows,无论是联想还是中英文切换体验都差了一大截。结合网上各种方案,笔者最终还是换上了搜狗输入法,它无论在配置还是日常使用上都和Windows相对接近,上手几乎没有割裂感。

笔者这里推荐读者安装如下两个插件:

  1. 搜狗输入法切换助手
  2. 搜狗输入法

其中搜狗输入法负责日常输入,而切换助手解决了一个对开发者很实用的痛点:它能让指定应用打开时自动切到英文。笔者把idea等编码工具设为默认英文,这样打开IDE就能直接敲代码,省掉每次手动切输入法、还要回头校对符号是不是中文的麻烦。

下图对比了配置前后。普通搜狗在中文状态下,在idea里敲分号会变成全角的;、代码直接报错。而给idea开了切换助手的"强制英文符号"之后,哪怕输入法还停在中文状态,敲出来的分号也照样是英文半角的;:

唯一的小缺点是反过来——因为idea里的符号被强制成了英文,真要在注释里打个中文标点(比如中文冒号)时反而打不出来,得临时把强制关掉。不过现在大多是AI编程,这点基本可以忽略,笔者自己仍保留审核AI代码、适度手改的习惯,所以还是特意拎出来说明一下。具体配置很简单:

  • 切换助手把搜狗设为默认输入法
  • 自动切换列表里把常用编码工具(如IntelliJ IDEA)的默认状态设为英文

对应配置如下图所示:

# 菜单栏管理增强(iBar)

与windows系统不同,mac菜单栏位于系统正上方,碍于系统局限性,笔者发现mac book在多开程序的情况下,在笔记本屏幕上菜单栏应用程序会显示不全,查阅网上的解决方案,最终还是选择了下载安装一个菜单栏管理工具iBar,它不仅可以将所有菜单栏的程序统一收纳,还支持将一些非必要显示的程序隐藏:

完成下载后,我们首先进行通用设置选项完成如下设定:

  • 设置开机自启:笔者会定期重启笔记本,开启自启动能保证每次重启后iBar都自动运行,所以下载必备软件后都会顺手打开这一项
  • 显示菜单栏方式:设置为点击菜单栏空白处展开所有选项
  • iBar菜单图标:按照个人喜好选择

完成设置后,菜单栏工具都会被压缩整理,只有点击菜单栏才会展开:

当然,对于不需要在菜单栏显示的图标,我们也可以在菜单栏布局选项中进行设定:

# 应用程序窗口管理与alt-tab插件

与windows直接点击x不同,mac对于进程的关闭有着不同的理解,对于mac系统而言,关闭有着3种姿态:

  1. 关闭窗口标签页
  2. 最小化窗口
  3. 关闭进程

我们先来说说关闭窗口标签页这个操作,对应safari或者访达的多标签页来说,点击⌘+w就会将当前的标签页关闭。对于这个键位mac也做了语义化的处理,⌘+w中的w即window,相当于用命令操作窗口,所以这个操作执行后如果需要恢复窗口,就得重新打开。

而对应最小化窗口则是将当前程序直接挂到dock程序坞下,即键入⌘+m可以理解为通过命令将程序最小化minimize,所以对于最小化的程序直接通过dock打开即可直接继续使用了。

最后一种也就是我们的关闭程序了,直接执行⌘+q即通过命令退出quit进程,这也就是我们常说的退出进程了。

对于进程的切换,和windows一样不同的进程mac也是通过⌘+tab切换,对于相同的进程,例如笔者打开两个idea希望在两个idea中切换,mac上支持通过⌘+反引号(Tab键上方那个键)在同一个App的多个窗口间来回切换。

需要补充说明的是,与Windows系统有所不同,mac os的⌘+tab切换存在如下局限性:

  1. 对于最小化的进程,即使⌘+tab可以看到,也无法将其打开
  2. ⌘+tab只能切到应用层级,无法展示同一个应用下的具体窗口,如下图:

  1. ⌘+tab无法切换多开应用,例如我们打开两个idea,⌘+tab就无法做到在两个idea之间切换

笔者初次从Windows转过来时,最不习惯的就是⌘+tab不够直观——尤其是被最小化的程序,⌘+tab根本没法直接呼出。查了网上的方案后,笔者找到了开源工具alt-tab,它把Windows上高效的Alt+Tab体验完整搬到了macOS:不仅支持程序间切换,还保证最小化的窗口也能直接选中打开;最亮眼的是它会显示每个窗口的缩略图,让笔者一眼就能看清窗口当前是最大化、最小化还是后台挂起的状态。

对应的homebrew安装指令如下:

brew install --cask alt-tab
1

完成后,打开工具选择控制,将快捷键1改为⌘+tab替代mac os原生窗口管理:

最后就是外观设定,因为笔者日常使用大屏进行开发工作,所以窗口显示样式改为缩略图,这样可以窗口切换时可以明确感知当前进程处于最小化窗口还是后台挂起状态,同时因为开发工作涉及多屏操作,所以切换操作视图笔者也是按照个人习惯采用鼠标所在屏幕,读者也可以按需选择活跃屏幕或者菜单栏所在屏幕:

# 终端快捷操作

关于终端的操作,由于现在大部分读者都是在终端里使用Claude Code,本着多窗口管理、以及快捷键和Windows保持适配一致的体验,可以参考笔者这篇专门的配置文章:https://mp.weixin.qq.com/s/QmzZQ_PTWc9o3Bqs5rAb8w (opens new window)

# 文件管理:用QSpace替代Finder

mac原生的访达(Finder)笔者其实用得很少——它不支持多窗格并排管理,剪切粘贴的逻辑也和Windows不一样(得用⌘+c复制、再⌘+⌥+v才能把文件"剪切"移动过去),用起来挺别扭。所以这里笔者不展开讲Finder的那些视图快捷键,直接推荐一个更顺手的文件管理工具——QSpace来替代它。

它有几个对Windows用户特别友好的点:

  1. 多窗格管理:一个窗口里能并排开4个目录,文件移动、对比一目了然,不用来回切窗口。
  2. 保留Windows的剪切粘贴习惯:可以直接沿用⌘+c/⌘+v复制粘贴、⌘+x/⌘+v剪切粘贴这套和Windows一致的操作,不必再记mac那套特殊键位。
  3. 空格键快速预览:选中文件按一下空格键就能即时预览内容,翻文件特别快。

完成安装后界面大致如下,四个窗格同时管理日常文件:

QSpace在Mac App Store搜索即可安装(分免费版与QSpace Pro,推荐直接上Pro)。装好后笔者再给出几个提升生产力的配置:首先点击左下角设置,在"使用习惯"里把delete键改成删除操作:

还是选择使用习惯,将双击空白处回到上层文件夹选项也勾选:

选择使用习惯,将隐藏DS_Store选项关闭,确保我们可以精准管控所有文件夹所有文件:

新建文件添加md格式,确保qspace可以通过右键创建md文件:

最后一步,把QSpace设为默认的文件管理器:进入设置的打开模式,把"在访达中显示"使用项改成QSpace Pro。这样在任意第三方应用里点"在访达中显示",都会用QSpace打开而不是原生访达,自此大功告成:

显示隐藏文件:在文件夹中键入 Command + Shift + .

# 系统锁屏快捷键

和Windows的Win+L有所区别,mac原生的锁屏键位是Control + Command + Q。不过这个键位笔者用着不太顺手,所以更推荐用uTool来锁屏——它本就是笔者常驻的效率工具,锁屏只是顺手为之:⌘+space呼出uTool,输入lock,回车即可瞬间锁屏,整个过程一气呵成。

# 第三方应用启动器配置

Thor是笔者最爱的一款Mac应用启动/切换工具。它的玩法是给每个应用绑定一个快捷键,按下就能瞬间打开或切换过去。配合上文配置好的F19键,笔者日常80%的软件切换都靠它一键完成,是笔者最常用的软件,没有之一。

安装很简单,直接在App Store搜索Thor安装即可。装好后打开,给常用应用逐个绑定快捷键。笔者的习惯是统一用F19打头、配合应用首字母,既好记又不和系统快捷键冲突,例如:

  • F19+N → 呼出Notepad--(文本编辑)
  • F19+I → 呼出IntelliJ IDEA
  • F19+C → 呼出iTerm2(command terminal,终端)
  • F19+V → 呼出微信

配置好之后界面大致如下,每个应用各自绑定一个F19组合键:

# 小结

我们来小结一下本文的内容,围绕"让Windows用户平滑过渡到mac"这条主线,大致分为五层:

  1. 键盘初始化调整:F1~F12改回标准功能键、内置键盘把control与地球仪互换、外接键盘把alt/win映射对调、用F19衍生出一套全局组合快捷键。

  2. 推荐软件安装:Karabiner-Elements(统一管理键位映射)、iBar(菜单栏收纳)、alt-tab(窗口切换)、QSpace(多窗格文件管理)、搜狗输入法、uTool、Thor。

  3. 软件切换与启动:基于F19+应用首字母,用Thor一键呼出常用应用;alt-tab复刻Windows的Alt+Tab窗口切换体验。

  4. 输入法与文件管理:搜狗输入法配合切换助手让编码免切输入法;QSpace接管文件管理,保留Windows的复制粘贴、剪切习惯。

  5. 系统效率细节:uTool锁屏、终端配置(详见笔者的iTerm2专文)等。

本文是一份面向刚入手mac的开发者的系统配置指南。笔者这套配置本质上是mac与Windows之间的折中方案,目的就是让你在保留Windows肌肉记忆的同时,平滑过渡到macOS。建议在系统重装或刚入手时照着本文逐步完成软件下载与配置,快速搭好顺手的开发环境。笔者也会在日常使用中持续迭代这篇文章,希望对你有帮助。

SharkChili · 禅与计算机程序设计的艺术

开源贡献

  • mini-redis:教学级 Redis 精简实现 · https://github.com/shark-ctrl/mini-redis

关注公众号,回复 【加群】 加入技术社群

# 参考

mac快捷键教程:https://www.bilibili.com/video/BV1mW421w7Jw?spm_id_from=333.788.videopod.sections&vd_source=bf04f9a485aa892c0242fbfdfca25589 (opens new window)

mac锁屏:https://jingyan.baidu.com/article/91f5db1b51fb625d7f05e3ba.html (opens new window)

mac复制文件路径:https://www.sysgeek.cn/macos-copy-file-path/ (opens new window)

求问 Mac 原生输入法在切换时光标旁边的小图标不见,怎么能在不重启的情况下修复:https://www.v2ex.com/t/1124217 (opens new window)

Mac 终端光标在单词之间移动的快键:https://blog.csdn.net/jane1229/article/details/82944435 (opens new window)

Mac外接USB键盘修饰键设置 Option 和 Command 替换:https://blog.csdn.net/liuwei0376/article/details/124155195 (opens new window)

F19键:https://bbs.huaweicloud.com/blogs/421390 (opens new window)

Mac电脑高效办公必备武器——雷神Thor:https://zhuanlan.zhihu.com/p/146885772 (opens new window)

Mac 多任务切换的坑:为什么 Command+Tab 有时不好用 :https://www.bilibili.com/video/BV1x6WTzkEbt/?buvid=Y942A991A168E31D4296B54F9D22E6B8C782&from_spmid=tm.recommend.0.0&is_story_h5=false&mid=3URzpfGDRykbWghI4MoSYg%3D%3D&plat_id=116&share_from=ugc&share_medium=iphone&share_plat=ios&share_session_id=E9F5514C-4056-42D4-9CCF-AB7D55F4A42A&share_source=WEIXIN&share_tag=s_i&spmid=united.player-video-detail.0.0&timestamp=1759119525&unique_k=Pm8SeYv&up_id=348402900&vd_source=bf04f9a485aa892c0242fbfdfca25589 (opens new window)

终于找到macOS窗口管理的完美解决方案! :https://www.bilibili.com/video/BV1jH4y1w7Yr/?spm_id_from=333.337.search-card.all.click&vd_source=bf04f9a485aa892c0242fbfdfca25589 (opens new window)

用了就回不去的Mac App!QSpace这10个功能真的绝了! :https://www.bilibili.com/video/BV1bTxUzAEHE/?buvid=Y942A991A168E31D4296B54F9D22E6B8C782&from_spmid=tm.recommend.0.0&is_story_h5=false&mid=3URzpfGDRykbWghI4MoSYg%3D%3D&plat_id=116&share_from=ugc&share_medium=iphone&share_plat=ios&share_session_id=435C5977-C8FE-4E19-8F99-53BC8DF9CFE7&share_source=WEIXIN&share_tag=s_i&spmid=united.player-video-detail.0.0&timestamp=1759982931&unique_k=QiYt8hy&up_id=3546882471102972&vd_source=bf04f9a485aa892c0242fbfdfca25589 (opens new window)

让 Mac 像 Windows 一样使用 Alt + Tab 切换窗口--AltTab :https://zhuanlan.zhihu.com/p/684720445 (opens new window)

编辑 (opens new window)
Windows 10 下的 Maven 安装配置教程

← Windows 10 下的 Maven 安装配置教程

最近更新
01
go面向对象与集合
06-17
02
G语言并发编程与GC
06-16
03
Go语言常见面试题解析(上)语言基础与核心概念
06-15
更多文章>
Theme by Vdoing | Copyright © 2025-2026 Evan Xu | MIT License | 桂ICP备2024034950号 | 桂公网安备45142202000030
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×
×