- 博客(30)
- 收藏
- 关注
原创 设计模式一览表
本文系统梳理了23种经典设计模式,分为创建型、结构型和行为型三大类。创建型模式(如单例、工厂方法)专注于对象创建机制;结构型模式(如适配器、代理)处理对象组合与结构;行为型模式(如策略、观察者)管理对象间的交互与职责分配。表格详细列出了每种模式的核心意图、适用场景及优缺点对比,便于开发者在实际场景中快速选型。文章最后强调了设计模式遵循的SOLID原则(单一职责、开闭原则等),这些原则共同构成了高质量软件设计的理论基础,帮助开发者构建灵活、可维护的系统架构。
2025-12-08 19:24:34
919
原创 数据结构:树
本文系统解析了树这一非线性数据结构。首先介绍了树的基本概念与术语,包括节点、根节点、层次等。其次详细分类讨论了二叉树(满二叉树、完全二叉树、二叉搜索树、AVL树、红黑树)和多叉树(B树、B+树、Trie树)及其变种的特点与应用场景。接着阐述了树的存储结构(链式、数组)和遍历算法(DFS、BFS)。最后对比了不同树结构的优缺点和复杂度,为实际应用提供参考依据。全文1500余字,全面覆盖树的核心知识点。
2025-12-05 19:14:07
893
原创 常见数据结构综合解析
本文对比了Python中10种核心数据结构,包括数组、链表、栈、队列、哈希表、集合、二叉搜索树、堆、图和字典树。通过表格形式详细列出了各数据结构的特性、时间复杂度、实现方式及适用场景。文章重点分析了线性数据结构(数组、链表、栈、队列)的关键特性、Python实现代码和典型应用场景,帮助开发者根据具体需求选择合适的数据结构。摘要涵盖了数据结构的基本概念、操作复杂度比较和实际编程中的实现示例。
2025-12-05 14:40:48
715
原创 SQL语法一览表
SQL语法分为五大类:DDL(数据定义语言)、DML(数据操作语言)、DQL(数据查询语言)、DCL(数据控制语言)和TCL(事务控制语言)。DDL用于创建和管理数据库对象,包括CREATE、ALTER、DROP等语句。DML用于数据操作,包含INSERT、UPDATE、DELETE等命令。DQL的核心是SELECT查询语句,支持条件筛选、分组统计、排序分页等功能。DCL管理数据库权限,如GRANT、REVOKE等授权语句。不同数据库(MySQL/Oracle/SQL Server)在语法细节上存在差异,如
2025-12-04 10:46:15
978
原创 模型微调技术一览
模型微调技术综述:从全参数到高效参数优化 本文系统梳理了当前主流的模型微调技术,主要包括全参数微调、冻结微调、参数高效微调(PEFT)等核心方法。全参数微调通过更新所有层参数实现最优性能但计算成本高;冻结微调仅训练顶层参数,适合资源有限场景;PEFT技术(如LoRA)通过低秩矩阵适配大幅降低参数更新量,成为大模型微调的主流方案。文章详细分析了各类技术的原理、适用场景和计算需求,并提供了基于Hugging Face Transformers和PEFT库的Python实现示例,涵盖NLP领域的典型应用案例。
2025-12-03 15:43:32
741
1
原创 Selenium 使用方法一览表(基于 Selenium 4.x)
Selenium 是自动化测试/网页爬虫常用工具,核心用于模拟浏览器交互。以下按「环境搭建→核心操作→常用场景→进阶技巧→注意事项」分类整理,方便快速查阅。
2025-12-02 17:20:52
1088
1
原创 排序算法对比
本文总结了主流排序算法的核心特性,并提供了详细实现。快速排序是通用场景的最佳选择,归并排序适用于需要稳定性的场景,插入排序对小规模数据高效,堆排序适合内存受限系统。文章还给出了各算法的Python代码示例,包括冒泡排序、选择排序、插入排序、快速排序、归并排序和堆排序。在实际开发中,建议直接使用标准库的高度优化排序函数。
2025-11-22 11:36:53
676
原创 dotenv
python-dotenv是一个Python库,用于将应用配置存储在.env文件中并通过环境变量加载,实现配置与代码分离。它支持基本键值对、变量插值和命令行操作,能自动查找或指定.env文件路径,并可控制是否覆盖现有变量。典型应用场景包括安全存储API密钥、数据库连接等敏感信息,特别适合Django/Flask等Web框架。关键注意事项包括:确保.env加入.gitignore、正确处理特殊字符值,以及在测试环境中的集成使用。该库遵循12-Factor应用原则,是Python项目配置管理的实用工具。
2025-11-22 11:28:01
478
原创 LangChain: Model I/O
本文系统介绍了LangChain模型调用核心组件:1)模型类型对比(LLMs/ChatModels/Embedding Models)及其参数配置;2)消息体系(System/Human/AIMessage等)与对话结构;3)提示模板(PromptTemplate/ChatPromptTemplate/FewShot等)的创建与使用;4)输出解析器(Str/Json/XML等)的功能实现。特别包含Ollama本地模型部署方案和完整代码模板,涵盖同步/异步/流式调用方式。通过清晰的表格对比和代码示例,全面解析
2025-11-21 17:11:57
404
原创 大模型:监督微调(SFT)
监督微调(SFT)是将预训练大模型适配到具体任务的关键技术。其核心工作流程包括:数据构建(人工撰写、模型合成等)、格式化处理、训练执行(全参数微调或参数高效方法如LoRA/QLoRA)及评估部署。主流技术包括全量微调(性能优但资源消耗大)和参数高效微调(如LoRA仅更新0.1%-1%参数)。当前生态系统主要有NVIDIA的Megatron-DeepSpeed组合和Hugging Face的Transformers-PEFT-TRL工具链。SFT实现了从通用知识到专业技能的转化,是大模型落地的核心桥梁。
2025-11-13 16:03:03
832
原创 大模型:阶段简介
这是最耗时、耗资最巨大的阶段,目标是赋予模型通用的语言理解和世界知识。让模型的理解与人类的偏好、价值观和安全准则对齐。此阶段让“通才”基座模型变成“专才”助手。
2025-11-13 15:21:25
265
原创 Transformer:输入到输出数据转换过程
本文详细剖析了Transformer模型中" I love you"到"我爱你"的翻译过程。首先介绍模型结构和词表映射,然后分步骤解析编码器和解码器的工作机制:编码器通过嵌入层和多头自注意力将源语言转换为富含上下文信息的表示,解码器则通过掩码自注意力和编码器-解码器注意力实现自回归生成。文章对比了训练时并行预测与推理时逐步生成的区别,完整展示了数据从离散词语到连续向量、再到目标语言输出的转换流程,重点解释了注意力机制如何捕获词语间的语义关系。
2025-11-12 17:47:25
639
原创 Transformer:多头注意力
多头注意力机制通过并行化多个独立的注意力头,将输入数据投影到不同子空间,让每个头专注于学习一种特定的依赖关系。其计算步骤包括:1)创建查询、键、值矩阵;2)拆分到多个头;3)在每个头上并行计算缩放点积注意力;4)拼接所有头的输出并进行线性变换。这种方法增强了模型表达能力,提供冗余稳定性,且可高效并行计算。在Transformer中,多头注意力应用于编码器自注意力、解码器掩码自注意力和编码器-解码器注意力三种场景,分别实现上下文编码、防止信息泄露和跨序列关注功能。这种设计使模型能同时捕捉多种语言关系,成为大型
2025-11-11 16:57:54
443
原创 大数据:Kappa架构
Kappa架构是一种简化的大数据处理架构,由Jay Kreps提出,旨在解决Lambda架构的复杂性。其核心思想是"所有数据都是流,批处理只是流的一个特例",通过单一流处理引擎处理实时和历史数据。主要组件包括:1)支持数据重放的消息队列(如Kafka);2)流处理引擎(如Flink);3)服务层存储计算结果。当业务逻辑变更时,Kappa架构通过数据重放机制重新处理历史数据,无需维护两套系统。相比Lambda架构,Kappa架构更简单、一致且低延迟,但对消息队列要求高,历史数据处理可能耗时
2025-11-07 22:15:36
504
原创 NoSQL数据库:简介
NoSQL数据库是一类非关系型分布式数据存储系统,具有高扩展性、灵活数据模型和高可用性特点,适用于大数据和实时分析场景。它基于CAP定理和BASE模型,在一致性、可用性和分区容错之间进行权衡。主要分为键值、文档、列族和图数据库四大类型,各具特色应用场景。关键技术包括水平扩展、多副本容错和多样化查询语言。随着云原生和AI技术发展,NoSQL市场持续增长,2024年规模达94.4亿美元,呈现多模态、安全合规和Serverless等趋势。选型需结合业务需求、数据模型和运维成本,采用混合存储策略实现最佳性能。
2025-11-06 21:41:53
721
原创 软件测试:划分方法
本文系统介绍了软件测试的分类体系和方法论。从测试对象维度划分了单元测试、集成测试、系统测试和验收测试四个层次;从技术手段角度阐述了黑盒、白盒、灰盒等测试方法;详细说明了等价类划分、边界值分析等常用测试设计技术;区分了功能性与非功能性测试类型;比较了手动与自动化测试的优缺点;梳理了测试过程的关键环节;列举了主流测试工具框架和常用质量评估指标。通过层次化、技术化、设计化与自动化相结合的完整测试体系,可有效保障软件质量,实现缺陷的高效发现和质量可度量提升。
2025-11-06 14:05:40
483
原创 软件测试:黑盒测试技术
黑盒测试是软件测试的核心方法,将软件视为不透明的"黑盒"进行功能验证。主要技术包括:1)等价类划分,通过有效/无效输入子集减少测试量;2)边界值分析,针对边界及附近值设计用例;3)判定表法,处理多条件组合逻辑;4)因果图法,图解输入输出关系;5)场景法,基于用户业务流程测试;6)错误推测法,依靠经验补充测试。实际应用中常组合使用这些技术,先通过场景法梳理流程,再用等价类和边界值测试细节,结合判定表处理复杂逻辑,最后用错误推测补充边缘场景。
2025-11-05 15:38:26
1005
原创 软件维护:简介
摘软件维护是软件交付后为修正缺陷、适应变化或改进功能而进行的修改活动,占生命周期成本的60%-70%。主要类型包括纠正性、适应性、完善性(占比50%)及预防性维护。维护过程涵盖需求评审、影响分析、测试部署等关键步骤,需关注MTTR、缺陷密度等指标。挑战包括遗留代码、技术债务等,最佳实践采用CI/CD、自动化测试及容器化。未来趋势聚焦AI辅助、DevSecOps及可观测性。遵循IEEE/ISO标准可提升效率,支撑系统长期稳定运行。
2025-11-05 15:38:09
769
原创 软件测试:简介
软件测试方法可以从测试阶段、测试方法和测试类型三个维度进行分类。测试方法按代码可见性可分为黑盒测试(基于功能需求)、白盒测试(基于代码逻辑)和灰盒测试(介于两者之间)。测试阶段按开发流程分为单元测试、集成测试、系统测试和验收测试。此外,常见的测试类型还包括功能测试、性能测试、安全测试等。在实际项目中,这些方法需要协同使用,如开发人员执行单元测试(白盒),测试人员进行功能测试(黑盒),集成阶段做接口测试(灰盒),最终由客户完成验收测试。
2025-11-04 14:44:55
830
原创 软件测试:白盒测试
本文系统介绍了白盒测试的核心概念和覆盖技术。白盒测试通过分析代码内部结构设计测试用例,包括语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和路径覆盖6种主要方法,其覆盖强度依次递增。文章通过示例代码详细演示了每种技术的具体应用,并比较了它们的优缺点。最后指出白盒测试还包括静态测试、数据流测试等其他技术,强调需要根据实际场景选择合适的测试方法组合。
2025-11-04 14:44:39
702
原创 缓存:中间件对比
本文对比了Redis、Memcached、Caffeine和Ehcache四种主流缓存中间件的特性差异。从基本特性、性能容量、数据一致性、功能场景等维度进行了详细分析,并提供了选型推荐矩阵。结果显示:Redis在功能丰富性和分布式支持方面表现突出,Memcached在纯KV场景下性能最优,Caffeine则是最佳的单机本地缓存方案,Ehcache适合需要持久化的Java应用。建议根据数据规模(小数据用本地缓存,大数据用分布式)和业务场景(简单KV选Memcached,复杂需求选Redis)进行合理选型,必要
2025-11-03 13:24:28
849
原创 数据库索引
数据库索引核心知识总结 索引概念:索引是排序的数据结构,用于加速查询,类比书籍目录。 数据结构: B+树(主流):平衡多路搜索树,支持范围查询和排序 哈希索引:适合等值查询但不支持范围操作 索引类型: 单列/复合索引 普通/唯一/主键/外键索引 聚集索引(决定物理存储)与非聚集索引 存储原理: InnoDB中聚集索引存储数据行 二级索引存储主键值 回表查询与覆盖索引概念 优化建议: 高选择性列优先建索引 避免冗余索引和索引失效操作 定期维护索引统计信息 索引代价: 占用存储空间 降低写入性能 增加维护成本
2025-11-03 13:24:12
933
原创 缓存:常见问题
缓存常见问题及其解决方案总结: 缓存穿透:查询不存在数据导致直接访问数据库,可通过缓存空对象(设置短TTL)或布隆过滤器(高效拦截非法请求)解决。 缓存击穿:热点key失效引发瞬时高并发,建议使用互斥锁(单线程重建)或逻辑过期时间(异步更新+返回旧数据)缓解。 缓存雪崩:大量key同时失效或缓存宕机,采用随机TTL分散过期时间、构建高可用集群、多级缓存及熔断降级机制保障系统稳定性。 核心思路:通过合理设计缓存策略、异步更新机制和分布式架构,平衡性能与可靠性,避免数据库过载。
2025-11-03 13:23:53
624
原创 缓存:读写策略
缓存读写策略是缓存设计的核心,主要包括五种主流策略: Cache-Aside(旁路缓存):最常用策略,应用直接管理缓存和数据库的读写,灵活性高但存在短暂不一致窗口。适用于读多写少场景。 Read-Through(读穿透):应用只读缓存,由缓存组件负责未命中时从数据库加载数据,实现代码解耦。常与Write-Through配对使用。 Write-Through(写穿透):写操作同时更新缓存和数据库,保证强一致性但写延迟较高。适合对一致性要求高的场景。 Write-Behind(写回):异步批量写入数据库,写性能
2025-11-03 13:23:35
746
原创 缓存:简介
本文系统梳理了缓存技术核心要点。首先介绍缓存的基本概念和优劣势,分析其在系统架构中的位置与分类。重点阐述缓存读写策略、淘汰算法等核心技术,并针对缓存穿透、击穿、雪崩等典型问题提供解决方案。同时探讨分布式缓存的数据分片和高可用架构,以及实践中的键值设计、监控优化等内容。最后列举Redis、Memcached等主流缓存中间件特点与适用场景。全文呈现了缓存技术从基础理论到实践应用的知识体系,强调在性能、一致性和复杂度之间进行权衡的设计思路。
2025-11-03 13:23:13
589
原创 MySQL慢查询优化
慢查询优化指南 慢查询是指执行时间超过阈值的SQL语句(如1秒),是数据库性能优化的重点。优化流程包括:发现慢查询、分析执行计划、制定优化策略和验证效果。通过慢查询日志、性能监控工具定位问题后,使用EXPLAIN分析执行计划关键指标(如type、key、rows、Extra)。主要优化策略有: 索引优化:为常用查询条件创建合适索引,利用覆盖索引,遵循最左前缀原则 SQL重写:避免SELECT *,优化分页查询,分解复杂查询 表结构优化:选择合适数据类型,权衡规范化与反规范化 系统调优:调整服务器参数,升级硬
2025-11-02 20:29:59
970
原创 数据库锁机制:悲观锁与乐观锁终极对决
悲观锁与乐观锁是数据库并发控制的两种策略。悲观锁假设冲突频繁,操作前先加锁(如SELECT...FOR UPDATE),确保独占访问,适合高竞争场景但性能开销大;乐观锁假设冲突较少,通过版本号/时间戳机制在提交时检测冲突,失败则回滚重试,适合低竞争环境,性能更高但冲突处理成本大。选择依据主要取决于写冲突概率:高竞争用悲观锁保证一致性,低竞争用乐观锁提升吞吐量。实际应用中需权衡业务需求与性能目标。
2025-11-02 16:46:42
889
原创 深入解析数据库死锁:原理与实战应对
本文详细探讨了数据库中的死锁问题,主要包含以下要点: 死锁定义:多个事务因争夺资源陷入相互等待状态,无法继续执行; 必要条件:互斥、请求与保持、不剥夺、循环等待四个条件同时满足才会发生死锁; 处理策略:包括死锁预防(如破坏必要条件)和死锁检测与恢复(通过等待图法或超时法); 预防措施:保持事务简短、固定数据访问顺序、合理设置隔离级别等; 总结:现代数据库多采用检测与恢复机制,而开发者需通过规范设计减少死锁风险。 死锁是并发控制的经典问题,理解其原理和应对策略对保障数据库性能至关重要。
2025-11-02 16:30:13
920
原创 数据库事务与并发控制全面解析
摘要:本文系统介绍了数据库事务管理的核心概念。事务是保证数据一致性的逻辑单元,遵循ACID特性(原子性、一致性、隔离性、持久性)。针对并发访问问题,阐述了丢失更新、脏读、不可重复读和幻读等并发异常现象,并详细解析了通过封锁技术(共享锁、排他锁)和两阶段锁协议实现并发控制的机制。同时探讨了四种隔离级别的权衡选择,以及死锁预防和处理方法。最后说明了数据库恢复技术如何通过日志(Undo/Redo)和先写日志协议确保数据安全。这些机制共同构成了数据库事务管理的完整体系。
2025-11-02 15:43:25
649
原创 PyTorch实战:从零搭建CV模型全指南
总结关键知识点后续学习资源推荐(官方文档、开源项目)注:实际撰写时可结合代码截图、损失曲线可视化等内容增强可读性。
2025-11-02 15:40:15
247
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅