自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 收藏
  • 关注

原创 注意点:VS Code Remote SSH、端口转发、本地浏览器访问远程视频的完整流程

视频文件在远程开发机上,HTTP 服务也在远程开发机上;VS Code Remote SSH 在本地开了一个端口,并通过 SSH 隧道转发到远程服务;本地浏览器访问本地 127.0.0.1:5500,请求被 VS Code 转发到远程;远程服务读取远程视频文件,再通过 SSH 隧道把数据返回给本地浏览器;最后由本地浏览器负责解码和播放视频。远程存文件,远程跑服务;VS Code 做隧道;本地浏览器访问本地端口;请求被转到远程;视频数据流式传回本地;本地浏览器解码播放。

2026-06-24 00:44:57 280

原创 注意点:为什么 VS Code 打不开某些 MP4?远程开发机视频预览、编码、端口转发原理总结

视频文件在远程开发机上,HTTP 服务也在远程开发机上;VS Code Remote SSH 在本地开了一个端口,并通过 SSH 隧道转发到远程服务;本地浏览器访问本地 127.0.0.1:5500,请求被 VS Code 转发到远程;远程服务读取远程视频文件,再通过 SSH 隧道把数据返回给本地浏览器;最后由本地浏览器负责解码和播放视频。远程存文件,远程跑服务;VS Code 做隧道;本地浏览器访问本地端口;请求被转到远程;视频数据流式传回本地;本地浏览器解码播放。

2026-06-24 00:34:42 378

原创 vibecoding起步注意点:Claude 操作飞书文档、表格和群聊的完整流程总结

可以实现。

2026-06-24 00:11:38 440

原创 注意点:VScode进行远程开发的步骤

你不需要在远程机上装VSCode,只需确保远程机有git和docker等工具。VSCode会自动在远程机安装一个后台服务,让你的操作感觉像在本地一样流畅。

2026-06-18 15:12:23 271

原创 注意点:SSH 公钥私钥:新人终极总结

证明“你是你”,而不是用来输入密码。

2026-06-18 14:43:02 244

原创 注意点:进入新公司先看这个文档,作为新人入职的时候,必配环境问题:

1。

2026-06-18 14:42:19 184

原创 注意点:通过`Authorization`头传递的**Access Token**和通过`Cookie`头传递的**Refresh Token**根本不是同一种东西 ----部分没弄懂,有时间再看看

从今天开始,检查你的认证方案,别等到被网关拦截了才后悔。把Access Token塞进Cookie,或者用Cookie里的Token去调业务API,从2026年开始不仅会带来严重的安全漏洞,还会被API网关直接拦截。:将任何API Token放入Cookie都会带来严重的安全风险——永久Token被网关拦截,短过期Token面临CSRF攻击和过期不同步问题。头是传递Access Token的唯一标准方式,这是RFC 6750的明确规定——Cookie从来就不是API Token的合法载体。

2026-06-07 09:39:54 377

原创 vibecoding起步注意点:插件、Skills、MCP、Hooks

插件是工具箱,Skills 是工具,MCP 是接口,Hooks 是自动感应器。Skills 告诉 Claude做什么Hooks 让 Claude自动做MCP 让 Claude连外部做四者配合,让大模型从“只会说话”变成“能动手干活的全能员工”。

2026-05-31 09:23:15 241

原创 vibecoding起步之注意点:大模型如何落地 ,涉及 提示词、RAG、微调、Agent

你的问题答案是不是只有微调才能落地?❌不是。微调是最重、最贵、最慢的方式,通常不是首选。还有没有其它的路?✅有,而且更常用:RAG、提示词工程、Agent。所有模型都要微调?❌绝大多数模型落地不需要微调。全球90%以上的大模型应用使用的是提示词工程+RAG的组合,只有不到10%需要微调。

2026-05-30 15:07:50 261

原创 vibecoding起步之注意点:如何做一个聊天机器人

向量数据库是RAG架构中检索环节的核心基建,负责高维语义向量的“存储、管理、高效检索”;RAG是向量数据库的核心落地场景之一,向量数据库的能力直接决定RAG的检索效率、精度和生产可用性;二者是“底层基建支撑上层应用”的紧密依赖关系——没有向量数据库,RAG只能停留在小样本、实验室阶段;有了向量数据库,RAG才能适配大规模知识库、企业级高并发的实际需求。

2026-05-30 14:43:54 168

原创 vibecoding起步之Claude Code的skills是什么,里面有什么文件,以ppt的一个skills举例

SKILL.md添加公司模板:在中设置指向你的公司 PPT 模板自定义主题:修改中的,或添加新的主题配置扩展能力:在SKILL.md中添加新的能力描述,并在scripts/目录下编写对应的脚本设置默认输出目录:在中修改,让生成的 PPT 自动保存到你指定的位置需要我给你一个可直接复制使用的模板,包含常用的中文配置和公司模板设置吗?

2026-05-30 11:47:29 516

原创 vibecoding起步之注意点:从零到一:Claude Code 接入飞书文档的完整链路

1。

2026-05-30 11:20:15 332

原创 注意点:Python asyncio 模块详解:从基础概念到高阶实战(全方法带示例)------------应该是完整的,稍后与协程一块总结,基本上前面的协程加上这篇就很全面了,实战一下然后总结

1.asyncio核心是协程+事件循环+任务调度,以单线程实现高并发 I/O,轻量高效;,可覆盖 95% 异步并发场景;3. 进阶场景可通过事件循环回调方法,实现精细化定时、任务调度;杜绝阻塞、善用并发、规范资源管理。(注:文档部分内容可能由 AI 生成)

2026-05-28 10:10:28 276

原创 注意点:协程里面跑必须跑同步代码的时候,必须放进线程池或者进程池,然后将线程池或者进程池进行封装,使协程可以 异步等待 后台线程或后台进程执行任务 -----应该是完整的,后续跟协程一块总结

协程是主线程里轮流干活的“任务”,线程池是后台独立的“工人”。这套组合只是让协程等待后台工人完工,并不是让工人变成任务。asyncio 强制规则:协程里不能直接跑同步阻塞代码!必须跑 → 丢线程池/进程池 → 封装成 awaitable → 协程异步等待!asyncio单线程事件循环惧怕同步阻塞,直接调用会导致整体卡死,线程池是重要兼容方案。作为桥接工具,将线程任务封装为异步可等待对象,实现协程与线程的安全协作。二者分工明确:线程池承载阻塞 IO,事件循环调度协程,不存在“线程池充当协程”的说法。

2026-05-28 10:03:05 345

原创 注意点:futurn与task的区别与联系,task解决协程的第一次启动问题等等,以及其它task出现的原因 -----------不清楚是否全面,但是稍后跟协程一块总结

Future:异步底层“结果占位符”,提供挂起 / 唤醒能力,是 asyncio 的地基。Task继承自 Future,专门封装协程,让协程能被事件循环调度、自动运行、实现并发。协程:只是业务代码,不能自己启动、不能自己跑,必须被 Task 驱动。Task 诞生的唯一目的解决协程无法自启动、无法被事件循环调度、无法实现并发的问题。Future 是一个未来会返回结果的容器可以被await(挂起当前协程)可以被(唤醒等待的协程)Task = Future + 封装好的协程。

2026-05-28 09:54:12 238

原创 注意点:协程明明运行到单线程中,为什么还需要异步锁asyncio.Lock,为什么还需要单独一个异步队列asyncio.Queue ---------不清楚是否全面,但稍后与协程一块总结

绝大多数 Python 开发者对异步存在两大致命误区协程是单线程串行执行,所以不需要加锁和只是语法不同,可以互相替代这两个认知,是异步代码卡死、数据错乱、并发安全漏洞的核心根源。本文从底层原理、伪代码实现、阻塞模型、调度机制、实战报错本质差异为什么绝对不能混用单线程协程依然需要锁的终极原因异步队列单独设计的不可替代性读完本文,彻底根治异步并发认知混乱,面试可满分应答。同步组件管线程:阻塞线程、依赖内核、开销大、异步禁用。异步组件管协程。

2026-05-28 09:50:06 376

原创 注意点:协程相关的函数的搭配不同,导致可以要么边跑边拿结果,要么全部跑完,一次性拿结果 ----------不完整,稍后与协程一块总结

await把“边跑边处理结果”的逻辑包进协程里,用await实时拿结果先等所有任务跑完,再在普通代码里用result()批量拿结果如果你愿意,我可以帮你把这两段代码改成完全等价的版本,加上日志,让你直观看到它们的执行顺序和打印差异。需要吗?

2026-05-28 09:05:30 390

原创 注意点:`if __name__ == “__main__“:` 下面的变量是**模块级全局变量**

你说得对。

2026-05-21 14:58:54 45

原创 注意点:生成器进阶之yield,yield 1 不管被谁唤醒,第一件事永远是:向外返回 1 ,唤醒方式决定了「接收值」是什么 --------------稍后跟生成器与协程一起总结

yield自带两个功能:向外返回值 + 向内接收值yield 1不管被谁唤醒,第一件事永远是:向外返回 1next(gen)唤醒 →返回 1,接收 Nonegen.send(值)唤醒 →返回 1,接收 send 传进来的值变量 = yield 1只是把「接收到的值」存起来,属于正常赋值用法。

2026-05-21 11:28:32 277

原创 注意点:回顾生成器,生成器的实现原理:核心是栈帧的保存与恢复 -----临时版本,稍后与协程一起总结,不是完全版本

生成器是可暂停保存栈帧的惰性函数,与普通函数一次性执行完全不同生成器表达式和生成器函数底层原理完全相同。

2026-05-21 11:02:06 35

原创 14.3 异步协程开发铁律示例 与 标准示例代码核心:事件循环内严禁编写同步逻辑,协程业务务必全程异步

asyncio基于驱动运行,通过await主动让出执行权完成任务切换,切换开销远低于多线程,天生适配业务场景;单线程特性决定它无法直接利用多核处理CPU密集运算,强行在协程内写同步耗时逻辑,会直接废掉异步并发能力。

2026-05-20 11:20:54 377

原创 注意点:一文彻底搞懂 PATH、PYTHONPATH、sys.path 三者关系与实战配置--需要理解再更新一版

PATH:服务操作系统,负责启动各类软件命令,和Python模块导入无关PYTHONPATH:服务全量Python程序,全局统一添加模块路径,自动载入sys.pathsys.path:Python专属模块检索总列表,整合全局路径与临时路径:仅临时作用于单个脚本,不改动系统环境变量,用完即失效理清三者逻辑,从此彻底解决命令找不到、模块导入失败两大高频开发问题。

2026-05-19 16:21:33 1006

原创 注意点:记得跟前面的 注意点与杂七杂八 一块总结一下

我们直接把你刚才跑通的代码,翻译成await就是专门给异步协程用的yield,功能一样,只是更专业、更好看;事件循环就是官方帮你写好的调度器,不用你自己手写了,功能更强;底层暂停/恢复/切换逻辑,和你手写的生成器协程,完全一模一样!await = 升级版 yield事件循环 = 升级版调度器。

2026-05-13 12:00:45 204

原创 注意点:应该是生成器如何实现的协程,或者生成器如何实现的,然后跟前几篇 注意点与杂七杂八 一块总结一下

等调度器IO做完,再回来帮你走完赋值、跑后面代码。自己不卡、不等,线程可以跑去干别的任务;

2026-05-13 11:53:26 40

原创 注意点:可能是上一篇文章的进阶版,明天再对比一下

同步阻塞IO → 多线程(解决并发) → 非阻塞IO(摆脱线程阻塞) → 非阻塞+死循环(解决漏数据) → IO多路复用(解决CPU空转) → 事件循环(封装调度) → yield生成器(前置铺垫) → async/await协程(上层语法) → 多进程+协程(生产最终版)Python IO模型的学习,核心不是死记硬背各个模型的定义,而是理解「每一步演进的原因」——为什么会从同步阻塞走向多线程?为什么多线程会被协程替代?为什么需要多进程加持?搞懂这些“为什么”,你就真正掌握了Python并发编程的核心。

2026-05-13 11:50:13 220

原创 注意点:可能是上一篇文章的进阶版,明天再对比一下

同步阻塞IO → 多线程(解决并发) → 非阻塞IO(摆脱线程阻塞) → 非阻塞+死循环(解决漏数据) → IO多路复用(解决CPU空转) → 事件循环(封装调度) → yield生成器(前置铺垫) → async/await协程(上层语法) → 多进程+协程(生产最终版)Python IO模型的学习,核心不是死记硬背各个模型的定义,而是理解「每一步演进的原因」——为什么会从同步阻塞走向多线程?为什么多线程会被协程替代?为什么需要多进程加持?搞懂这些“为什么”,你就真正掌握了Python并发编程的核心。

2026-05-11 23:29:09 433

原创 注意点:稍后继续看11,应该是出现了什么问题,怎么进行解决的,导致可以使用协程可以替代线程进行开发,是不是因为i/o读取只能串行读(协程也是)与cpu计算线程只能单核顺序处理(协程也是)

Python 的 asyncio/Node.js 的事件循环都是基于同步非阻塞(select/epoll),不是真正的异步IO。用户发起IO请求 select() 阻塞等待 aio_read() 立即返回。data = sock.recv(1024) # 这个recv不会阻塞。data = sock.recv(1024) # 用户主动调用recv。IO多路复用 select阻塞 recv不阻塞 同步非阻塞。真正的异步需要内核完成数据拷贝,用户不需要调用 recv。

2026-05-11 14:36:31 221

原创 14.: 总结本章 Python 高性能并发:多线程+多进程核心知识点+实战指南(面试/开发双适配)---完整版本,后续单补充,除非理解更透彻,否则不再动这个了

多线程共享的是「进程内存」,普通读取是把大文件"搬进"这份内存共享;mmap 是"映射"文件地址共享,不用搬文件。这才是超大文件场景下,mmap 不可替代的核心原因。提交单个 CPU 计算任务到进程池,返回 Future 对象。类型守护对象创建方式程序结束时的行为非守护线程主线程默认(daemon=False)阻止主线程退出,直到自身执行完毕守护线程主线程主线程退出时,被强制终止非守护进程主进程默认(daemon=False)阻止主进程退出,直到自身执行完毕守护进程主进程。

2026-05-09 14:59:50 389

原创 14.1: 总结本章 Python 高性能并发:多线程+多进程核心知识点+实战指南(面试/开发双适配)---完整版本,后续单补充,除非理解更透彻,否则不再动这个了

“多进程是为了 CPU 并行;只有当 I/O 慢到拖累整体性能时,才在每个进程内用线程加速 I/O——这是对资源的精准投入。”在 Python 中处理混合型任务(既有 CPU 计算,又有大量 I/O)时,很多人会陷入“到底该用多线程还是多进程”的困惑。其实,答案不是二选一,而是分层解决:外层用多进程并行 CPU,内层用多线程并发 I/O,这就是高性能 Python 程序的黄金组合。本文将融合核心知识点与实战技巧,既覆盖面试高频考点,也提供可直接复用的开发方案,帮你彻底搞懂 Python 多线程、多进程的正确

2026-05-07 22:26:22 416

原创 注意点:主进程与子进程 共享内存与 内存泄漏导致脚本报错

是系统内核资源,生命周期独立于 Python 进程;进程退出 ≠ 共享内存自动释放,不手动unlink必然内存泄漏;主进程创建+全局持有+atexit 自动清理;子进程挂载读取+用完仅 close 不 unlink;该方案适配多进程前缀树共享、大数据多进程分发等所有业务场景,可直接复用至生产脚本。

2026-05-07 16:17:08 378

原创 注意点: Python or 短路机制,以及经典写法 x in seen or seen.add(x) ------------稍后再看

Python 中andor都会短路,核心规则一句话:能提前确定结果时,就不再执行后面的表达式。遍历按dag_id去重,只保留每个dag_id第一次出现时对应的所有hrns,并展平成一维列表。极度简洁,适合列表推导式等单行场景Python 风格惯用去重技巧,常见于工程代码利用or短路特性,在条件判断中顺带执行添加操作。看懂短路机制,这类 Python 精简代码再也不会迷惑。封面标题/关键词目录结构适合 优快云 的排版(小标题、代码高亮、重点标注)扩展到and短路对比讲解。

2026-03-20 15:57:14 185

原创 13.1:所有网络软件(浏览器、微信、抖音、APP、服务器)底层全都是靠操作系统提供的 Socket 通信,可以使用Socket 自己实现一套专属的通信协议,让多台机器按我们的规则通信。

Socket:通信的“管道”(负责数据收发);异步I/O:管道的“高效管理规则”(非阻塞处理I/O事件);协程:执行规则的“轻量级载体”(落地异步I/O);三者结合实现高并发Socket通信。

2026-03-12 00:09:27 434

原创 13. python的socket接口 封装了TCP、UDP协议的底层实现细节,可以自己根据想要的功能实现相关的协议,不必借助已有的协议,操作TCP/UDP,快速实现所需的网络通信功能。及其它计网面试

本文覆盖计算机网络所有核心面试考点,按“四合一”模式整理,适配所有校招、后端、测试、运维岗位。建议学习顺序:先看「方便理解」版本搞懂核心逻辑,再用「方便背诵」版本快速记忆关键点,面试前熟读「方便口头说」版本保证流畅口述,正式答题时用「方便面试回答」版本拿满分。记熟本文内容,网络面试无需额外准备,直接应对所有高频问题,轻松拿高分!(注:文档部分内容可能由 AI 生成)

2026-03-11 01:33:59 353

原创 注意点:字节码查看方法以及字节码的输出需要关注哪些

元素类型示例值说明偏移量纯数字,标记指令的位置指令英文关键词,代表底层操作变量/常量指令右侧数值/字面量,是指令操作的目标数据偏移量:纯数字(如0、2、4),仅标记指令位置;指令:英文关键词(如YIELD_VALUE),是生成器“暂停/恢复”的核心操作;变量/常量:指令右侧数据(如1、a、None),是指令的操作对象。

2026-03-11 01:03:08 48

原创 注意点:内置类方法的重写限制

Python 中部分由 C 语言实现的内置类(如。

2026-03-11 00:57:08 216

原创 12. Python 迭代协议与生成器核心知识点整理

UserList(Python 标准库中的类)内部通过yield实现遍历,简化迭代器协议的手动实现;自定义遍历示例:class UserList:# 生成器自动实现迭代器协议yield itemprint(i) # 输出 1 2 3迭代体系:可迭代对象(__iter__)→ 迭代器(__next__)→ 生成器(yield自动实现迭代器协议);生成器核心:堆内存栈帧 + 惰性求值,实现“暂停/恢复”,适合大数据/分步执行场景;协议平替:无__iter__时,可实现基础迭代;

2026-03-11 00:54:12 454

原创 注意点:Shell vs Python vs 混合 vs C:Shell vs Python vs C:海量数据处理的终极选型指南 ------------稍后看,要会背

Python • 代码清晰• 库丰富• 易测试维护 • 启动慢• 文本处理慢• 内存开销大 • API 调用• JSON/YAML 解析• 复杂状态机• 工程化流水线。可扩展性强:即使扫描 10 亿文件,内存仍 • 内存恒定• 启动快 • 逻辑表达弱• 错误处理难• 不跨平台 • 文件查找• 日志切割• 路径清洗• 批量重命名。手写 C • 极致性能• 完全控制内存/I/O • 开发成本高• 无生态• 难维护 • 高频核心算子• 自定义协议解析• 极限吞吐场景。

2026-03-05 19:38:21 55

原创 注意点: ip,域名解析DNS,域名 三者之间的关系

让 DNS 帮你处理底层服务器的迁移、扩容和故障转移,这才是云时代正确的打开方式。故障场景 主库宕机,自动切换至备库 (IP 变更) 主库宕机,自动切换至备库 (IP 变更)在云原生架构中,连接数据库时使用域名还是IP 地址,直接决定了你的系统是否具备高可用(HA)能力。抛弃域名直接用 IP,等于主动放弃了云数据库的高可用自动切换机制。它让固定的 IP 变成了可动态调度的服务。

2026-03-04 15:22:56 130

原创 注意点:打开超大目录时,VSCode 会持续遍历目录内所有文件、构建索引和缓存,这个过程中进程处于高负载状态;此时强行关闭VSCode,系统**来不及回收正在工作的缓存进程/文件管理进程**

你打开超大目录时,VSCode 会持续遍历目录内所有文件、构建索引和缓存,这个过程中进程处于高负载状态;,残留进程占用了端口、文件句柄、内存锁等关键资源,导致新VSCode进程无法正常启动,清理进程后释放了这些资源,因此能重新打开。→ 残留进程占用端口/句柄/锁 → 重新打开VSCode,新进程资源申请失败→ 启动卡死/打不开 →。(包括主进程+所有残留的缓存、索引、远程服务进程),同时系统会自动回收这些进程占用的。→ 释放全部被占资源 → 新进程正常启动 → 能重新打开。→ VSCode启动多进程。

2026-02-05 17:41:10 527

原创 注意点:同样的程序执行速度对比:不输出》》》写入txt》》》终端输出,原因是终端/磁盘等硬件操作必须调用操作系统内核接口(“内核态”)

写入TXT文件速度 ≫ 终端print输出(快100倍+):核心是文件IO通过批量缓冲大幅减少内核态切换次数,且无终端渲染的额外开销;仅比“不加print”略慢(仅多少量批量IO的内核态切换,总耗时增加<5%)。

2026-01-21 16:24:54 38

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除