文章列表

2.5k 2 分钟

本文详细介绍 Playwright MCP 的配置与使用方法,帮助你在 AI 助手中实现强大的浏览器自动化能力,支持网页导航、表单填写、截图捕获等丰富功能。 # Playwright MCP 使用指南 在 AI 辅助开发领域,让 AI 能够控制浏览器执行自动化操作是一个重要的能力需求。Playwright MCP 作为 Microsoft 官方提供的 Model Context Protocol 实现,让 AI 助手能够通过结构化的可访问性快照与网页进行交互,无需依赖视觉模型即可完成各种浏览器操作。 本文将详细介绍 Playwright MCP...
2.8k 3 分钟

本文详细介绍如何在 OpenCode 中配置 GitHub MCP Server,通过五个简单步骤实现 AI 助手与 GitHub 的深度集成,支持 Issue 管理、PR 操作、Actions 监控等丰富功能。 # 在 OpenCode 里使用 GitHub MCP Server 访问 GitHub 在现代开发工作流中,AI 助手与代码托管平台的深度集成已成为提升开发效率的关键。GitHub MCP Server 作为官方提供的 Model Context Protocol 实现,让 AI 助手能够直接与 GitHub 进行交互 —— 无论是管理 Issue、PR,还是搜索代码库、查看...
6.8k 6 分钟

本文详细介绍 OpenCode 中三个核心概念的区别与使用方法:Agent(智能体)、Skills(技能)和 MCP(模型上下文协议),帮助你更好地理解和使用 OpenCode 的扩展能力。 # OpenCode 中 Agent、Skills 与 MCP 的区别与使用 在使用 OpenCode 进行开发时,我们经常会遇到三个核心概念:Agent、Skills 和 MCP。它们分别代表了不同的扩展机制,帮助 AI 助手获得更强的能力。本文将详细介绍这三者的区别与使用方法。 # 一分钟理解三者区别 概念 定位 作用 类比 Agent AI 助手 执行特定任务的智能体 员工 /...
30k 28 分钟

本文系统讲解 23 种设计模式(创建型 5 种、结构型 7 种、行为型 11 种),结合 SOLID 原则与 C++ 代码示例,助你全面提升软件架构能力。 # 23 种设计模式完整指南 - C++ 实现详解 # 目录 设计模式概览 创建型模式 结构型模式 行为型模式 实践应用 总结 # 设计模式概览 设计模式是解决软件设计中常见问题的可重用方案。它们提供了经过验证的解决方案,帮助开发者编写更优雅、可维护和可扩展的代码。 # 设计模式分类 类型 数量 描述 难度 创建型模式 5 种 关注对象的创建过程 ⭐⭐ 结构型模式 7 种 处理类或对象的组合 ⭐⭐⭐ 行为型模式 11...
5.3k 5 分钟

本文深入讲解 C++ 全局对象与单例模式的析构顺序问题,揭示静态初始化顺序灾难的成因,并提供安全编程实践方案。 # 为什么全局对象的析构函数里不能使用其他全局对象或单例对象的方法 # 引言 在 C++ 开发中,全局对象和单例模式是常见的技术选择,它们让我们能在不同模块之间共享数据和功能。然而,当程序终止时,这些全局对象的销毁顺序可能会带来意想不到的问题,甚至导致程序崩溃。 本文将深入探讨为什么全局对象的析构函数中不应该调用其他全局对象或单例对象的方法,通过实际的代码案例展示这个问题的本质,并提供一些安全的编程实践建议。 # 问题的本质:静态初始化顺序灾难 C++...
6.4k 6 分钟

本文详细讲解 Java 四种阻塞队列(ArrayBlockingQueue、LinkedBlockingQueue、SynchronousQueue、PriorityBlockingQueue)的 C++ 实现方案。 # 原有 BlockingQueue ArrayBlockingQueue :基于数组的有界阻塞队列。队列按 FIFO 原则对元素进行排序,队列头部是在队列中存活时间最长的元素,队尾则是存在时间最短的元素。新元素插入到队列的尾部,队列获取操作则是从队列头部开始获得元素。 这是一个典型的...
5.3k 5 分钟

本文搭建 Java ThreadPoolExecutor 线程池的 C++ 简易实现框架,介绍核心参数概念与各组件的基础功能设计,为后续实现做铺垫。 # 简介 近期想加固多线程场景编程能力,想使用 C++ 实现一套类似 Java ThreadPoolExecutor 的线程池。本章介绍各组件的基础功能框架。 # ThreadPoolExecutor 实现 # Java 线程池的参数 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit,...
8.4k 8 分钟

本文深入讲解 C++ 中 std::enable_shared_from_this 与 shared_from_this 的原理与使用场景,涵盖异步回调、对象生命周期管理及常见陷阱分析。 # C++:深入理解 std::enable_shared_from_this 与 shared_from_this # 为什么以及何时使用 shared_from_this # shared_from_this 的作用 在面向对象编程中,常常需要在对象的成员函数中获取指向自身的智能指针,以确保对象在某些操作(特别是异步操作)期间的生命周期。 std::enable_shared_from_this 和...
2.6k 2 分钟

本文详细介绍 OpenHarmony IPC 通信编程范式,涵盖 iService 定义、Proxy 客户端代理、Stub 服务端接收以及 Service 业务实现的完整开发流程与代码示例。 # 简介 对于 OpenHarmony 的 IPC 框架,每个部件都需要用到。本文将介绍 OpenHarmony 的进程间通信原理,并提供相应的代码示例。 IPC 和 RPC 通常采用客户端 - 服务器(Client-Server)模型,在使用时,请求服务的(Client)一端进程可获取提供服务(Server)一端所在进程的代理(Proxy),并通过此代理读写数据来实现进程间的数据通信。 #...
3.4k 3 分钟

本文深入探讨 C++ 单例模式在动态链接库中的陷阱,揭示在不同 .so 文件中单例实例重复出现的问题及成因,提供安全实现方案。 最近在写代码时发现了一个很奇怪的现象,单例模式生成的单例实例在同一进程中出现了多次。在此记录一下。 下面是我复现的代码,也可以直接在我的仓库进行下载 gitee git clone https://gitee.com/little-sweet-cookie/singleton_so_test.git代码包括五个代码文件和一个 makefile...