编程人生
文章平均质量分 67
大囚长
大丈夫遗世独立,孑然一身。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
从工程化思维到智能体规划:Vibe Coding中的任务拆解与组装之道
Vibe Coding的成功不仅在于提示词的精妙,更在于工程化思维的贯彻。你通过“定规则 → 拆任务 → 建MVP → 叠模块”这套流程,可以将AI从一个随性的“代码生成器”,转变为一个可控、高效的“开发助手”。而Agent的Plan功能,正是为你所思考的这套“拆解与组装”方法论而生的。它将需要人工执行的步骤内化为了AI的核心能力,让AI从一个被动的代码生成器,变成了一个能够主动规划、执行和管理的“智能体”。理解这两者的关系,是驾驭AI、实现复杂软件目标的关键一步。原创 2026-07-08 11:14:38 · 650 阅读 · 0 评论 -
SonarQube AI代码检查技术深度分析:原理、成效与未来展望
这一趋势在提升开发效率的同时,也带来了严峻的质量与安全挑战——AI生成代码虽能加速交付,却可能引入未经测试的逻辑漏洞、安全缺陷及合规风险,而传统静态分析工具对复杂业务逻辑漏洞的检测率不足40%,误报率常高达35%以上,人工代码审查又受限于主观经验与时间成本,难以应对规模化开发需求。:传统代码质量保障体系正面临三重断裂——静态工具对复杂逻辑漏洞的"检测盲区"、人工审查的"效率瓶颈",以及AI生成代码快速普及带来的"质量失控风险"。例如,针对CORS跨域问题,AI可生成包含预检请求处理的完整解决方案。原创 2025-09-03 09:16:23 · 1948 阅读 · 0 评论 -
AI代码生成的灾难代价:人类审查失职的深度剖析与系统性反思
AI 代码生成的固有缺陷通过三级传导形成系统风险——首先,概率预测机制导致逻辑正确性无法保证;其次,业务与架构理解不足使代码脱离实际需求;最终,质量退化与隐蔽错误降低系统鲁棒性,引发性能崩溃(如查询性能下降 60 倍)、数据错误(分布式交易不一致)、安全漏洞(权限越权)等灾难性后果。原创 2025-09-02 09:48:43 · 1963 阅读 · 0 评论 -
配置管理和服务发现——consul和zookeeper怎么选
Consul 和 ZooKeeper 都是分布式系统中常用的配置管理和服务发现工具,但它们在设计理念、功能特性和适用场景上存在显著差异。原创 2025-08-19 10:38:08 · 1192 阅读 · 0 评论 -
使用python编写MCP
Python 实现大模型代码执行与检查方案 通过 MCP 协议(FastMCP/Gradio)可让大模型调用本地工具执行代码并验证结果: 1️⃣ 核心工具 FastMCP:@mcp.tool()装饰器暴露Python函数 Gradio:mcp_server=True自动生成工具接口 2️⃣ 实现方式 自定义工具:用subprocess安全执行代码(建议Docker沙箱) 快速部署:Gradio 5行代码搭建MCP服务 3️⃣ 关键安全措施 沙箱环境执行 超时控制(10秒) 敏感操作过滤 4️⃣ 典型流程 大原创 2025-07-01 09:38:28 · 2082 阅读 · 0 评论 -
MCP的核心机制与交互流程
摘要:Claude Desktop工作流程通过大模型(Claude)与MCP客户端的协作实现工具调用,包含双重意图判断(模型生成指令+客户端校验)、持续监控响应(结构化检测与异常处理)、工具调用结果整合(隐藏指令/自然语言转换)等核心机制。客户端严格校验JSON格式、工具权限及执行结果,确保安全性;模型负责语义解析与回复生成,二者协同平衡功能性与可靠性。该机制既发挥大模型理解优势,又通过协议约束规避滥用风险,适用于私有化MCP部署场景。(149字)原创 2025-06-20 09:20:20 · 1611 阅读 · 0 评论 -
打造具备“灵魂”的智能小车:基于树莓派与Qwen3的工程化实践
打造具备“灵魂”的智能小车工程实践报告摘要 本报告详细阐述了基于树莓派和Qwen3大模型的智能小车开发方案。项目目标是通过多模态交互、长期记忆系统和个性化引擎,赋予智能小车类人化的"灵魂感"。系统架构采用树莓派作为核心控制器,Qwen3提供云端智能,可选配K230开发板作为视觉协处理器。 硬件选型推荐树莓派5作为主控,搭配高品质麦克风、摄像头和环境传感器;电机驱动选用TB6612FNG,自主回充采用AprilTag视觉引导结合红外末端对准方案。软件实现采用模块化设计,包含音频处理、视觉处原创 2025-06-19 09:30:08 · 1799 阅读 · 1 评论 -
JIT(Just-In-Time Compilation,即时编译)技术
JIT(即时编译)技术是一种在程序运行时动态生成机器码的编译方法,结合了解释执行的灵活性和静态编译的高效性。其核心原理包括动态编译、利用运行时信息进行优化以及缓存重用。JIT的工作流程分为解释执行、热点检测与触发编译、编译与优化、执行与缓存管理四个阶段。JIT广泛应用于Java虚拟机、JavaScript引擎、动态语言运行时和高性能计算等领域,具有性能接近原生代码、跨平台兼容性和动态适应能力等优势,但也面临启动延迟、内存占用和复杂保护对抗等挑战。未来,JIT技术将朝着智能化优化、跨平台支持和与AOT结合的方原创 2025-05-14 09:35:46 · 2356 阅读 · 0 评论 -
程序加壳原理
程序加壳技术通过在原始可执行程序外层附加“壳代码”,对程序的代码和资源进行压缩或加密,并在运行时优先执行壳代码以完成解密或解压操作,最终将控制权交还给原始程序。其核心目标包括保护代码逻辑、防止逆向工程分析和压缩文件体积。加壳的实现步骤包括预处理与加密、壳代码注入和运行时行为。加壳技术可分为压缩壳、加密壳和混合壳,每种类型都有其特定的应用场景和优缺点。尽管加壳技术在软件版权保护和恶意软件隐匿等方面有广泛应用,但其效果受限于壳的复杂性和对抗技术的发展,形成攻防博弈的常态。原创 2025-05-13 10:26:57 · 1671 阅读 · 0 评论 -
EdgeTTS
EdgeTTS 凭借其开源免费、高质量语音输出和易用性,成为替代付费 TTS 服务(如科大讯飞)的理想选择。无论是个人开发者还是企业用户,均可通过其丰富的接口和灵活的配置快速实现语音功能集成。原创 2025-04-02 09:34:25 · 2763 阅读 · 0 评论 -
向内求解人生
人生成功的定义因个体目标与价值观而异。若一个人的价值观体系将“无憾”置于核心地位(如追求心灵自由、减少执念),那么无憾本身即构成其成功的标志。这与东方哲学中“放下执着”的智慧相契合。原创 2025-03-27 19:27:27 · 768 阅读 · 0 评论 -
Milvus 向量数据库使用示例
该方案已在 100 万级文本数据集验证,检索延迟 <50ms(RTX 4090 GPU 环境)。实际部署时需注意调整 chunk_size 和 nprobe 参数以适应业务场景。原创 2025-03-20 10:29:41 · 1874 阅读 · 0 评论 -
让deepseek玩贪吃蛇
官方api调用有点慢,只实现了一些基础功能。原创 2025-03-19 10:56:16 · 398 阅读 · 0 评论 -
Qwen-VL人脸识别python示例
根据Qwen-VL多模态大模型的视觉理解能力,结合Python的Transformers库,可以快速实现人脸识别功能。原创 2025-03-18 16:19:44 · 1382 阅读 · 0 评论 -
deepseek连续对话与API调用机制
通过合理的上下文管理策略,可在保证对话质量的前提下,将API调用成本降低40%-60%。建议结合业务场景特点选择合适的优化层级。设计,每次请求视为独立会话。若需维持对话连续性,必须由客户端主动管理并传递完整上下文。这与HTTP协议的无状态特性一致。在调用DeepSeek等大模型进行连续对话时,是否需要每次上传系统提示和对话历史取决于API的设计机制。实验表明,采用动态上下文管理可降低63%的Token消耗,同时保持对话连贯性在85%以上。DeepSeek的API基于。原创 2025-03-17 17:18:16 · 3473 阅读 · 0 评论 -
给AI编程泼一盆冷水
AI确实扩大了普通人的能力边界,但是如果你连自己想要什么都描述不清楚,更不知道AI干了什么,你最好停下来认真的学习一下。AI并没有消除认知差距,而是让人与人的认知差距急剧拉大了。原创 2025-03-10 10:52:52 · 5924 阅读 · 1 评论 -
AI应用开发平台通常具备的要素
AI应用开发平台的基本要素通常包括大模型调用、RAG知识库、工作流和多模型交互完成任务等。原创 2025-03-03 14:55:03 · 660 阅读 · 0 评论 -
如何使用大模型、知识库和AI工作流创建AI应用(扣子平台)
这里其实还是需要大量的测试工作的,因为你不知道提示词哪里不到位,agent get不到你的点就会搞出什么幺蛾子,尤其是对外调用的服务,最好有人工审核步骤。通过ai大模型的加入我们可以轻松构建很多以前需要复杂编码和逻辑的应用,比如诈骗信息甄别,系统报警日志分析,脏话屏蔽,诗歌创作,游戏NPC等等。添加一个代码节点,让它来处理邮件的发送功能,然后用连线将它和开始结束节点连接起来,注意开始节点要接收agent调用工作流时传入的json中的参数,对应的参数名和类型要写正确。原创 2025-02-28 09:33:03 · 2244 阅读 · 0 评论 -
使用anaconda管理多python版本环境
因此,如果需要一个轻量级的、可定制的Python环境,或者磁盘空间有限,那么Miniconda可能是一个更好的选择。如果需要一个全面的、方便的Python环境,或者不想花时间安装其他的包,那么Anaconda可能是一个更好的选择。原创 2024-03-08 11:46:48 · 741 阅读 · 0 评论 -
代码的陋习
正如食物要腐坏之前,经常会发出一些异味一样, 我们管这些痕迹叫做 “代码异味”。如果一段代码是不稳定或者有一些潜在问题的,那么代码往往会包含一些明显的痕迹。今天让我们一起来熟悉开发中经常出现的22种坏味道情形和解决方法。4.Long Parameter List(过长参数列)原创 2024-01-17 11:52:50 · 915 阅读 · 0 评论 -
当前页面一键回关
优快云博客关注页面当前页面一键回关所有fans代码。f12打开控制台,输入以下代码。原创 2024-01-15 14:02:54 · 686 阅读 · 0 评论 -
微服务设计的十条参考指南
微服务的内聚性越高,设计模型的可理解性就越强,根据业务流程和场景识别所有实体后,需对实体间进行关系分析,优先识别出生命周期一致的实体进行归类,然后根据实体与聚合根的区别,明确每个聚合根的边界,微服务的最小单元通常是一个聚合根,可根据技术成本来评估并确定一个微服务中包括几个聚合根,但不建议对一个聚合根进行割裂。微服务内部应确保为无状态,即:将有状态信息从微服务中进行剥离,从而单纯的成为一个无状态的计算节点,以便可快速实现动态伸缩的横向扩展能力,同时对应用系统不产生额外的成本投入或代码侵入。转载 2023-02-03 15:21:33 · 280 阅读 · 0 评论 -
SOA(面向服务的架构)
SOA 是面向服务的架构,即企业的 IT 系统是由服务组成的,也即企业的各个应用系统是由许多标准的服务件“组装”起来的,组成应用系统中的各个服务之间是一种非常松耦合的关系。服务基于简单的“问/答”模型——我问你问题,你给我答案,那么对于“我”来说,“你”就是“服务”。但是答案反馈有同步和异步之分,同步就是我问你问题并在线等待你答复,而异步就是我问完你问题就去忙其他事情了,你有了答案之后再通知我。在软件行业,基于这种服务的编程思想最早表现为函数,即把经常用到的代码块定义成一个函数并取一个函数名,再用函数名替换转载 2022-12-07 11:47:43 · 1296 阅读 · 0 评论 -
程序员必备的 40 个 VSCode 扩展
在编写代码时,一个富有成效的工作空间不仅仅是要找到合适的代码编辑器。开箱即用的VS Code是为开发人员制作的。根据2021年StackOverflow的调查,71.06%的受访者将Visual Studio Code作为首选的IDE。使得VS Code如此受欢迎的是市场中可用的扩展程序的数量。有超过30,000个扩展在流通,选择几乎是无限的 - 同时也是压倒性的。根据程序员的时间跟踪工具WakaTime,Visual Studio Code在2020年的开发工作中超过1800万小时。转载 2022-12-02 09:34:15 · 2165 阅读 · 0 评论 -
Rust 所有权
计算机程序必须在运行时管理它们所使用的内存资源。大多数的编程语言都有管理内存的功能:C/C++ 这样的语言主要通过手动方式管理内存,开发者需要手动的申请和释放内存资源。但为了提高开发效率,只要不影响程序功能的实现,许多开发者没有及时释放内存的习惯。所以手动管理内存的方式常常造成资源浪费。Java 语言编写的程序在虚拟机(JVM)中运行,JVM 具备自动回收内存资源的功能。但这种方式常常会降低运行时效率,所以 JVM 会尽可能少的回收资源,这样也会使程序占用较大的内存资源。转载 2022-10-20 15:14:33 · 207 阅读 · 0 评论 -
Rpc 和 gRpc 简介汇总
protocolbuffers是google推出的一种数据序列化格式,简称protobuf。优点支持多种编程语言序列化数据体积小反序列化速度快序列化和反序列化代码自动生成缺点可读性差,缺乏自描述性下图(左JSON,右Protobuf)是同样的一段数据,用json和protobuf分别描述(仅表示描述方式,并不是最终生成的序列化数据)。可以看出,protobuf是把json中的key去掉了,用数字代替key,从而实现了减小了序列化后的数据大小。}...转载 2022-07-29 15:14:30 · 6393 阅读 · 0 评论 -
PE文件结构详解
Windows程序的各种界面称为资源,包括加速键(Accelerator)、位图(Bitmap)、光标(Cursor)、对话框(DialogBox)、图标(Icon)、菜单(Menu)、串表(StringTable)、工具栏(Toolbar)和版本信息(VersionInformation)等。执行PE文件前,加载程序在进行重定位的时候,会用PE文件在内存中的实际映像地址减PE文件所要求的映像地址,根据重定位类型的不同将差值添加到相应的地址数据中。...转载 2022-07-20 11:13:57 · 13131 阅读 · 4 评论 -
Linux ELF 详解1 -- ELF Header
ABI全称ApplicationBinaryInterface,针对不同系统有不同规范,比如i386-ABI对应的是x86系列,x86-64-ABI对应x86-64系列。这个字节很重要,因为不论是数据类型还是ELFHeader的定义,以及后面会讲到的其他信息都是划分为32位和64位的,因此必须根据这个字节来进行不同的解析。我们写的程序,如果要运行,都有一个main方法(C/C++/Java/Python),但这个并非是程序入口,真正的入口是。......转载 2022-07-20 10:32:03 · 707 阅读 · 0 评论 -
Linux内核如何启动并装载一个可执行程序
首先来看一下在C语言程序是如何经过处理变成可执行程序的生成可执行程序的过程C代码(.c)-经过编译器预处理,编译成汇编代码(.asm)-汇编器,生成目标代码(.o)-链接器,链接成可执行文件(.out)-OS将可执行文件加载到内存里执行.EXECUTABLEANDLINKABLEFORMAT可执行的和可链接的格式(是文件格式的标准).o文件和可执行文件,都是目标文件,一般使用相同的文件格式目标文件也叫做ABI,应用程序二进制接口。一个。...转载 2022-07-20 09:58:59 · 1111 阅读 · 0 评论 -
ASCII码与16进制转换表
每个ASCII字符转化成16进制是两位的16进制数,同样,把16进制数转化成ASCII时是两位一起转化成一个ASCII字符,然后把他们联结起来。ASCII是针对字符的编码,几乎是键盘上的字符的编码。所以,45的ASCII表示就是4的ASCII表示和5的ASCII表示联结起来的。转换应该是输出的转换,同样是一个数,在计算机内存中表示是一样的,只是输出不一样。关于这张表,主要是键盘上的键值字符在计算机中的。都只是概念上的东西,在计算机中通通是二进制。存储,为了方便,转化成的16进制表示。...转载 2022-07-19 19:44:57 · 26473 阅读 · 0 评论 -
堆栈的区别
_栈是机器系统提供的数据结构,计算机会在底层对栈提供支持(有专门的寄存器存放栈的地址,压栈出栈都有专门的机器指令执行),这就决定了栈的效率比较高。堆则是C/C++函数库提供的,它的机制是很复杂的(可以了解侯捷老师的内存管理的视频,关于malloc/realloc/free函数等)。例如分配一块内存,堆会按照一定的算法,在堆内存中搜索可用的足够大小的空间,如果没有(可能是由于内存碎片太多),就有可能调用系统功能去增加程序数据段的内存空间,这样就有机会分到足够大小的内存,然后进行返回。...转载 2022-07-19 14:05:58 · 486 阅读 · 0 评论 -
gdb使用详细介绍
gdb是GNU开源组织发布的一个强大的Linux下的程序调试工具gdb除支持c/c++语言外还支持go、D、object-c、fortran等语言GDB主要帮助你完成下面四个方面的功能启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)当程序被停住时,可以检查此时你的程序中所发生的事。你可以改变你的程序,将一个BUG产生的影响修正从而测试其他BUG。...转载 2022-07-18 13:37:53 · 12698 阅读 · 1 评论 -
PDB 常用命令
远程调试Python程序主要使用logging和PDB进行调试。一方面没有权限安装IPDB,另一方面是没法在本地IDE调试。转载 2022-07-15 16:07:22 · 702 阅读 · 0 评论 -
linux 下core dump文件的生成以及错误定位
这就是为什么我们使用Ctrl+z来挂起一个进程或者Ctrl+C结束一个进程均不会产生coredump,因为前者会向进程发出SIGTSTP信号,该信号的默认操作为暂停进程(StopProcess);实验证明是不能的,那么什么情况会产生呢?包,包含崩溃时的堆栈信息,是一个二进制文件,无法使用记事本打开,一般会在指定目录下生成一个core文件。默认情况下,linux系统是不会生成coredump文件,可以使用命令ulimit-c来查看,如果输出为0则表示不会生成coredump文件。...转载 2022-07-15 15:53:55 · 2208 阅读 · 0 评论 -
汇编语言指令大全
它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.ADD 加法.ADC 带进位加法.INC 加 1.AAA 加法的ASCII码调整.DAA 加法的十进制调整.SUB 减法.SBB 带借位减法.DEC 减 1.NEC 求反(以 0 减之).CMP 比较.(两**作数作减法,仅修改标志位,不回送结果).AAS 减法的ASCII码调整.DAS 减法的十进制调整.MUL 无符号乘法.IMUL 整数乘法.以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算),AAM 乘法转载 2022-07-13 14:01:11 · 5960 阅读 · 0 评论 -
GDB或delve调试Go程序查看变量显示<optimized out>解决办法
调试程序代码test.goGDB原创 2022-07-13 12:38:28 · 1066 阅读 · 0 评论 -
GDB常用指令
GDB:run,执行程序:next,下一步,不进入函数:step,下一步,会进入函数:breakponit,设置断点:list,查看源码:continue,继续执行到下一断点:backtrace,查看当前调用栈:print,打印查看变量:quit,退出 GDB:查看对象类型:查看所有的断点:查看局部变量:查看函数的参数值及要返回的变量值:堆栈帧信息:查看 goroutines 信息。在使用前 ,需要注意先执行 source /usr/local/go/src/runtime/runtime-gdb.py:查原创 2022-07-13 10:30:43 · 3049 阅读 · 0 评论 -
完整恢复Linux误删数据
完整恢复被删除的Linux数据,包含文件名和目录结构保存文件路径和MD5值模拟删除文件发现误删之后要立即卸载数据盘,防止inode被覆盖,导致无法恢复使用testdisk恢复文件根据MD5文件恢复路径和文件名验证.........原创 2022-06-30 14:57:01 · 2615 阅读 · 0 评论 -
深入虚拟内存(Virtual Memory,VM)
我们应该知道物理内存(Physical Memory)指的是硬件上的内存,即 RAM。它通常指的是插在主板上的内存条,给进程提供临时数据存储的设备。因为 CPU 可以直接从物理内存中读取数据和指令,所以物理内存又叫做主存。虚拟内存(virtual memory,VM)又叫做虚拟存储(virtual storage),是一种内存管理技术。它是操作系统提供的一种对主存的抽象。虚拟内存的实现由操作系统软件和硬件结合完成,包括硬件异常、地址翻译、磁盘文件、内核程序等。本文将深入虚拟内存的实现机制,讨论它是怎么将磁盘转载 2022-06-27 15:35:55 · 1517 阅读 · 0 评论 -
Python导入模块的3种方式(超级详细)
很多初学者经常遇到这样的问题,即自定义 Python 模板后,在其它文件中用 import(或 from…import) 语句引入该文件时,Python 解释器同时如下错误:ModuleNotFoundError: No module named ‘模块名’意思是 Python 找不到这个模块名,这是什么原因导致的呢?要想解决这个问题,读者要先搞清楚 Python 解释器查找模块文件的过程。通常情况下,当使用 import 语句导入模块后,Python 会按照以下顺序查找指定的模块文件:以上所有涉及到的目录转载 2022-06-27 15:27:54 · 4537 阅读 · 0 评论
分享