- 博客(1216)
- 收藏
- 关注
原创 幂等性(Idempotency)
幂等性指多次执行相同操作对系统状态无额外影响,是分布式系统保安全的关键。生活中的按电梯、查余额具幂等性,而取钱、点外卖则非幂等。在互联网场景中,网络超时、消息重试、服务重调易引发重复请求,若无幂等设计将导致重复扣款、多发订单等错误。可通过唯一ID、数据库唯一索引、状态机控制或Token机制实现幂等,确保同一请求仅生效一次,保障数据一致性与系统稳定。
2026-11-06 07:00:00
204
原创 鸿蒙中代码的性能优化
代码性能优化需关注细节:使用const声明常量,明确number类型初始化为0或0.0,避免滥用ESObject;减少属性查找,将全局变量存为局部变量;数值计算优先使用TypedArray,键值读写选用HashMap;减少export*,改用按需导出;通过lazyimport延迟加载;启用expandImportPath路径展开,精准导入文件,跳过冗余模块,显著提升冷启动性能。注意路径展开可能影响依赖执行顺序,需谨慎评估。
2026-11-06 06:45:00
253
原创 向量数据库中度量类型(Metric Type)
在向量数据库(如Milvus)中,度量类型用于判断向量相似性。常用三类:欧氏距离(L2)衡量绝对数值差异,适用于图像检索;余弦相似度(COSINE)关注方向,忽略长度,是文本搜索与RAG的首选;内积(IP)结合方向与长度,需归一化后使用,速度略快。二进制数据用雅卡德或汉明距离,稀疏向量可用BM25。对RAG和Embedding应用,推荐首选COSINE,安全且通用。
2026-11-05 07:00:00
291
原创 鸿蒙渲染范围控制优化
本文梳理了控制UI渲染范围的四种优化手段:合理使用if与Visibility.None区分组件创建与渲染阶段;懒加载按需加载数据,配合cachedCount预缓存提升滑动流畅度;组件复用减少重复创建销毁开销,适用于长列表、瀑布流等场景;分帧渲染将大负载拆分至多帧,缓解卡顿。强调二者结合使用效果更佳,避免误用导致性能下降。
2026-11-05 06:45:00
397
原创 Python 中的 enumerate()方法
enumerate()是Python内置函数,用于遍历可迭代对象时同时获取索引和值。语法为enumerate(iterable, start=0),支持自定义起始索引(如从1开始)。相比传统range(len())写法,它更简洁优雅。返回的是生成器,可转为列表或字典,常用于快速建立索引映射。底层通过迭代器逐次生成(index, value)元组,适合需要索引与元素同步处理的场景,推荐优先使用。
2026-11-04 07:00:00
195
原创 鸿蒙性能检测工具:开发者选项
HarmonyOS开发者选项为应用调试与优化提供强大支持,涵盖调试、网络、输入、绘图及应用五大类功能。通过启用开发者选项(连续点击软件版本七次),可开启USB/无线调试、DFX稳定性日志、过度绘制检测等高级功能。绘图选项中的布局边界、重绘区域与过度绘制检测是性能优化核心工具,帮助识别渲染瓶颈;输入选项便于触摸与点击区域调试;网络领航员支持多场景网络模拟。合理使用这些功能,可显著提升应用开发效率与体验质量。
2026-11-04 06:45:00
414
原创 PyTorch、CPU、GPU、CUDA
安装PyTorch时,核心概念可类比为:PyTorch是工作系统,CPU如单干的聪明员工,GPU则是千人流水线工人,CUDA是指挥工人的对讲机。只有NVIDIA显卡支持CUDA,因此需根据硬件选择源:有N卡且驱动匹配者,务必从官网下载对应CUDA版本的GPU源,否则将浪费显卡性能;苹果M系列芯片用户可直接安装,自动启用MPS加速;无独立显卡或用AMD显卡者,建议安装CPU版以确保可用。
2026-11-03 07:00:00
476
原创 鸿蒙布局节点优化
页面布局优化核心在于减少冗余节点,提升渲染性能。建议:优先使用轻量级的@Builder替代无状态自定义组件;避免不必要的Stack/Column/Row嵌套,推行扁平化布局;能用组件属性或系统API(如overlay、ColorMetrics)实现的效果,勿堆砌容器;合理选择布局容器,慎用高开销高级组件。通过移除冗余节点、减少自定义组件属性带来的额外开销,结合DevEco Studio布局检查器精准定位,实现高效、低耗的UI开发。
2026-11-03 06:45:00
200
原创 本地嵌入模型的下载和使用(二)
ModelScope(魔搭社区)是阿里巴巴推出的“中国版HuggingFace”,提供稳定高效的AI模型下载与使用体验。可通过snapshot_download本地下载模型,或直接用pipeline自动加载。推荐离线场景下先下载至本地,再通过HuggingFaceEmbeddings加载;若用LangChain,建议手动下载后本地调用以确保兼容性。支持离线模式(设MS_HUB_OFFLINE=1),适合无网环境。
2026-11-02 07:00:00
336
原创 鸿蒙三方库源码调试
引入三方库后断点打不进,需先区分字节码HAR与源码HAR:通过ets目录是否存在abc文件及oh-package.json5中byteCodeHar是否为true判断。字节码HAR调试时,C++代码需确保strip=false生成带调试信息的so,并通过target.source-map映射路径;ArkTS代码可主工程直接调试(依赖一致+sourceMap)或通过attach方式配置remoteUrl与localUrl。源码HAR则优先本地关联源码,使用ChooseSources或ArkTSSourcePa
2026-11-02 06:45:00
680
原创 本地嵌入模型的下载和使用(一)
本文介绍本地下载与使用嵌入模型的完整流程,核心是通过huggingface-cli结合国内镜像下载模型至本地(如BAAI/bge-small-zh-v1.5),并利用SentenceTransformer或LangChain中的HuggingFaceEmbeddings加载本地路径,实现离线运行。关键步骤包括设置镜像、指定本地目录、正确传入文件夹路径,并推荐在无网环境启用TRANSFORMERS_OFFLINE=1。若下载失败,可尝试ModelScope替代。全程摆脱网络依赖,稳定高效。
2026-10-30 07:00:00
321
原创 鸿蒙应用:获取前台 UI 界面的应用包名
通过hdc工具执行hdc shell uitestdumpLayout生成当前页面布局的JSON文件,利用DevEco Studio的设备文件浏览器查看位于/data/local/tmp目录下的layout_xxx.json文件,解析type为root节点的attributes字段,可获取当前前台应用的包名(bundleName)、Ability名称(abilityName)及页面路径(PagePath)。该方法支持自动化测试中精准定位页面与组件,结合脚本可实现前台应用监控。命令需设备已连接并授权。
2026-10-30 06:45:00
515
原创 Python 中的 json 模块
json模块是Python标准库中用于处理JSON数据的核心工具,实现Python对象与JSON字符串间的序列化(dumps/dump)和反序列化(loads/load)。支持字典、列表、字符串、数字等基本类型映射,可自定义格式(如缩进、分隔符)、处理非ASCII字符及不可序列化对象。dumps/loads操作字符串,dump/load操作文件,广泛应用于API交互、配置存储等场景。
2026-10-29 07:00:00
224
原创 DevEco Studio:Debug界面按钮作用
DevEco Studio调试器包含Debugger与Console两个窗格,支持断点调试、单步执行(StepOver/StepInto/StepOut)、智能步入(SmartStepInto)及运行至光标处(RunToCursor)等功能。通过ResumeProgram可继续执行或跳过断点,Stop则终止调试会话。JSVM端口转发支持浏览器DevTools调试。注意:无断点时Frames与Variables信息将消失。该功能自5.1.0版本起支持。
2026-10-29 06:45:00
222
原创 LangChain 的切分器(Text Splitter)
LangChain推荐首选RecursiveCharacterTextSplitter,其递归分隔策略(按段落、换行、空格逐级切分)能有效保持语义完整性,兼顾块大小控制。适用于大多数通用场景。针对特定需求,可选用TokenTextSplitter(控Token数)、Markdown/HTMLHeaderTextSplitter(结构化文档)、from_language(代码文件)或Spacy/NLTK(按句切分)。处理中文时,建议自定义分隔符列表,加入“。!?;,”等中文标点,避免词语断裂。
2026-10-28 07:30:00
483
原创 鸿蒙 ExtensionAbility断点调试
ExtensionAbility 的生命周期函数不像页面那样有明确的入口,调试起来容易找不到北。本文基于官方文档,介绍两种调试 ExtensionAbility 生命周期函数的方式。
2026-10-28 06:45:00
188
原创 鸿蒙 AI自动化测试实现
基于DevEcoStudio的AI生成单元测试能力与Hypium测试框架组合,可实现自动化测试。通过AI自动分析代码逻辑生成覆盖多场景的测试用例,再由Hypium框架执行,形成“AI写、Hypium跑”的闭环。建议先配置Hypium,从核心业务入手,生成后人工复核边界条件,并持续集成至日常测试流程,保障回归质量。
2026-10-27 07:00:00
197
原创 鸿蒙debug调试:一键回退调用栈
反向调试可帮助开发者在单步执行时回退至上一步,避免重新启动调试。通过调用栈右键选择RestartFrame,可退回上一函数调用。但需注意:已执行的副作用操作(如网络请求、文件写入)可能重复;外部状态变化可能导致重执行结果不可复现,使用时应谨慎。
2026-10-27 06:45:00
193
原创 Python 中字符串常用方法
本文系统介绍了Python字符串常用操作方法,涵盖大小写转换(如upper、lower)、查找与判断(如find、startswith)、去除空白(strip)、分割连接(split、join)、格式化(f-string、format)、类型判断(isalpha、isdigit)及编码转换等,结合实例说明其用法与差异,帮助快速掌握字符串处理核心技能。
2026-10-26 07:30:00
294
原创 DevEco Studio断点调试:变量检查
在DevEco Studio中调试时,可通过Debugger窗口的Frame与Variable窗格查看当前调用帧的变量信息,多线程或嵌套调用下需正确选择帧以避免误读。Watches列表可添加关注的变量或表达式,支持复杂条件判断,提升调试效率。从6.0.2 Beta1版本起,支持pixelMap类型变量的可视化预览,点击右侧ViewPixelMap即可直观查看图像内容。合理使用各功能,可快速定位变量异常,提高调试效率。
2026-10-26 06:45:00
305
原创 Python 中的 pathlib 模块
pathlib是 Python 3.4 引入的的路径处理模块。它把文件路径封装成了Path对象,可以用的方式操作文件和目录,逐渐替代传统的os.path。
2026-10-23 07:30:00
565
原创 DevEco Studio断点的使用
DevEco Studio支持五类ArkTS断点:行断点(暂停执行)、日志断点(打印日志不中断)、临时断点(仅生效一次)、函数断点(按函数名触发)和异常断点(捕获异常时暂停)。行断点可通过点击或快捷键设置,支持条件断点;日志断点可输出信息、堆栈或表达式值;临时断点自动删除,适用于一次性调试;函数断点需在6.0.2及以上版本使用;异常断点通过勾选开启,定位错误位置。断点管理可通过右键菜单或快捷键Ctrl+Shift+F8实现。
2026-10-23 06:45:00
359
原创 Python 中的 os.path 模块
os.path是Python标准库中处理文件路径的核心模块,支持跨平台路径操作。它提供路径拼接(join)、拆分(split、dirname、basename)、判断(exists、isfile、isdir)、查询(getsize、getmtime)及规范化(abspath、normpath)等功能,自动适配不同系统的路径分隔符。还支持路径展开(expanduser、expandvars)与比较(samefile、commonpath),确保代码在Windows、Linux和macOS间兼容可靠。
2026-10-22 07:30:00
316
原创 HAP包安装到其他手机方式
将HAP包安装到其他手机测试,需确保签名匹配。推荐四种方式:1)使用hdcinstall命令,需配置手动调试签名并打包HAP/HSP(API 22+可直接打包APP);2)通过DevEcoTesting可视化安装,适合非技术用户;3)指定设备发布,支持团队内分发(最多100台授权设备),适合长期测试;4)安装至模拟器。临时测试选hdcinstall,团队协作选指定设备发布,非技术同事用DevEcoTesting最便捷。注意调试签名与发布签名不可混用。
2026-10-22 06:45:00
581
原创 Python 装饰器:@dataclass(二)
field()可精细控制数据类字段行为,支持默认值、初始化、比较、哈希、元数据等参数。__post_init__用于初始化后处理,frozen=True实现不可变性,order=True支持排序,继承时需注意字段顺序与默认值规则。相比Pydantic和attrs,@dataclass轻量高效,适合内部数据结构,而后者更适合复杂校验与序列化场景。
2026-10-21 07:30:00
370
原创 鸿蒙应用:区分真机和模拟器
在调试应用时,可通过@ohos.deviceInfo模块的productModel属性判断设备类型:若值为“emulator”,则为模拟器;否则为真机。该方法简单有效,满足基本区分需求。如需更详细信息,可结合brand、model等属性进一步判断。
2026-10-21 06:45:00
493
原创 Python 装饰器:@dataclass(一)
@dataclass是Python 3.7引入的装饰器,可自动生成类的__init__、__repr__、__eq__等样板代码,简化数据类定义。支持类型注解与默认值,字段需有类型,可变默认值须用field(default_factory=...)避免共享问题。可通过参数控制是否生成方法,如frozen=True实现不可变实例,order=True支持排序比较,大幅提升开发效率与代码可读性。
2026-10-20 07:30:00
449
原创 鸿蒙 Attach Debugger调试(二)
AttachDebugger允许在应用运行后附加调试器,无需从头启动,适用于已部署或正在运行的进程。与Debug不同,它不强制从启动开始调试,核心优势在于灵活性和效率。前提条件包括本地代码与设备版本一致,并生成sourceMap。支持debug签名应用,部分release签名应用(含ALLOW_DEBUG权限)也可调试。操作步骤包括选择设备、进程(可勾选Show all processes)、配置调试参数并启动。注意bundleName不匹配时需手动显示所有进程,且调试类型不可更改,需在配置中设置。
2026-10-20 06:45:00
622
原创 Python 中subprocess 模块:执行外部命令
subprocess是 Python 用来的标准库,可以执行外部命令、调用其他程序,并获取它们的输入输出。
2026-10-19 06:45:00
325
原创 DevEco Studio Debug调试(一)
在调试过程中,可通过点击代码行号左侧添加断点,实现程序中断。启动调试需选择设备与模块配置,通过工具栏或Run菜单中的Debug选项启动。调试时,Debugger面板展示线程、调用栈(Frames)、变量(含Local、Closure等作用域)及表达式求值功能,支持实时查看变量值与执行表达式,配合Console输出,实现高效代码定位与问题排查。
2026-10-19 06:45:00
341
原创 MinerU解析本地文件(二)
文件较大(≤ 200MB,≤ 200 页)文件较小(≤ 10MB,≤ 20 页)支持批量上传(单次 ≤ 50 个)仅输出 Markdown。快速解析,无需高精度。无需登录,IP 限频。
2026-10-18 06:45:00
735
原创 MinerU :面向 Agent 的文档解析工具(一)
即可开箱即用:小模型用 ONNX CPU 推理,VLM 用 llama.cpp Vulkan 模式,在绝大多数设备上兼容性良好。,核心作用是把各种格式的文档(PDF、图片、Office 文档等)解析成。一个命令行文档阅读器,供 Agent 调用。MinerU 提供四档解析质量,控制。不会作为默认的最终阅读质量。不会自动选择,需要显式指定。“聊天式文档问答”应用。建议在虚拟环境中安装。
2026-10-16 07:30:00
252
原创 DevEco Studio:模块de加载/卸载
在大工程开发过程中,模块较多时会导致内存占用高和代码索引较慢,影响开发效率。从26.0.0 版本开始,DevEco Studio 提供加载/卸载模块(Load/Unload Modules)的功能。价值可以按照需求加载模块从而降低对内存资源占用和提升代码索引效率。
2026-10-16 06:45:00
391
原创 Python 中的魔法函数
魔法函数(也叫 dunder methods,即oublescore methods)是 Python 中以__xxx__形式命名的方法。它们,而是在特定操作发生时由 Python 自动触发,让自定义对象能像内置类型一样工作。
2026-10-14 07:30:00
545
原创 SQLAlchemy:异步、连接池 (四)
传统 SQLAlchemy 是同步的,在异步框架(如 FastAPI)中会阻塞事件循环。异步 SQLAlchemy 可以在。连接池管理数据库连接,避免每次请求都新建连接。
2026-10-13 06:45:00
197
原创 DevEco Studio:创建新工程
进行应用开发,需要先完成创建 HarmonyOS 工程,然后根据 API 版本不同,修改工程级。当开始开发一个应用/元服务时,首先需要根据工程创建向导创建一个新的工程,,在创建新工程前,请提前了解各模板的相关信息,具体请参考工程模板介绍。:在运行 DevEco Studio 工程时,建议。创建 OpenHarmony 应用,且应用需要在。在工程配置页面,需要根据向导配置工程的基本信息。工程模板外,其余工程模板新增。将 runtimeOS。将 runtimeOS。,等待工程创建完成。
2026-10-13 06:45:00
231
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅