当前位置: 首页 > news >正文

HarmonyOS应用开发入门宝典——项目驱动学习法实践

学习一项新技能,最好也是最快的方法就是动手实战。学习鸿蒙也一样,给自己定一个小目标,直接找项目练,这样进步是最快的。记住,最好的学习时机永远是现在,最好的老师永远是你正在开发的项目。

一、为什么选择项目驱动学习法?

在技术学习的领域中,“纸上得来终觉浅,绝知此事要躬行”是永恒的真理。对于HarmonyOS应用开发而言,传统的知识点堆砌式学习往往会陷入“学完就忘”“知其然不知其所以然”的困境。而项目驱动学习法(Project-Based Learning, PBL)则通过“以终为始”的思路,让开发者在实际项目的目标牵引下主动探索知识,将碎片化的技能点串联成完整的知识体系。

(一)传统学习模式的局限性

Android开发经验表明,单纯记忆API文档或框架概念很难真正掌握开发技能。例如,初学者可能了解Text组件的基本用法,但面对“如何设计一个自适应不同屏幕尺寸的标题栏”这类实际问题时却无从下手。这种“知识与应用脱节”的现象,本质是缺乏真实场景的驱动——开发者无法感知知识点在实际项目中的价值和关联。

(二)HarmonyOS开发的特殊性

HarmonyOS作为面向全场景的分布式操作系统,其开发体系与传统移动端开发存在显著差异:

  • 跨设备特性:需要同时适配手机、平板、智能穿戴等多端设备,对界面响应式设计和功能模块化提出更高要求;
  • ArkUI框架:采用声明式UI语法(如@Componentbuild()方法),与Android的命令式UI(通过代码动态操作View)思维截然不同;
  • 分布式能力:涉及设备发现、数据同步等复杂场景,需结合具体项目理解“一次开发,多端部署”的实现逻辑。

(三)项目驱动的核心优势

玩鸿蒙App客户端开发项目正是针对这些挑战设计的实战载体。通过从零构建一个社区类应用,开发者将经历以下关键能力提升:

  1. 全流程闭环:覆盖需求分析、架构设计、编码实现、调试优化、打包发布等完整开发周期;
  2. 知识体系化:将网络请求、UI设计、状态管理、路由跳转等独立知识点整合到具体功能模块中;
  3. 问题解决能力:在开发中遇到接口调试失败、布局错位、性能瓶颈等实际问题,倒逼主动查阅文档、分析日志、优化代码。

二、玩鸿蒙App项目解析:从需求到架构的落地

(一)项目定位与核心功能

玩鸿蒙App定位于“鸿蒙开发者社区交流平台”,旨在模拟真实互联网产品的核心场景。其功能架构可拆解为三大模块:

  1. 内容浏览
    • 首页轮播图展示热门文章(对应Swiper组件开发);
    • 列表页呈现最新文章列表,支持上拉加载更多(涉及List组件、分页逻辑与网络请求);
    • 文章详情页展示完整内容及作者信息(需要解析富文本、实现页面跳转传参)。
  2. 交互设计
    • 点击图片或标题跳转至详情页(路由管理NavPathStack的应用);
    • 加载状态反馈(全局loading提示、触底加载提示)。
  3. 技术栈选型
    • 前端框架:ArkUI + eTS语言(HarmonyOS推荐的声明式UI方案);
    • 网络请求:@nutpi/axios三方库(简化HTTP操作,兼容Web开发习惯);
    • 状态管理:组件内使用@State实现响应式,跨组件通过路由参数传递数据。

(二)架构设计思维:从“功能堆砌”到“模块化抽象”

初学者常犯的错误是直接进入编码阶段,导致代码耦合度高、难以维护。玩鸿蒙App项目采用分层设计理念:

  1. 接口层(api):将网络请求封装为独立模块(如nutpiApi.ts),隔离后端接口细节,方便后续扩展或切换数据源;
    // 示例:封装文章列表接口
    export const getTopicList = (page: number): HttpPromise<TopicListResp> => axiosClient.get({ url: '/topiclist', params: { page } });
    
  2. 组件层(components):拆分可复用的UI单元(如HotTopicItem轮播项、TopicListItem列表项),避免重复代码;
  3. 页面层(pages):负责页面逻辑编排,如首页Home组件调用接口获取数据、管理组件状态;
  4. 工具层(utils):存放通用工具函数(如日志打印Log、Toast提示promptAction),提升代码复用性。

(三)需求驱动的开发节奏:先实现“可用”,再追求“完美”

项目驱动学习强调“快速迭代”而非“一步到位”。以首页开发为例:

  1. 第一阶段:核心功能落地
    • 优先实现轮播图静态展示(使用固定数据填充swiperData)、文章列表基础布局(不处理分页逻辑);
    • 目标:验证ArkUI组件用法(如SwiperListColumn的嵌套结构),确保页面结构正确渲染。
  2. 第二阶段:交互逻辑完善
    • 添加网络请求获取真实数据(调用getHotTopicsgetTopicList接口);
    • 实现触底加载更多功能(通过onReachEnd事件监听、curPage分页参数管理);
    • 目标:掌握异步请求处理、状态更新(@State响应式机制)、数据绑定(ForEach循环渲染)。
  3. 第三阶段:体验优化
    • 增加加载状态提示(showLoadingDialog)、错误处理(responseInterceptor拦截错误码);
    • 优化图片加载性能(使用CDN加速路径、ImageFit.Cover适配不同尺寸);
    • 目标:理解用户体验设计原则,学习异常处理与性能调优技巧。

三、鸿蒙开发与Android的差异化实践

(一)UI开发:声明式思维的转变

ArkUI的声明式语法是鸿蒙开发的核心特色之一,与Android的命令式UI形成鲜明对比:

场景Android(命令式)HarmonyOS(声明式)
按钮点击事件button.setOnClickListener(new OnClickListener() { ... })Button('点击我').onClick(() => { ... })
条件渲染通过if-else动态添加或移除View使用If组件根据状态值声明式控制渲染
列表渲染RecyclerView配合Adapter手动绑定数据List+ForEach直接映射数据源

这种转变要求开发者从“操作UI元素”转向“描述UI状态”。例如,在玩鸿蒙App的首页中,列表项的显示完全由topicList数组的内容决定:当数据更新时,ArkUI框架会自动重新渲染列表,无需手动调用notifyDataSetChanged()

(二)网络请求:三方库的选择与封装

鸿蒙原生提供ohos.net.http模块实现网络请求,但该接口较为底层,需要手动处理连接管理、数据解析等细节。对于中小型项目,引入@nutpi/axios这类三方库可显著提升开发效率:

  • 统一请求格式:通过配置baseURL和请求拦截器,自动为所有接口添加公共前缀和请求头(如Content-Type);
  • 错误处理标准化:利用响应拦截器统一处理HTTP状态码(如404资源不存在、500服务器错误),避免在每个接口调用处重复编写错误处理逻辑;
  • 代码示例
    // 响应拦截器处理业务错误码
    responseInterceptor: (response) => {if (response.status === 200 && response.data.errorCode !== 0) {showToast(response.data.errorMsg); // 统一错误提示return Promise.reject(response);}return Promise.resolve(response);
    }
    

(三)跨设备适配:弹性布局与资源管理

HarmonyOS的分布式特性要求应用具备良好的跨设备适配能力。玩鸿蒙App通过以下策略应对屏幕尺寸差异:

  1. 弹性布局
    • 使用百分比单位(如width:'100%')和layoutWeight权重分配实现流式布局;
    • Stack组件通过zIndex控制层级,Column/Row通过space属性统一元素间距。
  2. 图片适配
    • 轮播图Image组件设置objectFit: ImageFit.Cover,确保图片在不同宽高比屏幕上完整显示;
    • 列表项头像使用固定尺寸(width:100/height:85),搭配borderRadius实现圆角效果,避免拉伸变形。

四、项目驱动学习的实施路径与避坑指南

(一)四步学习法:从模仿到创新

  1. 代码复现:跟随教程完成玩鸿蒙App的开发,理解每一行代码的作用(如@Component修饰组件、@State标记响应式状态);
  2. 需求修改:尝试调整UI样式(如更换主题色、修改列表间距)、新增简单功能(如在文章详情页添加“收藏”按钮);
  3. 模块扩展:独立开发新模块(如用户登录功能、评论系统),实践路由传参、本地存储(@ohos.data.storage)等进阶技能;
  4. 项目重构:使用鸿蒙Stage模型(ArkUI X)重构项目,对比不同开发模式的差异,深入理解鸿蒙框架的演进方向。

(二)常见问题与解决方案

  1. 接口调试失败
    • 现象:调用getTopicList接口返回404错误;
    • 排查步骤
      • 检查BaseURL是否正确(如是否遗漏http://协议头或端口号);
      • 使用Postman工具直接请求接口,验证后端服务是否正常;
      • 查看请求拦截器日志,确认参数格式是否符合接口要求(如page是否为数字类型)。
  2. UI布局错乱
    • 现象:列表项在平板设备上显示不全;
    • 解决方案
      • RowColumn组件中添加flexGrow: 1,使其占满剩余空间;
      • 使用MediaQuery获取设备信息,针对不同屏幕尺寸应用不同布局(如大屏设备显示双列列表)。
  3. 状态更新不及时
    • 现象:数据加载完成后,页面未自动刷新;
    • 原因分析:未正确使用@State@Link标记状态变量;
    • 修正方法:确保数据变更发生在组件的build方法之外,或通过this.setData()触发重新渲染。

(三)学习资源推荐

  • 官方文档:HarmonyOS开发者联盟提供从入门到高级的完整教程,包含组件参考、API文档和示例代码;
  • 实战社区:华为开发者论坛(DevEco Studio板块)可获取最新开发技巧和问题解决方案;
  • 开源项目:Gitee上搜索“HarmonyOS实战项目”,参考如“OpenHarmony智能家居应用”等真实项目的架构设计。

我的“爱影家app”也是个不错的练手的开源项目,带app源码和后台影视接口源码。详见:
https://blog.csdn.net/yyz_1987/article/details/148047176

五、结语:在实践中构建属于自己的技术坐标系

项目驱动学习的本质,是通过“做中学”在开发者大脑中构建“问题-知识-解决方案”的映射网络。玩鸿蒙App项目如同一块“敲门砖”,不仅能帮助初学者掌握HarmonyOS开发的核心技能,更重要的是培养“用技术解决实际问题”的思维习惯。

当你能够独立完成从接口调试到界面优化的全流程开发时,你收获的将不仅仅是几页代码,而是对软件开发本质的深刻理解——技术从来不是孤立的知识点,而是服务于具体场景的解决方案集合。正如鸿蒙生态的愿景“万物互联”,真正的开发者能力也应是一个有机互联的体系,而项目驱动学习法,正是构建这个体系的高效路径。

行动建议:立即下载DevEco Studio,创建第一个HarmonyOS项目,从修改一个按钮的颜色开始,开启属于你的鸿蒙开发之旅。

记住,最好的学习时机永远是现在,最好的老师永远是你正在开发的项目。

相关文章:

HarmonyOS应用开发入门宝典——项目驱动学习法实践

学习一项新技能&#xff0c;最好也是最快的方法就是动手实战。学习鸿蒙也一样&#xff0c;给自己定一个小目标&#xff0c;直接找项目练&#xff0c;这样进步是最快的。记住&#xff0c;最好的学习时机永远是现在&#xff0c;最好的老师永远是你正在开发的项目。 一、为什么选择…...

Python类的力量:第六篇:设计模式——Python面向对象编程的“架构蓝图”

文章目录 前言&#xff1a;从“代码堆砌”到“模式复用”的思维跃迁 一、创建型模式&#xff1a;对象创建的“智能工厂”1. 单例模式&#xff08;Singleton&#xff09;&#xff1a;全局唯一的“资源管家”2. 工厂模式&#xff08;Factory&#xff09;&#xff1a;对象创建的“…...

第50天-使用Python+Qt+DeepSeek开发AI运势测算

1. 环境准备 bash 复制 下载 pip install pyside6 requests python-dotenv 2. 获取DeepSeek API密钥 访问DeepSeek官网注册账号 进入控制台创建API密钥 在项目根目录创建.env文件: env 复制 下载 DEEPSEEK_API_KEY=your_api_key_here 3. 创建主应用框架 python 复制…...

CentOS系统上挂载磁盘

在CentOS系统上挂载磁盘&#xff0c;主要包括查看磁盘设备、分区&#xff08;若需要&#xff09;、格式化、创建挂载点和挂载等步骤&#xff0c;以下是详细操作&#xff1a; 1. 查看磁盘设备 使用fdisk -l或lsblk命令查看系统识别到的磁盘设备。 fdisk -l&#xff1a;列出所…...

(一) 本地hadoop虚拟机系统设置

1.配置固定IP地址&#xff08;每一台都配置&#xff09; 开启node1&#xff0c;修改主机名为node1&#xff0c;并修改固定IP为&#xff1a;192.168.88.131 # 修改主机名 hostnamectl set-hostname node1# 修改IP vim /etc/sysconfig/network-scripts/ifcfg-ens33 IPADDR"…...

亿级核心表如何优雅扩展字段

1 导语 亿级数据的核心表新增一个字段&#xff0c;远不止一句简单的“ALTER TABLE”&#xff0c;锁表风险、页分裂、索引性能衰减……每一个问题都可能引发线上事故。如何在不影响业务的前提下&#xff0c;只需简单的配置&#xff0c;即可实现字段的动态扩展&#xff1f;本文将…...

单端传输通道也会有奇偶模现象喔

奇模&#xff08;Odd mode&#xff09;与偶模&#xff08;Even mode&#xff09;对差动对是很关键的要素&#xff0c;其会影响奇/偶模阻抗与相位速度&#xff0c;设计不良甚会让共模噪声引入整个差动对使讯号质量下降。 然而对单端信号系统而言呢&#xff1f; 如果说一对side b…...

VUE3 中的 ResizeObserver 警告彻底解决方案

问题背景 今天在使用 Vue 3 Ant Design Vue 开发后台管理系统时&#xff0c;在页面频繁触发 元素尺寸变化&#xff08;如表格滚动、窗口缩放&#xff09; 的时候&#xff0c;控制台频繁出现如下警告&#xff1a; ResizeObserver loop completed with undelivered notificati…...

IDEA2025版本使用Big Data Tools连接Linux上Hadoop的HDFS

目录 Windows的准备 1. 将与Linux上版本相同的hadoop压缩包解压到本地 ​编辑2.设置$HADOOP HOME环境变量指向:E:\hadoop-3.3.4 3.下载hadoop.dll和winutils.exe文件 4.将hadoop.dll和winutils.exe放入$HADOOP HOME/bin中 IDEA中操作 1.下载Big Data Tools插件 2.添加并连…...

Gas优化利器:Merkle 树如何助力链上数据效率革命

目录 前言原理Merkle树示意图实战演示:构建 Merkle 树并在合约中验证离线构建 Merkle 树(手动计算Merkle树、生成mermaid示意图)编写Merkle.js脚本执行Merkle.js脚本执行结果展示mermaid流程图展示离线构建 Merkle 树(merkletreejs计算Merkle树、验证哈希路径)编写Merkle.…...

R语言空间分析实战:地理加权回归联合主成份与判别分析破解空间异质性难题

在自然和社会科学领域有大量与地理或空间有关的数据&#xff0c;这一类数据一般具有严重的空间异质性&#xff0c;而通常的统计学方法并不能处理空间异质性&#xff0c;因而对此类型的数据无能为力。以地理加权回归为基础的一系列方法&#xff1a;经典地理加权回归&#xff0c;…...

kafka入门(二)

Java客户端访问Kafka 引入maven依赖 <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka‐clients</artifactId> <version>2.4.1</version> </dependency> 消息发送端代码 package com.tuling.kafka.ka…...

学习日记-day11-5.20

完成目标&#xff1a; comment.java package com.zcr.pojo; import org.hibernate.annotations.GenericGenerator;import javax.persistence.*; //JPA操作表中数据&#xff0c;可以将对应的实体类映射到一张表上Entity(name "t_comment")//表示当前的实体类与哪张表…...

手淘不易被清洗销量的4个成交入口

在淘宝运营中&#xff0c;销量是店铺权重的重要指标之一&#xff0c;但平台对虚假交易的打击力度越来越大&#xff0c;许多商家因销量被清洗而损失惨重。那么&#xff0c;通过什么样的手淘成交入口稳定不易清洗呢&#xff1f;经过实测&#xff0c;我们总结了以下手淘4个不易被清…...

【Linux】Linux 多线程

目录 1. Linux线程概念2. 重谈进程地址空间---页表2.1 如何由虚拟地址转化为物理地址的 3. pthread库调用接口3.1 线程的创建---pthread_create3.2 线程等待---pthread_join3.3 线程的退出3.4 分离线程 4. 线程库5. 线程ID6. Linux线程互斥6.1 锁6.2 锁的接口6.2.1 互斥量的初始…...

DAY31

知识点回顾 规范的文件命名规范的文件夹管理机器学习项目的拆分编码格式和类型注解 作业&#xff1a;尝试针对之前的心脏病项目&#xff0c;准备拆分的项目文件&#xff0c;思考下哪些部分可以未来复用。 浙大疏锦行...

大模型应用开发“扫盲”——基于市场某款智能问数产品的技术架构进行解析与学习

本文将从一款问数产品相关技术架构&#xff0c;针对大模型应用开发中的基础知识进行“扫盲”式科普&#xff0c;文章比较适合新手小白&#xff0c;属于是我的学习笔记整理&#xff0c;大佬可以划走啦~产品关键信息已经进行模糊处理&#xff0c;如有侵权请联系删除。 文章目录 前…...

List优雅分组

一、前言 最近小永哥发现&#xff0c;在开发过程中&#xff0c;经常会遇到需要对list进行分组&#xff0c;就是假如有一个RecordTest对象集合&#xff0c;RecordTest对象都有一个type的属性&#xff0c;需要将这个集合按type属性进行分组&#xff0c;转换为一个以type为key&…...

打破建筑与制造数据壁垒:Revit 到 STP 格式转换全攻略(含插件应用 + 迪威模型实战)

引言 在建筑信息模型&#xff08;BIM&#xff09;与计算机辅助设计&#xff08;CAD&#xff09;领域&#xff0c;数据在不同软件和系统间的高效流转至关重要。Revit 作为 BIM 技术应用的主流软件&#xff0c;常用于建筑设计、施工和运维管理&#xff1b;而 STP&#xff08;STE…...

RISC-V 开发板 MUSE Pi Pro USB 测试(3.0 U盘,2.0 UVC摄像头)

视频讲解&#xff1a; RISC-V 开发板 MUSE Pi Pro USB 测试&#xff08;3.0 U盘&#xff0c;2.0 UVC摄像头&#xff09; 总共开发板有4个USB的A口&#xff0c;1个USB的TypeC口&#xff0c;我们插上两个USB3.0的U盘和一个USB2.0的UVC摄像头来进行测试 lsusb -tv 可以看到有3个US…...

驱动相关基础

一、驱动分类与区别 字符设备驱动 一个字节一个字节进行读写操作的设备&#xff0c;以字符流的形式进行数据传输&#xff08;如鼠标、键盘、串口&#xff09;。 块设备驱动 以块为单位进行读写操作的设备&#xff0c;块的大小通常为 512 字节、1024 字节。 块设备驱动主…...

【node.js】核心进阶

个人主页&#xff1a;Guiat 归属专栏&#xff1a;node.js 文章目录 1. Node.js高级异步编程1.1 Promise深入理解1.1.1 创建和使用Promise1.1.2 Promise组合模式 1.2 Async/Await高级模式1.2.1 基本使用1.2.2 并行执行1.2.3 顺序执行与错误处理 1.3 事件循环高级概念1.3.1 事件循…...

高频Java面试题深度拆解:String/StringBuilder/StringBuffer三剑客对决(万字长文预警)

文章目录 一、这道题的隐藏考点你Get到了吗&#xff1f;二、内存模型里的暗战&#xff08;图解警告&#xff09;2.1 String的不可变性之谜2.2 可变双雄的内存游戏 三、线程安全背后的修罗场3.1 StringBuffer的同步真相3.2 StringBuilder的裸奔哲学 四、性能对决&#xff1a;用数…...

量子计算的曙光:从理论奇点到 IT 世界的颠覆力量

在信息技术&#xff08;IT&#xff09;的飞速发展中&#xff0c;一项前沿技术正以耀眼的光芒照亮未来——量子计算&#xff08;Quantum Computing&#xff09;。2025 年&#xff0c;随着量子硬件的突破、算法的优化以及企业对超算能力的渴求&#xff0c;量子计算从科幻梦想逐步…...

c++使用protocol buffers

在 C 里使用 Protocol Buffer&#xff0c;要先定义消息结构&#xff0c;接着生成 C 代码&#xff0c;最后在程序里使用这些生成的代码。 定义消息结构 首先要创建一个.proto文件&#xff0c;在其中定义消息类型和字段。 // person.proto syntax "proto3"; // 指…...

AI驱动发展——高能受邀参加华为2025广东新质生产力创新峰会

当AI浪潮席卷全球产业版图&#xff0c;一场以"智变"驱动"质变"的变革正在发生。5月15日&#xff0c;华为中国行2025广东新质生产力创新峰会璀璨启幕&#xff0c;作为华为生态战略合作伙伴&#xff0c;高能计算机与行业领军者同台论道&#xff0c;共同解码A…...

怎样解决photoshop闪退问题

检查系统资源&#xff1a;在启动 Photoshop 之前&#xff0c;打开任务管理器检查 CPU 和内存的使用情况。如果发现资源占用过高&#xff0c;尝试关闭不必要的程序或重启计算机以释放资源。更新 Photoshop 版本&#xff1a;确保 Photoshop 是最新版本。Adobe 经常发布更新以修复…...

AWS CodePipeline+ Elastic Beanstalk(AWS中国云CI/CD)

问题 最近需要利用AWS云上面的CI/CD部署Spring应用。 一图胜千言 步骤 打开CodePipeline网页&#xff0c;开始管道创建&#xff0c;如下图&#xff1a; 管道设置&#xff0c;如下图&#xff1a; 这里主要设置管道名称&#xff0c;至于服务角色&#xff0c;直接让codepipel…...

人工智能核心知识:AI Agent 的四种关键设计模式

人工智能核心知识&#xff1a;AI Agent 的四种关键设计模式 一、引言 在人工智能领域&#xff0c;AI Agent&#xff08;人工智能代理&#xff09;是实现智能行为和决策的核心实体。它能够感知环境、做出决策并采取行动以完成特定任务。为了设计高效、灵活且适应性强的 AI Age…...

Electron+vite+vue3 从0到1搭建项目,开发Win、Mac客户端

随着前端技术的发展&#xff0c;出现了所谓的大前端。 大前端则是指基于前端技术延伸出来的各种终端平台及应用场景&#xff0c;包括APP、桌面端、手表终端、服务端等。 本篇文章主要是和大家一起学习一下使用Electron 如何打包出 Windows 和 Mac 所使用的客户端APP&#xff…...

GitLab部署

学git Git最新最新详细教程、安装&#xff08;从入门到精通&#xff01;&#xff01;&#xff01;&#xff01;企业级实战&#xff01;&#xff01;&#xff01;工作必备&#xff01;&#xff01;&#xff01;结合IDEA、Github、Gitee实战&#xff01;&#xff01;&#xff01…...

基于R语言地理加权回归、主成份分析、判别分析等空间异质性数据分析技术

在自然和社会科学领域&#xff0c;存在大量与地理或空间相关的数据&#xff0c;这些数据通常具有显著的空间异质性。传统的统计学方法在处理这类数据时往往力不从心。基于R语言的一系列空间异质性数据分析方法&#xff0c;如地理加权回归&#xff08;GWR&#xff09;、地理加权…...

指针深入理解(二)

volatile关键字 防止优化指向内存地址&#xff0c; typedef 指针可以指向C语言所有资源 typedef 就是起一个外号。 指针运算符加减标签操作 指针加的是地址&#xff0c;并且增加的是该指针类型的一个单位&#xff0c;指针变量的步长可以用sizeof(p[0]) 这两个的p1是不一样…...

django回忆录(Python的一些基本概念, pycharm和Anaconda的配置, 以及配合MySQL实现基础功能, 适合初学者了解)

django 说实在的, 如果是有些Python基础或者编程基础, 使用django开发本地网站的速度还是很快的, 特别是配合ai进行使用. 本人使用该框架作业的一个主要原因就是因为要做数据库大作业, 哥们想速通, 结果由于我一开始没有接触过这些方面的知识, 其实也不算快, 而且现在我也没有…...

leetcode hot100刷题日记——5.无重复字符的最长字串

解答&#xff1a;滑动窗口思想&#xff08;见官方题解&#xff09; //方法1 class Solution { public:int lengthOfLongestSubstring(string s) {//哈希表记录是否有重复字符unordered_set<char>c;int maxlength0;int ns.size();//右指针初始化为-1&#xff0c;可以假设…...

一文讲清python、anaconda的安装以及pycharm创建工程

软件下载 Pycharm下载地址&#xff1a; https://download-cdn.jetbrains.com.cn/python/pycharm-community-2024.1.1.exe?_gl1*1xfh3l8*_gcl_au*MTg1NjU2NjA0OC4xNzQ3MTg3Mzg1*FPAU*MTg1NjU2NjA0OC4xNzQ3MTg3Mzg1*_ga*MTA2NzE5ODc1NS4xNzI1MzM0Mjc2*_ga_9J976DJZ68*czE3NDczMD…...

[每日一题] 3355. 零数组变换 i

文章目录 1. 题目链接2. 题目描述3. 题目示例4. 解题思路5. 题解代码6. 复杂度分析 1. 题目链接 3355. 零数组变换 I - 力扣&#xff08;LeetCode&#xff09; 2. 题目描述 给定一个长度为 n 的整数数组 nums 和一个二维数组 queries&#xff0c;其中 queries[i] [li, ri]。…...

【笔记】与PyCharm官方沟通解决开发环境问题

#工作记录 2025年5月20日 星期二 背景 在此前的笔记中&#xff0c;我们提到了向PyCharm官方反馈了几个关于Conda环境自动激活、远程解释器在社区版中的同步问题以及Shell脚本执行时遇到的问题。这些问题对日常开发流程产生了一定影响&#xff0c;因此决定联系官方支持寻求解…...

mariadb-cenots8安装

更新系统&#xff1a;安装完成 CentOS 8 后&#xff0c;连接到互联网&#xff0c;打开终端并运行以下命令来更新系统&#xff0c;以获取最新的软件包和安全补丁。 bash sudo yum update -y安装 MariaDB&#xff1a;运行以下命令来安装 MariaDB。 bash sudo yum install mariadb…...

Python实现VTK - 自学笔记(4):用Widgets实现三维交互控制

核心知识点 ​​交互器样式(vtkInteractorStyle)​​:自定义鼠标/键盘交互逻辑​​三维控件(3D Widgets)​​:使用预制控件实现复杂交互​​回调机制​​:实现动态数据更新​​参数化控制​​:通过控件调整算法参数import vtk# 1. 创建圆锥体数据源 cone = vtk.vtkConeSour…...

在tp6模版中加减法

实际项目中&#xff0c;我们经常需要标签变量加减运算的操作。但是&#xff0c;在ThinkPHP中&#xff0c;并不支持模板变量直接运算的操作。幸运的是&#xff0c;它提供了自定义函数的方法&#xff0c;我们可以利用自定义函数解决&#xff1a;ThinkPHP模板自定义函数语法如下&a…...

Linux:库与链接

库是预先编译好、可执⾏的⼆进制码&#xff0c;可以被操作系统加载到内存中执⾏。 库有两种&#xff1a; 静态库&#xff1a;.a(Linux)、.lib(Windows) 动态库&#xff1a;.so(Linux)、.dil(Windows) 静态库 1.程序在链接时把库的代码链接到可执⾏⽂件中&#xff0c;运⾏时…...

T008-网络管理常用命令:ping,ipconfig,nslookup,route,netstat

ipconfig&#xff1a;网络诊断命令&#xff0c;显示 IP 地址、掩码、网关信息&#xff0c;清除/显示 DNS 缓存信息&#xff1b; route&#xff1a;主要用于管理路由表&#xff0c;确定数据包如何从源主机通过网络到达目的主机 nslookup&#xff1a;用于查询域名到IP地址&…...

Qt文件:XML文件

XML文件 1. XML文件结构1.1 基本结构1.2 XML 格式规则1.3 XML vs HTML 2. XML文件操作2.1 DOM 方式&#xff08;QDomDocument&#xff09;读取 XML写入XML 2.2 SAX 方式&#xff08;QXmlStreamReader/QXmlStreamWriter&#xff09;读取XML写入XML 2.3 对比分析 3. 使用场景3.1 …...

MySQL 8.0 OCP 英文题库解析(六)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题41~50 试题4…...

微软开放代理网络愿景

&#x1f310; Microsoft的开放式智能代理网络愿景 2025年05月20日 | AI日报 ![](https://i-blog.csdnimg.cn/direct/e7838b88f17f40c9a435f6dc48d26c59.jpeg#pic_center) 欢迎各位人工智能爱好者 微软刚刚在Build 2025大会上开启了备受期待的AI周活动&#xff0c;通过发布大…...

阿尔泰科技助力电厂——520为爱发电!

当城市的霓虹在暮色中亮起&#xff0c;当千万个家庭在温暖中共享天伦&#xff0c;总有一群默默的 "光明守护者" 在幕后坚守 —— 它们是为城市输送能量的电厂&#xff0c;更是以科技赋能电力行业的阿尔泰科技。值此 520 爱意满满的日子&#xff0c;阿尔泰科技用硬核技…...

微软账户无密码化的取证影响

五月初&#xff0c;微软正式宣布&#xff0c;新创建的微软账户现在将默认为无密码&#xff0c;以实现“更简单、更安全的登录”。这一变化延续了Windows 11所设定的方向&#xff0c;即逐步淘汰传统密码&#xff0c;转而采用更安全、更方便用户的身份验证方法&#xff0c;如PIN码…...

idea部署本地仓库和连接放送远程仓库

1.下载git&#xff0c;安装好后任意地方又键会出现两个带git的东西 2.点击bash here的那个&#xff0c;召唤出git的小黑窗&#xff0c;输入 git config --global user.name "你自己取名" git config --global user.email "你自己输入你的邮箱" 3.打开id…...

4大AI智能体平台,你更适合哪一个呐?

好记忆不如烂笔头&#xff0c;能记下点东西&#xff0c;就记下点&#xff0c;有时间拿出来看看&#xff0c;也会发觉不一样的感受. AI的火热程度&#xff0c;应该说是今年IT行业内最热的话题了&#xff0c;以下是根据我对各个智能体平台的了解和熟悉&#xff0c;按照 平台特点、…...