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

第一阶段开发复盘与优化纪要

欢迎加入开源鸿蒙跨平台社区https://openharmonycrossplatform.csdn.net前言截至目前我们已经完成了 Flutter 鸿蒙端开发的第一阶段工作覆盖了环境搭建、网络请求封装、列表下拉刷新与上拉加载、图片加载与缓存、第三方刷新组件适配等核心基础功能。为了统一开发规范、提升代码可维护性、解决前期开发中暴露的共性问题今天开展第一阶段的整体复盘与优化工作本次优化的所有成果均可直接应用到现有项目中。一、阶段性开发回顾第一阶段的核心开发目标是完成所有通用基础功能的适配与实现为后续业务功能开发提供稳定的底层支撑。经过前期的开发与真机验证所有基础功能均已在鸿蒙设备上正常运行满足业务开发的基础需求但在代码结构、规范统一、逻辑复用等方面还有优化空间本次复盘将针对这些点进行专项优化。二、代码重构优化落地1. 通用组件统一抽离将分散在各个业务页面的通用组件进行统一抽离集中管理避免重复开发与重复配置统一刷新组件将适配完成的 flutter_easy_refresh 组件封装为全局通用组件所有配置集中管理统一图片组件将图片加载与缓存的所有适配逻辑封装为全局图片组件统一空状态组件封装全局通用的空数据、加载失败状态组件重构后的项目目录结构lib/ ├── components/ # 通用组件目录 ├── pages/ # 业务页面目录 ├── utils/ # 工具类目录 └── main.dart2. 重复逻辑封装优化将列表分页、状态管理等重复出现的逻辑封装为可复用的混合类所有列表页面直接引入即可复用无需重复开发mixin PageLoadMixinT extends StatefulWidget on StateT { int currentPage 1; bool isLoading false; int loadState 0; void resetPageState() { currentPage 1; isLoading false; loadState 0; } bool canLoadMore() { return !isLoading loadState ! 2; } }3. 网络请求统一封装将分散的网络请求逻辑统一封装为单例工具类全局统一管理请求配置与错误处理import package:dio/dio.dart; class HttpUtils { static final HttpUtils _instance HttpUtils._internal(); factory HttpUtils() _instance; late Dio _dio; HttpUtils._internal() { _dio Dio(BaseOptions( baseUrl: https://api.example.com, connectTimeout: const Duration(seconds: 10), receiveTimeout: const Duration(seconds: 10), headers: {Content-Type: application/json}, )); } FutureResponse get(String path, {MapString, dynamic? params}) async { return await _dio.get(path, queryParameters: params); } FutureResponse post(String path, {MapString, dynamic? data}) async { return await _dio.post(path, data: data); } }三、常见问题与优化方案问题 1分页逻辑重复开发每个列表页面单独实现优化方案封装分页加载混合类所有列表页面直接引入统一分页逻辑避免重复代码。业务页面仅需要实现自身的业务数据请求逻辑即可。问题 2组件配置分散修改配置需要调整多个页面优化方案所有通用组件的配置统一集中在组件封装文件中全局仅保留一份配置修改样式或适配参数只需要调整一处即可全局生效。问题 3网络错误处理分散每个页面单独实现错误逻辑优化方案在网络工具类中添加全局拦截器统一处理网络异常、权限过期、接口报错等通用问题业务页面只需要处理业务逻辑即可。_dio.interceptors.add(InterceptorsWrapper( onError: (error, handler) { // 全局统一处理网络错误、权限过期等通用问题 return handler.next(error); }, ));问题 4代码命名不统一可读性差优化方案统一项目命名规范文件名采用小写加下划线类名采用大驼峰变量名采用小驼峰常量采用大写加下划线保证全项目命名风格统一。四、代码与文档规范优化1. 代码注释规范优化所有公共组件、工具类、公共方法都添加标准注释说明功能、参数含义与使用方式提升代码可读性/// 全局统一刷新组件 /// 已完成鸿蒙端所有适配配置直接包裹列表组件即可使用 /// [child] 要添加刷新能力的列表组件 /// [onRefresh] 下拉刷新回调方法 /// [onLoad] 上拉加载更多回调方法 class CommonRefresh extends StatelessWidget { final Widget child; final Futurevoid Function() onRefresh; final Futurevoid Function()? onLoad; const CommonRefresh({ super.key, required this.child, required this.onRefresh, this.onLoad, }); }2. 项目文档优化更新项目说明文档补充项目结构说明、通用组件使用说明、开发环境配置说明、开发规范说明方便后续开发人员快速上手。3. 冗余代码清理清理项目中的测试代码、废弃的注释代码、未使用的依赖与导入保证项目代码整洁减少冗余。五、优化效果验证所有优化完成后在鸿蒙真机上完成以下验证所有基础功能运行正常无功能异常通用组件调用正常配置全局生效网络请求正常全局错误处理生效列表分页逻辑正常混合类复用正常所有验证项通过优化内容可正式投入使用。六、阶段总结本次第一阶段复盘与优化工作全部完成核心成果如下完成了代码结构重构实现了通用组件与重复逻辑的统一封装代码复用率大幅提升解决了前期开发中的 4 个共性问题统一了开发逻辑降低了后续开发的重复工作量完成了代码与文档的规范优化提升了代码的可读性与可维护性所有优化内容均经过真机验证不影响现有功能的正常运行第一阶段的基础功能开发与优化已经全部完成后续将进入业务功能开发阶段接下来将开展路由管理、页面传参、状态管理等功能的开发工作。

相关文章:

第一阶段开发复盘与优化纪要

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net 前言 截至目前,我们已经完成了 Flutter 鸿蒙端开发的第一阶段工作,覆盖了环境搭建、网络请求封装、列表下拉刷新与上拉加载、图片加载与缓存、第三方刷新组件适配等…...

【网安-Web渗透测试-内网渗透】内网信息收集(工具)

目录1. 内网基础知识1.1 局域网1.1.1 局域网简介1.1.2 局域网的网络结构1.2 工作组1.3 域1.4 内网渗透2. 环境说明2.1 DC2.2 WebServer2.3 Marry2.4 Jack3. Cobalt Strike工具:用户凭据(密码)收集4. Metasploit信息收集5. BloodHound工具6. 内…...

Armv8原子操作调试:LDXR/STXR指令对与独占监视器

1. 理解LDXR/STXR指令对的核心机制在Armv8-A架构中,LDXR(Load Exclusive Register)和STXR(Store Exclusive Register)是一对用于实现原子操作的指令。这对指令的工作机制可以类比为"拿号排队"系统&#xff1…...

转:调动员工积极性的七个关键

个人理解: 经营的原点,就是“调动员工的积极性” 讲述自己的哲学,与员工们共有这种哲学 思想意识发生变化,积极性、主动性提高 稻盛和夫:调动员工积极性的七个关键 稻盛和夫:调动员工积极性的七个关键 稻…...

量子计算中SIMD编译优化与离子阱架构实践

1. 量子计算中的SIMD编译优化概述量子计算正逐步从理论走向实践,而离子阱架构因其长相干时间和高保真度操作成为当前最有前景的物理实现方案之一。在传统量子编译器中,指令调度往往采用串行执行模式,导致离子传输和量子门操作存在大量等待时间…...

共享内存概述

共享内存,就是在内存里开辟一块公共空间,多个进程可以同时映射到自己的虚拟地址空间,大家直接读写同一块物理内存。是 Linux 进程间通信 IPC 最快 的一种方式。1️⃣创建共享内存空间2️⃣映射到自己的进程3️⃣strcpy写数据4️⃣断开与共享内…...

基于单相全波晶闸管的基本交流电压控制器,带电阻负载(Simulink仿真实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

彻底告别Row-By-Row:标量子查询外连接改写与向量化引擎深潜

在实际的复杂业务系统开发与运维中,SQL查询的结构往往会随着业务复杂度的提升而变得臃肿不堪。为了保证代码的可读性和逻辑的直观性,开发者非常喜欢使用 CTE(公共表表达式)、多层子查询、窗口函数,以及标量子查询&…...

私域流量红利见顶?那是你没解锁企业微信 API 的隐藏玩法!

在公域流量成本居高不下的今天,“私域流量”成了每个品牌的标配。然而,许多企业在把客户拉进企业微信后,却发现运营陷入了瓶颈:每天机械地群发广告,客户互动率低,退群率却居高不下。很多人惊呼:…...

Qt开发避坑|MQTT客户端频繁下线?竟是setClientId用错了!

做Qt物联网开发的小伙伴,大概率都遇到过这样的坑:本地调试时,MQTT客户端连接正常、消息收发流畅;可当另一个设备(或另一个调试窗口)启动后,前一个客户端突然被强制下线,日志里没明确…...

【更新至2025年】2001-2025年上市公司年报文本数据(txt格式)

【更新至2025年】2001-2025年上市公司年报文本数据(txt格式) 1、时间:2001-2025年 2、来源:巨潮资讯网 3、范围:A股上市公司 4、样本量:共7.2W份 5、说明:上市公司年报文本数据可以挖掘文本…...

YOLOv8改进策略【卷积层】| TGRS2024 小波变换特征分解器(WTFD)双频互补提精度 + 轻量分解保空间[特殊字符]

一、本文介绍 本文记录的是利用WTFD小波变换特征分解器优化YOLOv8的目标检测网络模型。 WTFD(小波变换特征分解器)通过Haar小波变换双迭代分解与分通道轻量化特征映射结合,为纯空间域分割网络引入互补的频域特征分支。本文利用WTFD模块,先通过点卷积增强输入空间特征的非…...

【2026年最新版】JDK安装、环境配置教程(详细图文附安装包)

【2026年最新版】Java JDK安装、环境配置教程 一、前期准备(重点)1. 版本选择2. 安装包下载二、安装步骤三、环境变量配置(必做)四、验证是否成功一、前期准备(重点) 1. 版本选择 首选 JDK 17&#xff08…...

Multi-head Self-Attention Machanism

3. 多头自注意力机制(Multi-head Self-Attention Machanism) 多头注意力机制是在自注意力机制的基础上发展起来的,是自注意力机制的变体,旨在增强模型的表达能力和泛化能力。它通过使用多个独立的注意力头,分别计算注…...

7.Linux笔记:shell

1.shellshell就是Linux内核的一个外层保护工具,并负责完成用户与内核之间的交互。用户>shell>内核>硬件内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,内核决定一个程序…...

FreeRTOS源码解析(9)任务通知

1.任务通知本质:直接操作目标任务的 TCB 字段。 它不自带控制块、不分配独立存储、不维护自己的等待列表——全程只做一件事:读写目标任务 TCB 里已有的 ulNotifiedValue 和 ucNotifyState,必要时将对方从延迟列表移到就绪列表。正因如此&…...

【Java实战】Java 实现 Base64 文件批量压缩为 ZIP

一、前言在实际项目开发中,经常遇到这样的场景:前端上传多个文件后以 Base64 格式存储,或者从数据库读取多个 Base64 编码的文件,需要将这些文件打包成 ZIP 压缩包供用户下载。本文分享一个实用的 Java ZIP 压缩工具类二、应用场景…...

2025年知识竞赛行业趋势报告:智能化、场景化与生态融合

📊 2025年知识竞赛行业趋势报告技术更智能 场景更融合 内容更鲜活 工具更普惠🚀 引言:变革中的竞赛生态知识竞赛,这一古老的知识检验与娱乐形式,在数字技术的持续赋能下,正经历着一场深刻的范式变革。从…...

What Are You Talking About(HDU- P1075)

伊格纳修斯真是走了狗屎运,昨天居然遇到了火星人!可惜他完全听不懂火星人的语言。临走时,火星人给了他一本火星历史书和一本词典。现在伊格纳修斯想把这本历史书翻译成英语,你能帮帮他吗?输入本题只有一组测试数据&…...

第二章:Compose入门—声明式UI编程

第二章:Compose 入门 — 声明式 UI 编程 Compose 的核心理念:用 Kotlin 代码声明 UI,而不是用 XML 布局文件。 2.1 传统 View 系统 vs Compose 对比项传统 View 系统Jetpack ComposeUI 描述XML 布局文件Kotlin 代码状态更新findViewById 手…...

三极管的削波失真是什么

削波失真(Clipping Distortion)是指当放大电路(如三极管、运放)的输出信号幅度超过了其供电电压或输出动态范围的极限时,信号的顶部和/或底部被“削平”而发生的失真现象。1. 它是如何发生的?以一个共射放大…...

SBA系列生物传感分析仪的工作原理是什么?

SBA系列生物传感分析仪利用酶促反应来进行定量分析,测定的关键传感器是固定化酶和过氧化氢电极复合传感器,分析过程基于以下生化反应:底物 固定化酶膜 → 产物谷氨酸    谷氨酸氧化酶  α-酮戊二酸葡萄糖    葡萄糖氧化…...

STM32F108C8T6小白入门特训营__1.4GPIO.C 代码分析

目录 1.只需要搞明白 cubemx 跟 代码对应关系就可以了 2.GPIO.C 代码加上注释 3.注意引脚的宏定义 1.只需要搞明白 cubemx 跟 代码对应关系就可以了 2.GPIO.C 代码加上注释 读懂注释部分代码即可 /* USER CODE BEGIN Header */ /*****************************************…...

JDBC(四):Statement

Statement作用:执行sql1. 执行dml、ddlint excuteUpdate(sql)(1)dml,输出受影响行数(为正,执行成功;为负,执行失败)(2)ddl,可能输出0&…...

HTML代码加密工具源码_在线网页加密解密_防复制源码

概述 在前端开发与网页设计中,保护原创代码不被轻易复制或篡改是许多开发者的核心诉求。无论是为了隐藏核心逻辑,还是防止样式被恶意盗用,一款高效、安全的加密工具都显得尤为重要。为此,幽络源源码网特别整理并分享这款HTML代码…...

从‘密码长度’到‘任意代码执行’:手把手复现攻防世界int_overflow靶场(附Python3 EXP)

从密码长度到系统控制:整数溢出漏洞实战攻防全解析 在网络安全领域,整数溢出漏洞往往因其隐蔽性而被开发者忽视,却可能成为攻击者打开系统大门的金钥匙。本文将带您深入一个典型场景:如何通过精心构造的密码输入,从简单…...

PPTX判断包含图表id

PPTX判断包含图表id ############################20250915判断是否包含图表################################################## i0 for shape in prs.slides[1].shapes:if shape.HasChart:print(fi:{i}包含图表)ii1 ############################20250915判断是否包含图表##…...

护眼钢化膜是智商税?圆偏振光+AR降反射实测,观复盾用硬核技术给出答案

护眼钢化膜是智商税?圆偏振光AR降反射实测,观复盾用硬核技术给出答案“花上百块买的护眼钢化膜,贴上后屏幕又黄又暗,眼睛反而更累了。”这样的抱怨在数码社区里比比皆是。与此同时,也有用户表示换了圆偏振光膜后&#…...

Docker Compose部署Nginx Proxy Manager保姆级教程:从端口映射到数据持久化全解析

Docker Compose部署Nginx Proxy Manager全流程精解:从架构设计到生产级实践 当你面对数十个需要反向代理的服务时,手动编辑Nginx配置文件的繁琐程度足以让人望而生畏。Nginx Proxy Manager的出现彻底改变了这种局面——这个基于Docker的开源解决方案将复…...

数组指针VS指针数组

【C语言】指针数组 VS 数组指针 原来这么简单! - 知乎 数组的名字就是数组首元素的指针。 判断指针类型指针口诀:先右后左,由近及远,括号优先。(从变量名看起) 指针数组: int *p[5] &…...