- 博客(1255)
- 资源 (78)
- 收藏
- 关注
原创 单元测试原则之——不要模拟值对象 (1)
假设我们有一个服务类 OrderService,它接收一个 Order 对象(值对象)并计算订单的总价。:模拟有行为的依赖(如服务、仓库、外部 API 客户端),而不是值对象。:值对象的逻辑简单,直接实例化即可,模拟可能掩盖潜在的错误。● 模拟数据库访问对象(如 UserRepository)。:模拟值对象需要额外的代码,增加了测试的复杂性。直接使用值对象的实际实例,避免了模拟的复杂性。● 值对象本身没有行为,直接实例化即可。:直接实例化值对象,而不是模拟它们。:值对象没有行为,直接实例化即可。
2025-04-02 23:12:38
117
原创 单元测试原则之——不要模拟不属于你的类型
这是因为外部库或框架的类型(如第三方依赖)可能会在未来的版本中发生变化,而你的模拟可能无法反映这些变化,从而导致测试失效。以下是一个基于Java Mockito 的示例,展示如何避免模拟不属于你的类型,以及如何使用抽象或接口来隔离外部依赖。:通过定义接口或抽象层,将外部依赖的实现细节隐藏在适配器类中,测试代码只依赖于接口。:直接模拟第三方库或框架的类型会增加测试与实现的耦合,降低测试的可维护性。● 模拟第三方类型增加了测试与实现的耦合,降低了测试的可维护性。:模拟接口或抽象层,而不是具体的第三方类型。
2025-04-02 22:58:00
18
原创 单元测试中的测试替身(基于Java的示例)
在单元测试中听到比较多的词就是Mock, 即模拟,也就是模拟一个虚拟的对象替代原来的对象,以便单元测试可以专注在所测试的单元。但其实单元测试中的模拟是有多种类型的,这些虚拟和模拟统称是测试替身。测试替身(Test Doubles)用于,使测试专注于目标单元的逻辑。
2025-03-31 22:53:41
233
原创 说清楚单元测试
单元测试是软件开发中一种重要的测试方法,其核心目的是验证代码的最小可执行单元(通常是函数、方法或类)的行为是否符合预期。这些示例展示了如何在不同编程语言中编写和运行单元测试。每个示例都测试了一个简单的加法函数。首先,确保已经安装了 Jest。Python (使用 unittest)JavaScript (使用 Jest)借由本篇,来全面看一看单元测试。Java (使用 JUnit).NET (使用 NUnit)然后,创建一个测试文件,例如。
2025-03-31 22:18:03
194
原创 Python生成整数序列之 range()函数
range()是 Python 中生成整数序列的核心工具,高效且灵活,广泛用于循环控制、索引遍历、数字序列生成等场景。掌握它能让代码更简洁、更高效!
2025-03-27 22:40:42
442
原创 Hugging Face镜像——再也不用烦恼无法从Hugging Face下载模型和数据集了
在AI 开发的时候很多时候会从Hugging Face下载模型和数据集,但是直接访问会提升速度慢或者无法下载,解决方法就是使用Hugging Face 的中国镜像。镜像站地址为:。这个镜像由国内开发者维护,支持模型、数据集、库文件的加速下载。datasets首先安装依赖,然后设置环境变量。
2025-03-26 22:40:23
374
原创 在本地Windows机器加载大模型并生成内容
本篇演示在本地机器下载和加载大模型并获取AI产生的内容。简单起见,使用的大模型是Qwen2.5-0.5B-Instruct,整个模型的所有文件不到1G。Qwen2.5-0.5B-Instruct 是阿里巴巴云 QWen 团队基于Transformer 架构开发的轻量级指令调优语言模型,专为资源有限场景设计。环境准备。
2025-03-25 21:58:09
682
原创 使用LLM 构建MCP服务端和客户端
MCP Inspector 工具测试服务器。包括README 和相关文档。它需要与哪些外部系统交互。连接到其他的MCP客户端。服务器将暴露哪些资源。
2025-03-23 21:51:17
298
原创 一篇道尽MCP核心概念
MCP让实现自定义传输变得简单。任何传输实现只需要符合Transport接口即可:可以实现自定义传输用于:自定义网络协议专用通信通道与现有系统集成性能优化TypeScriptonclose?onerror?onmessage?
2025-03-23 21:48:29
918
原创 TensorFlow快速介绍
TensorFlow 是由 Google 开发的开源机器学习框架,广泛用于深度学习、数值计算和数据处理。其核心基于(节点表示操作,边表示多维数据数组“张量”),支持灵活部署(CPU/GPU/TPU、移动设备、浏览器等)。使用pip安装过程界面如下:安装完成的界面如下:tf.print()
2025-03-22 20:34:18
999
原创 CPU架构和微架构
Nehalem微架构采用可扩展的架构,主要是每个处理器单元均采用了Building Block模组化设计,组件包括有:核心数量、SMT功能、L3缓存容量、QPI连接数量、IMC数量、内存类型、内存通道数量、整合GPU、?把原来主板上的VRM模块整合到了CPU内部,FIVR调压模块的加入让主板的供电变得简单,并且可以对CPU内部的电压进行更为精确的控制,提高供电效率。CPU架构是指处理器的整体设计框架,定义了处理器的指令集、寄存器、内存管理方式等。它是处理器设计的顶层规范,决定了软件如何与硬件交互。
2025-03-22 20:33:04
933
原创 CUDA与cuDNN 的介绍
CUDA(Compute Unified Device Architecture)是NVIDIA推出的并行计算平台和编程模型,允许开发者利用GPU的强大计算能力进行通用计算。
2025-03-20 22:27:05
673
原创 大模型之蒸馏模型
蒸馏模型(Distilled Model)是一种通过知识蒸馏(Knowledge Distillation)技术训练得到的轻量级模型,其核心思想是将一个复杂的大模型(称为教师模型)的知识“迁移”到一个更小、更高效的模型(称为学生模型)中。这种方法可以在保持较高性能的同时,显著减少模型的参数量和计算资源需求。核心原理教师模型(Teacher Model)教师模型通常是一个参数量大、性能强的复杂模型(例如深度神经网络),但计算成本高,难以部署在资源受限的环境(如移动端)。
2025-03-20 21:26:26
755
原创 MCP(Model Context Protocol)的介绍与开发初体验
Model Context Protocol, 模型上下文协议,是一种开放协议,用于标准化应用程序向大型语言模型(LLM)提供上下文的方式。可以将 MCP 视为 AI 应用的 USB-C 接口:正如 USB-C 为设备连接各种外设和配件提供了标准化方式,MCP 也为 AI 模型连接不同数据源和工具提供了统一标准。
2025-03-19 23:04:10
1262
原创 自动化测试工具-Playwright介绍和快速实例
PlayWright 自动化测试工具:支持在Windows、Linux和macOS上运行测试,无论是本地环境、CI/CD流水线,还是无头/有头模式。:捕获测试执行全量信息(包括屏幕录像、实时DOM快照、操作回放、测试源码等),深度复盘失败原因。运行之后会打开一个在线的报表,因为只安装了Chrome 的内核,所以其他4个测试是失败的。:遵循现代浏览器多进程架构,测试在独立进程中运行,彻底突破进程内测试框架的限制。
2025-03-19 23:02:51
87
原创 自动化测试工具-Playwright介绍和快速实例
PlayWright 自动化测试工具:支持在Windows、Linux和macOS上运行测试,无论是本地环境、CI/CD流水线,还是无头/有头模式。:捕获测试执行全量信息(包括屏幕录像、实时DOM快照、操作回放、测试源码等),深度复盘失败原因。运行之后会打开一个在线的报表,因为只安装了Chrome 的内核,所以其他4个测试是失败的。:遵循现代浏览器多进程架构,测试在独立进程中运行,彻底突破进程内测试框架的限制。
2025-03-18 22:31:57
436
原创 Spring Cloud Config 快速介绍与实例
它适用于微服务架构,能够将各个服务的配置集中存储在服务端(如 Git 仓库),客户端按需动态获取配置,解决了配置分散、环境切换复杂等问题。到此, Config Server 和配置文件的Git仓库就已经搭建完成,接下来可以启动Config Server 进行验证。,因为my-client-app-qas.yml没有配置app.message属性,所以就看不到这个属性及对应值。, 可以看到 app.message被正确的加载了。是一个用于分布式系统的配置管理工具,提供。服务启动之后 ,在浏览器输入。
2025-03-17 22:46:43
400
原创 OpenRewrite配方之import语句的顺序——org.openrewrite.java.OrderImports
是工具库中的一个重要规则(Recipe),专为 Java 项目设计,用于自动化调整import语句的顺序,使其符合预定义的代码规范。从而提高代码的一致性和可读性。
2025-03-13 21:53:50
66
原创 Qt常见面试题合集
信号槽类似于软件设计模式中的观察者模式,(观察者模式是一种对象行为模式。它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。)被观察者发出的信号(signal),观察者收到自己注册监听signal,就通过槽(slot)关联的槽函数function实现动作操作。
2025-03-13 21:28:29
1086
原创 LanceDB快速入门之基本操作与API一览
LanceDB可以以多种方式运行可以嵌入到现有后端(如您的 Django、Flask、Node.js 或 FastAPI 应用程序)中直接从如 Jupyter 笔记本等客户端应用程序中用于分析工作负载部署为远程无服务器数据库。
2025-03-12 23:25:27
737
原创 在Spring Boot项目中如何实现获取FTP远端目录结构
Windows 如何开启和使用FTP服务Java版本 :JDK 21Spring Boot 版本: 3.4.3Spring Integration FTP 版本: 6.4.2开发IDE:VS Code。
2025-03-11 22:53:49
158
原创 Windows 如何开启和使用FTP服务
在Windows 系统开启FTP的服务方式有很多种,最快速的就是使用Windows自身的FTP服务了。
2025-03-08 20:16:10
1154
原创 Node JS 调用模型Xenova_all-MiniLM-L6-v2实战
Transformers 是由 Hugging Face 团队开发的开源 库,专注于提供基于 Transformer 架构 的预训练模型和工具。它简化了自然语言处理(NLP)任务的实现流程,支持文本生成、翻译、分类、问答等场景,并兼容 PyTorch、TensorFlow 等深度学习框架。Transformers 有Python 和 NodeJS 两个版本。如果Hugging Face无法访问Python 版本可以使用ModelScope提供的库NodeJS。
2025-03-05 23:32:34
857
原创 一篇吃透模型:all-MiniLM-L6-v2
MiniLM 是什么?MiniLM 是微软研究院开发的一种轻量级的语言模型,旨在以较小的参数量和计算成本实现与大型语言模型(如 BERT)相当的性能。它是基于 Transformer 架构的预训练模型,通过深度自注意力蒸馏(Deep Self-Attention Distillation)等技术进行压缩和优化,使其能够在资源受限的环境下高效运行。主要特点轻量级:MiniLM 显著减少了模型的参数量和计算成本,使其能够在移动设备、嵌入式系统等资源受限的环境下运行。高性能。
2025-03-03 23:10:23
1207
原创 RAG(检索增强生成)快速入门
Karate 作为英文单词翻译过来的意思是:空手道,不过这里的Karate 和日本无关,和李小龙也没有关系, 而是一个API的测试框架。Karate框架遵循Cucumber风格的编程方式,这种方式遵循行为驱动开发(BDD)的方法。非编程人员也能轻松理解其语法。这个框架是唯一一个将API自动化测试和性能测试结合成一个独立工具的API测试工具。Karate是一个BDD(行为驱动开发)测试框架,而不是TDD(测试驱动开发)。它被设计为对非程序员友好。
2025-02-26 22:18:41
403
原创 一个不错的API测试框架——Karate
Karate 作为英文单词翻译过来的意思是:空手道,不过这里的Karate 和日本无关,和李小龙也没有关系, 而是一个API的测试框架。Karate框架遵循Cucumber风格的编程方式,这种方式遵循行为驱动开发(BDD)的方法。非编程人员也能轻松理解其语法。这个框架是唯一一个将API自动化测试和性能测试结合成一个独立工具的API测试工具。Karate是一个BDD(行为驱动开发)测试框架,而不是TDD(测试驱动开发)。它被设计为对非程序员友好。
2025-02-24 22:40:07
121
原创 交互编程工具之——Jupyter
简单来说, Jupyter Notebook 的作用就是你不需要在IDE编写代码和运行, 而可以直接在网页上编写代码并运行, 这个网页除了代码之外,还可以记录一些其他的文字,类似于一个包含文字和代码的笔记,但是这些代码是可以直接运行的。),允许用户在一个基于浏览器的界面中编写代码、运行代码、可视化结果,并添加富文本(如 Markdown)进行说明,形成可重复、可分享的文档。Jupyter 是数据科学家的“瑞士军刀”,将代码、文档和可视化整合在一个界面中,极大提升工作效率和可复现性!安装需要等待一段时间,
2025-02-20 23:17:26
916
原创 AI向量数据库之LanceDB快速介绍
LanceDB 是一个开源的向量搜索数据库,具备持久化存储功能,极大地简化了嵌入向量的检索、过滤和管理。安装完成后,你可以在项目中引入 LanceDB 并使用其 API 进行向量存储、查询和管理。第二个参数是一个数组,表示要插入的初始数据。LanceDB 的核心是用 Rust 🦀 编写的,并基于 Lance 构建。如果路径不存在,LanceDB 会自动创建。变量中,通常是一个包含相似向量数据的数组。变量中,通常是一个符合条件的数据数组。
2025-02-13 23:03:55
1865
7
原创 DeepSeek大模型系列
如果需要使用DeepSeek 做一些批量或进阶的事情,则需要使用调用API的方式。这里还需要加上最近发布的DeepSeek-R1 模型(2025/01/20 发布)以上两种方式注册账号就可以,使用是免费的。
2025-02-03 13:35:30
2540
原创 AI主流大模型介绍和API价格比较
最佳性价比次佳性价比预算有限: GPT-3.5 Turbo 和 Gemini Pro高性能需求: GPT-4o 和 GPT-4 Turbo顶级性能: Claude 3 Opus 和 GPT-4开源模型(如 LLaMA 2 和 Mistral)在价格上具有绝对优势,但需要自行部署和维护,适合有技术能力的团队。
2025-02-03 10:21:50
2377
原创 AI开发学习之——PyTorch框架
PyTorch (Python torch)是由 Facebook AI 研究团队开发的开源机器学习库,广泛应用于深度学习研究和生产。它以动态计算图和易用性著称,支持 GPU 加速计算,并提供丰富的工具和模块。创建需要梯度的张量x。定义函数y = x * 2和。通过计算z对x的梯度。根据链式法则,梯度计算结果为。PyTorch 的自动微分机制使得梯度计算变得非常简单,尤其是在深度学习模型中,这种机制可以自动计算损失函数对模型参数的梯度,从而支持梯度下降等优化算法。torch。
2025-02-02 20:34:42
1437
原创 AI模型平台之——ModelScope(魔搭)
是指对模型进行存储、版本管理和相关操作的模型服务,用户上传和共享的模型将存储至模型库中,同时用户也可在Model hub中创建属于自己的模型存储库,并沿用平台提供的模型库管理功能进行模型管理。可以创建和管理自己的模型库,利用界面或开发环境来便捷地上传、下载相关模型文件,并从 Model Hub中获取有用的模型和数据集元数据。完成创建后,平台将为分配一个存储地址,可通过页面或者git的方式将文件添加至该模型库中,也可通过页面上传相关的模型文件。,旨在为开发者、研究者和企业提供丰富的预训练模型和工具。
2025-02-02 11:25:42
4780
原创 AI基本概念之——张量(Tensor)
张量(Tensor)是数学和物理学中的一个重要概念,广泛应用于线性代数、微分几何、物理学和机器学习等领域。简单来说,张量是多维数组的推广,能够表示标量、向量、矩阵以及更高维的数据结构。张量作为一种强大的数学工具,广泛应用于多个领域。它不仅能够高效地表示和处理高维数据,还能够描述复杂的物理现象和几何结构。在深度学习中,张量更是模型构建和优化的基础,推动了人工智能技术的快速发展。
2025-02-01 20:15:18
875
原创 AI开发之 ——Anaconda 介绍
Anaconda 是数据科学和 AI 领域的工具,通过集成常用库和工具,简化了环境管理和包安装,特别适合初学者和需要快速上手的开发者。这里下载Windows 的安装版本,下载的文件名为: Anaconda3-2024.10-1-Windows-x86_64.exe。Anaconda的官方介绍是: 人工智能的操作系统,用于获取、构建和部署数据科学与人工智能项目,一句话:Anaconda 是Python 库和环境便捷管理的平台。安装完成的启动的画面如下,提示注册和登录。直接点击运行安装程序,按提示完成安装。
2025-02-01 14:02:55
983
原创 Python 环境隔离和实现方法
工具适用场景优点缺点venv轻量级项目Python 内置,无需安装功能有限,仅支持 Python 包virtualenv兼容 Python 2 和 3 的项目功能丰富,支持 Python 2需要额外安装conda数据科学、机器学习项目支持 Python 和非 Python 依赖需要安装 Anaconda 或 Minicondapipenv依赖管理复杂的项目自动管理虚拟环境和依赖需要额外安装poetry现代化项目,需要打包和依赖管理支持依赖管理和打包需要额外安装。
2025-02-01 11:01:34
1273
1
原创 DeepSeek 使用初体验
DeepSeek 大模型在蛇年前夕突然大火,在蛇年春节持续发酵,随时随地,各个年龄段都在讨论这个话题。Web站点,手机App的下载和使用也出现暴增,DeepSeek 一度关闭了注册功能,甚至国外的很多黑客都来攻击DeepSeek 的网站。从来这么敬仰和自豪的来试用一个模型,曾经 ChatGPT横空出世的时候,因为需要国外的手机才能注册,特定买了一个虚拟号才能进行试用,虽然后来百度的文心一言,阿里的同义千问出现,但是相比ChatGPT,还是略逊一筹。
2025-01-31 16:46:20
4671
2
原创 获取VS Code扩展指定版本的安装档(.vsix)的方式
是 Visual Studio Code(VS Code)官方扩展市场的 API 接口地址。该接口的主要作用是为开发者提供一个程序化的方式来查询 VS Code 扩展市场的信息,包括扩展的版本历史、详细信息、下载链接等。通过API设定By ID的方式查找扩展,在返回的JSON中的 results > extensions > versions 下面找到需要的版本号,最上面的就是最新版。
2025-01-16 23:11:58
2859
5
Spring Cloud Config的Server 和Client示例项目
2025-03-17
Anaconda Windows安装版
2025-02-01
API 测试工具 - Karate
2025-01-02
Jenkins的HTTP Request插件1.14 版本
2024-12-03
JMeter Linux + Window
2024-10-21
Postman windows 64 安装版
2024-08-13
Spring Boot 3 极速搭建OAuth2认证框架示例项目
2024-08-13
JDepend4Eclipse 解压安装版
2024-08-10
Eclipse附带如下插件: 1. Jdepend 2. Java Dependency Viewer 直接解压就可以使用
2024-08-08
Java Dependency Viewer 的Eclipse 插件离线安装包
2024-08-07
支持 ATDD (Acceptance Test Driven Development) 的工具
2024-01-15
截取动态屏幕截图的工具
2023-11-23
Windows 最新版本的allure命令行工具
2023-11-21
Jenkins 2.414.1长期支持版本安装环境
2023-09-18
批量导入maven本地库目录到Nexus私有服务器的脚本
2023-06-28
基于JSP的Java Web项目的CSRF防御示例
2023-01-07
Webpack 快速介绍及入门示例的配套示例
2022-06-24
OpenSSL.rar
2022-01-05
spket集合.rar
2021-06-04
jenkins2.277.4 及解决插件安装相关工具包.rar
2021-05-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人