深度评测uni-app x:开启跨平台开发新篇章
文章目录
- 一、引言
- 1.1 跨平台开发的崛起
- 1.2 uni-app x 初印象
- 二、uni-app x 核心特性评测
- 2.1 uts 语言:跨平台编程新利器
- 2.2 uvue 渲染引擎:原生渲染新体验
- 2.3 强大的组件和 API 支持
- 2.4 插件生态:拓展无限可能
- 三、与 uni-app 对比:优势尽显
- 3.1 开发效率提升
- 3.2 性能优化突破
- 3.3 功能拓展深度
- 四、uni-app x 实战案例剖析
- 4.1 电商应用:喵购商城的蜕变
- 4.2 其他领域应用亮点
- 五、未来前景展望
- 5.1 技术发展趋势
- 5.2 市场潜力挖掘
- 六、结语
一、引言
本文仅做简单的分析和前景展望,后续会用实际的项目来演示。
附2篇博客的讨论链接:
- https://juejin.cn/post/7306694295247175719
- https://juejin.cn/post/7317091780826497075
1.1 跨平台开发的崛起
在当今的移动互联网时代,APP 已然成为人们生活、工作、娱乐不可或缺的一部分。从社交聊天、在线购物到移动办公、出行导航,各类 APP 如雨后春笋般涌现,满足着人们多样化的需求。据统计,截至 2023 年,全球移动应用的数量已超过 500 万款,仅中国市场的 APP 数量就超过 400 万款,且仍保持着增长的态势。如此庞大的市场需求,使得 APP 开发成为了热门领域。
然而,随着智能手机操作系统的二分天下,iOS 与 Android 各自占据着可观的市场份额。这就给开发者带来了难题:若采用传统原生开发,针对不同系统需要组建不同团队、使用不同技术栈,开发成本高、周期长;而单纯的 Web 应用又难以提供媲美原生的性能与体验。在这样的困境下,跨平台开发技术应运而生,它宛如一座桥梁,连接起不同操作系统的鸿沟,让开发者能够用一套代码,奔赴多端之约,在节省时间与人力成本的同时,确保应用在各个平台都能流畅运行,为用户带来一致的体验。跨平台开发框架如 React Native、Flutter 等,凭借各自优势,吸引了众多开发者投身其中,成为移动开发领域的中流砥柱。
1.2 uni-app x 初印象
在众多跨平台开发解决方案中,uni-app x 宛如一颗冉冉升起的新星,备受瞩目。它作为 uni-app 的进阶版本,站在前辈的肩膀上,向着更高的目标进发。uni-app x 不仅仅是一次简单的升级,而是全方位的革新,其内置的 uts 语言、uvue 渲染引擎、丰富的组件和 API,以及灵活的扩展机制,共同编织成一张强大的开发网,助力开发者轻松捕获多端开发的 “大鱼”。
uts 语言,这一跨平台的新贵,兼具 TypeScript 的严谨与跨平台的洒脱。它能依据不同平台 “化身” 为相应的原生语言,在 Web / 小程序端摇身变为 JavaScript,在 Android 端披上 Kotlin 的外衣,于 iOS 端则化作 Swift 代码,让应用在各平台都能扎根生长,尽享原生性能的红利。uvue 渲染引擎同样不容小觑,它以 uts 为基石,融合 Vue 语法的优雅,打破 H5 渲染的性能瓶颈,直接对话原生渲染接口,让界面渲染如丝般顺滑,复杂场景下亦能游刃有余。再加上琳琅满目的组件、便捷易用的 API,以及蓬勃发展的插件生态,uni-app x 为开发者呈上了一桌开发盛宴,无论是初出茅庐的新手,还是久经沙场的老将,都能在此找到得心应手的工具,开启高效、卓越的跨平台开发之旅。
二、uni-app x 核心特性评测
2.1 uts 语言:跨平台编程新利器
uts 语言,作为 uni-app x 的 “魔法棒”,一经亮相便吸引了众多开发者的目光。它站在 TypeScript 的肩膀上,汲取其精华,融入跨平台的智慧,铸就了独特的魅力。从语法层面看,uts 与 TypeScript 宛如孪生兄弟,熟悉 TypeScript 的开发者能轻松上手,快速开启跨平台开发之旅。但 uts 绝非简单的模仿,它为了跨越不同平台的鸿沟,进行了精心的 “雕琢”。
在类型定义方面,uts 严谨且灵活。以变量声明为例,使用 let 或 const 关键字,搭配明确的类型标注,如let num: number = 10;,让代码在编译期就能揪出潜在的类型错误,为程序的稳定性筑牢根基。而对于方法的参数和返回值,同样精准的类型定义,使得代码逻辑清晰可辨,团队协作时宛如阅读一本条理分明的书籍。当面对不同平台的特性差异时,uts 的条件编译大显身手。就像一位智能的向导,能依据所处平台,引入特定的扩展语法,让代码在各平台都能精准适配,无缝对接原生能力。在 Android 平台,通过条件编译引入 Kotlin 的独特语法,调用系统级 API,实现诸如精准的电量监测、高效的文件读写等功能,让应用与系统深度融合;在 iOS 平台,切换至 Swift 风格的代码,尽享苹果生态的高效与流畅,如利用原生动画框架,为用户带来丝滑的交互体验。
uts 的跨平台编译能力更是一绝。在 Web / 小程序端,它优雅地 “变身” 为 JavaScript,借助浏览器的广泛支持,快速部署,广泛触达用户;于 Android 平台,化作 Kotlin 代码,深度嵌入 Android 系统,调用原生组件得心应手,尽享系统底层优化带来的性能红利;在 iOS 平台,则摇身变为 Swift,与苹果的开发框架紧密相拥,充分发挥苹果硬件的卓越性能,无论是图形渲染还是数据处理,都能游刃有余。这一特性,使得开发者能够摆脱平台束缚,用一套 uts 代码,开启多端畅行的开发之旅,大大缩短开发周期,降低维护成本,宛如拥有了一把通往跨平台开发宝藏的万能钥匙。
2.2 uvue 渲染引擎:原生渲染新体验
uvue 渲染引擎,堪称 uni-app x 的 “颜值担当” 与 “性能支柱”。它以 uts 语言为基石,融合 Vue 语法的灵动,打破传统 H5 渲染的性能瓶颈,为用户呈上精美流畅的视觉盛宴。在架构设计上,uvue 独具匠心。它内置了 uts 版的 Vue 框架,将数据绑定、组件化开发等 Vue 的优势发挥得淋漓尽致。开发者沿用熟悉的 Vue 语法编写页面逻辑,在数据更新时,uvue 如同一位敏捷的信使,迅速将变化传递至原生渲染接口,驱动界面实时刷新,让用户操作与界面反馈之间的延迟近乎为零。
与传统 H5 渲染对比,uvue 的优势显而易见。以往的 H5 渲染,宛如一位负重前行的旅人,在复杂页面加载时,需要携带大量 DOM 元素,导致启动缓慢、渲染卡顿,内存占用也如滚雪球般增长。而 uvue 则像是一位轻盈的舞者,直接与原生渲染接口共舞,跳过繁琐的 DOM 操作,让页面加载如闪电般迅速,渲染过程流畅自然,即使面对多层嵌套的组件、海量数据的列表,也能轻松应对,保持界面的稳定与流畅。在一个电商 APP 的商品列表页面,传统 H5 渲染可能在滑动加载新商品时出现卡顿,图片闪烁,用户体验大打折扣;而 uvue 渲染引擎驱动下的页面,滑动丝滑,图片秒开,用户能够畅快浏览商品,下单欲望也随之提升。这不仅为用户带来愉悦的体验,更是助力应用在竞争激烈的市场中脱颖而出,赢得用户的青睐与口碑。
2.3 强大的组件和 API 支持
uni-app x 的组件和 API 库,恰似一座琳琅满目的工具宝库,为开发者提供了全方位的开发支持。内置的基础组件涵盖了从布局容器、文本显示到按钮交互、表单输入等各个方面,满足了日常开发的基本需求。以按钮组件为例,它提供了多种样式预设,如简约的扁平风格、醒目的立体样式,开发者只需简单配置属性,即可快速搭建出符合应用风格的交互按钮,无论是引导用户登录、提交表单,还是触发关键操作,都能轻松实现。
自定义 vue 组件功能,则为开发者打开了创意的大门。开发者能够依据项目需求,将复杂的 UI 模块封装成独立组件,实现代码的复用与逻辑的解耦。在开发一个社交 APP 时,可将动态卡片、评论列表等模块封装为组件,一处开发,多处复用,当需要修改样式或功能时,只需聚焦于组件内部,避免牵一发而动全身,大大提升开发效率与代码维护性。uts 组件插件更是拓展了边界,引入第三方开发的专业组件,如地图定位、音视频播放、图表绘制等,让应用轻松拥有强大功能。引入地图组件,只需几行代码,就能在应用中精准嵌入地图,实现定位导航、地点搜索,为出行类应用提供坚实支撑;音视频组件则赋能娱乐、教育类应用,流畅播放高清视频、清晰录制音频,满足用户多样化需求。
全局 API 的配置同样便捷高效。通过manifest.json等配置文件,开发者能够统一设置应用的名称、图标、权限等基础信息,让应用在各平台展现一致形象。在 API 调用方面,无论是网络请求、数据存储,还是设备信息获取、推送通知,uni-app x 都提供了简洁易用的 API。发起网络请求时,只需调用封装好的 API,传入请求地址与参数,即可快速获取数据,无需操心底层网络适配,专注于业务逻辑处理,让开发过程如顺水行舟,高效推进。
2.4 插件生态:拓展无限可能
uni-app x 的插件生态系统,宛如一片充满生机的热带雨林,各类插件蓬勃生长,为应用注入无限活力。原生插件作为其中的 “参天大树”,扎根于系统底层,能调用丰富的原生功能。在权限管理方面,借助原生插件,应用可以精准适配 iOS 与 Android 不同的权限申请流程,在需要访问相册、相机、麦克风等敏感权限时,顺滑引导用户授权,避免因权限问题导致功能受阻,确保应用的正常运行与用户隐私的安全平衡。对于系统硬件的调用,如蓝牙连接、NFC 通信,原生插件提供了稳定高效的接口,让物联网应用、近场交互应用得以轻松实现,拓展应用的交互边界。
H5 插件则像是灵动的 “藤蔓”,穿梭于 Web 页面之间,为应用带来丰富的 Web 功能扩展。引入富文本编辑器插件,让用户在应用内轻松编辑图文并茂的内容,适用于笔记类应用、内容创作平台;在线客服插件,通过嵌入第三方客服系统的 H5 页面,实现实时沟通,及时解答用户疑问,提升用户满意度,为电商、服务类应用保驾护航。小程序插件犹如 “奇花异果”,以其小巧灵活、功能聚焦的特点,为应用增添独特魅力。例如,分享插件助力应用内容在社交平台快速传播,提升曝光度;支付插件无缝对接主流支付渠道,保障交易流程安全顺畅,为电商购物、付费订阅等场景提供关键支持。
完善的插件开发文档与工具链,如同雨林中的 “指南针” 与 “工具包”,指引开发者轻松开发自定义插件,融入生态。无论是初涉插件开发的新手,还是经验丰富的老手,都能依据文档快速上手,利用工具链高效构建、调试插件,让创新想法迅速落地,为 uni-app x 的生态持续添砖加瓦,共同构建一个繁荣昌盛的跨平台开发家园。
三、与 uni-app 对比:优势尽显
3.1 开发效率提升
在开发效率的赛道上,uni-app x 宛如一辆配备了涡轮增压引擎的跑车,将 uni-app 远远甩在身后。从代码复用的角度来看,uni-app x 凭借其更强大的跨平台兼容特性,让代码复用率实现了质的飞跃。以往在 uni-app 中,针对不同平台的细微差异,开发者往往需要编写大量的适配代码,犹如在荆棘丛中艰难前行;而 uni-app x 通过 uts 语言的智能适配与条件编译,以及 uvue 渲染引擎对原生接口的精准对接,使得一套代码在各平台的通用性大幅提升,开发者能够将更多精力投入到核心业务逻辑的雕琢上,减少重复性劳动,开发周期得以显著缩短。
在开发流程优化方面,uni-app x 同样表现卓越。其内置的丰富组件和 API,如同精心打磨的乐高积木,开发者只需按照需求进行拼接,就能快速搭建出应用的雏形。以构建一个社交分享功能为例,在 uni-app 中,开发者可能需要从基础的分享按钮组件开始,逐步集成各个平台的分享 SDK,处理复杂的权限申请与回调逻辑,过程繁琐且易错;而 uni-app x 直接提供了高度封装的分享组件插件,支持多平台一键分享,配置简便,几行代码即可搞定,让开发流程如丝般顺滑,大大提升了开发效率,助力项目快速上线。
3.2 性能优化突破
性能,犹如应用的 “心脏”,跳动的强弱直接关乎用户体验。uni-app x 在性能优化上的卓越表现,使其成为众多开发者眼中的 “性能王者”。在加载速度方面,通过实际项目测试,一个中等规模的电商应用,使用 uni-app 开发时,首页加载平均耗时约 3 秒,在弱网环境下更是长达 5 秒,用户等待焦虑感剧增;而切换至 uni-app x 后,首页加载时间锐减至 1.5 秒左右,即使在网络不佳时,也能控制在 3 秒以内,用户几乎无需等待,即可快速浏览商品信息,下单转化率也随之提升。
内存占用的优化同样令人瞩目。在运行复杂的图文混排页面时,uni-app 的内存占用峰值可达 200MB,长时间使用后容易出现卡顿甚至闪退现象;uni-app x 凭借 uvue 渲染引擎的高效渲染与智能资源管理,内存占用峰值能稳定控制在 120MB 以内,应用运行流畅稳定,如同一位轻盈的舞者在舞台上翩翩起舞,为用户持续献上精彩表演,极大提升了应用的竞争力。
3.3 功能拓展深度
当应用面临日益复杂的业务需求时,uni-app x 的功能拓展深度宛如一座无尽的宝藏,为开发者提供了强大的后盾支持。在服务端支持领域,uni-app x 引入基于 Node.js 的自定义服务端,犹如为应用搭建了一座坚固的 “数据桥梁”,实现了前后端数据的实时交互。对于一个在线教育平台,借助 uni-app x 的服务端支持,教师能够实时推送课程资料、批改作业,学生可即时接收反馈、参与互动讨论,课堂的边界被无限拓展,学习体验得到质的升华。
原生模块集成能力更是 uni-app x 的一大撒手锏。它如同一位万能的 “技术工匠”,能够轻松调用系统级 API 与第三方库。在开发一款智能健康监测应用时,uni-app x 可以无缝集成手机的心率传感器、运动传感器等原生模块,精准获取用户健康数据,结合专业的数据分析算法,为用户提供个性化的健康建议,让应用从 “能用” 迈向 “好用”,深度满足用户需求,开启无限可能的功能拓展之旅。
四、uni-app x 实战案例剖析
4.1 电商应用:喵购商城的蜕变
在电商领域,喵购商城宛如一颗璀璨的明珠,充分展现了 uni-app x 的强大魅力。从技术选型之初,团队便看中了 uni-app x 的跨平台兼容性与高效开发特性,期望打造一款能在多端畅行无阻,且快速迭代的电商应用。在开发过程中,uts 语言大放异彩,通过条件编译,精准适配各平台特性。在处理图片加载优化时,针对 iOS 系统,利用 Swift 相关原生库,实现图片的无损压缩与快速解码,让图片瞬间点亮屏幕;于 Android 端,则借助 Kotlin 的高效文件读取与处理能力,确保图片加载流畅,减少卡顿,为用户呈上丝滑的视觉盛宴。
uvue 渲染引擎更是功不可没,在商品列表页面,面对海量商品数据的渲染挑战,uvue 直接与原生渲染接口紧密协作,摒弃传统 H5 渲染的繁琐 DOM 操作,使得页面加载速度较以往提升了 50%,用户能够快速浏览商品,精准定位心仪好物。在购物车功能模块,利用 Vue 的响应式数据绑定与 uni-app x 的本地存储 API 完美结合,实时更新商品数量与总价,无论用户切换设备还是关闭应用后重新打开,购物车数据始终准确无误,为购物体验保驾护航。据后台数据显示,自喵购商城采用 uni-app x 重构后,用户留存率提升了 15%,订单转化率增长了 20%,充分彰显了技术升级带来的商业价值。
4.2 其他领域应用亮点
在社交领域,一款名为 “趣缘” 的社交 APP 借助 uni-app x 成功出圈。其利用 uts 语言高效调用原生设备摄像头与相册权限,让用户在分享生活瞬间时,能够快速拍摄高清照片、选取精美图片,配合 uvue 渲染引擎驱动的流畅界面切换,从动态发布到点赞、评论交互,操作一气呵成,延迟近乎为零,用户沉浸其中,社交氛围愈发火热,上线半年,月活跃用户数便突破了 50 万。
工具类应用中,“万能助手” 更是将 uni-app x 的优势发挥得淋漓尽致。它集成了文件管理、二维码生成、文本编辑等多样功能,凭借 uni-app x 丰富的组件和 API,快速搭建起简洁易用的操作界面。通过引入原生插件,深度调用系统文件读写能力,让文件管理如虎添翼,无论是大文件传输还是批量文件处理,都能高效完成;利用 H5 插件引入在线 OCR 识别功能,轻松提取图片文字,满足用户多样化办公需求,成为众多职场人士手机中的必备神器,在工具类应用市场中占据了一席之地,下载量持续攀升。
五、未来前景展望
5.1 技术发展趋势
展望未来,uni-app x 的技术演进之路宛如一幅绚丽多彩的画卷,徐徐展开。在持续优化现有特性方面,uts 语言将不断打磨细节,进一步优化类型推断系统,让开发者编写代码时更加得心应手,减少类型声明的繁琐,同时增强对新兴 JavaScript 特性的支持,确保在 Web / 小程序端的代码始终紧跟时代步伐,高效运行。uvue 渲染引擎会朝着更智能的资源管理迈进,自动识别页面的渲染优先级,在复杂页面加载时,优先渲染关键内容,让用户能更快获取核心信息,进一步降低内存占用,提升渲染性能,无论是高清图片展示还是复杂动画效果,都能轻松驾驭。
融合新兴技术的探索也在紧锣密鼓地进行。随着人工智能技术的蓬勃发展,uni-app x 有望深度整合 AI 能力,为应用赋能。想象一下,在一个智能健康管理应用中,通过调用内置的 AI 模型,实时分析用户的运动数据、饮食摄入,精准提供个性化的健身建议和饮食计划;在电商应用里,利用 AI 实现智能商品推荐,根据用户的浏览历史、购买行为,精准推送符合用户喜好的商品,提升购物转化率。区块链技术的融入同样令人期待,它将为数据安全与隐私保护筑牢坚实防线,在金融、政务类应用中,确保数据的不可篡改与可追溯,让用户放心地进行交易、办理业务,为应用的可信度加分。
5.2 市场潜力挖掘
从市场的广阔天地来看,uni-app x 的应用拓展前景一片光明。在行业应用的深耕细作上,医疗领域已然成为一片待垦的肥沃土壤。借助 uni-app x 的跨平台优势,可快速开发出集远程问诊、病历管理、健康监测于一体的综合医疗应用,患者在家就能轻松连线专家,医生随时查阅病历,实时跟踪患者健康指标,改善医疗资源分布不均的现状,提升全民医疗服务水平。教育行业更是潜力无限,在线教育平台能够利用 uni-app x 的实时音视频通话、互动白板等功能,打造沉浸式课堂,老师与学生跨越时空界限,实时互动交流,无论是偏远山区还是繁华都市,都能共享优质教育资源。
地域市场的拓展同样值得关注。在新兴市场,如东南亚、非洲等地,智能手机的普及如雨后春笋,移动应用需求呈现爆发式增长。uni-app x 凭借其高效开发、低成本部署的特性,能够助力开发者迅速抢占先机,开发出贴合当地需求的应用,涵盖社交、电商、生活服务等各个领域,满足当地民众日益增长的数字化生活需求。而在欧美等成熟市场,对于应用的性能与品质要求极高,uni-app x 凭借其媲美原生的性能表现,有望突破传统跨平台框架的局限,打入高端应用市场,为全球用户带来更优质、便捷的移动应用体验,开启跨平台开发的新篇章。
六、结语
综上所述,uni-app x 凭借其独特的跨平台开发理念和强大的功能特性,已然在跨平台开发领域崭露头角。从核心技术的 uts 语言、uvue 渲染引擎,到丰富的组件和 API 支持,再到蓬勃发展的插件生态,无一不彰显着它的卓越实力。与 uni-app 相比,uni-app x 在开发效率、性能优化、功能拓展等方面实现了显著突破,为开发者提供了更优质的开发体验,助力应用在激烈的市场竞争中脱颖而出。
通过实战案例剖析,我们看到了 uni-app x 在电商、社交、工具等多个领域的成功应用,为企业带来了实实在在的商业价值提升。展望未来,uni-app x 技术演进方向明确,市场潜力巨大,无论是深耕医疗、教育等行业应用,还是拓展新兴地域市场,都有着无限可能。
在此,诚挚鼓励广大开发者积极拥抱 uni-app x,踏上这趟高效、卓越的跨平台开发之旅,利用其优势,挖掘更多创新应用场景,共同推动移动应用开发迈向新的高峰,为用户创造更加精彩、便捷的数字生活体验。相信在不久的将来,uni-app x 将成为跨平台开发领域的中流砥柱,引领行业发展潮流。
相关文章:
深度评测uni-app x:开启跨平台开发新篇章
文章目录 一、引言1.1 跨平台开发的崛起1.2 uni-app x 初印象 二、uni-app x 核心特性评测2.1 uts 语言:跨平台编程新利器2.2 uvue 渲染引擎:原生渲染新体验2.3 强大的组件和 API 支持2.4 插件生态:拓展无限可能 三、与 uni-app 对比…...
第06章 重定向与管道
一、概述 在企业生产环境中,如何记录一个程序运行的过程记录或者定时任务执行的结果呢?假设定时任务凌晨执行,我们在白天上班时需要查看执行是否成功要怎么办?就可以使用本章介绍的重定向和管道符号。 二、重定向 2.1 文件描述…...
python中的字典类型数据及其操作
1、字典的定义 映射是一种键(索引)和值(数据)的对应键值对:键是数据索引的扩展字典是键值对的集合,键值对之间无序字典采用大括号{}和dict()创建,键值对用冒号:表示,key…...
『SQLite』表达式操作
摘要:表达式是一个或多个值、运算符和计算值的 SQL 函数的组合。SQL 表达式与公式类似,都写在查询语言中。 基本语法 SELECT column1, column2, columnN FROM table_name WHERE [CONTION | EXPRESSION];布尔表达式 SQLite 的布尔表达式在匹配单个值的…...
PHP7和PHP8的最佳实践
php 7 和 php 8 的最佳实践包括:使用类型提示以避免运行时错误;利用命名空间组织代码并避免命名冲突;采用命名参数、联合类型等新特性增强可读性;用错误处理优雅地处理异常;关注性能优化,如避免全局变量和选…...
Python实现一个简单的 HTTP echo 服务器
一个用来做测试的简单的 HTTP echo 服务器。 from http.server import HTTPServer, BaseHTTPRequestHandler import jsonclass EchoHandler(BaseHTTPRequestHandler):def do_GET(self):# 构造响应数据response_data {path: self.path,method: GET,headers: dict(self.headers…...
字玩FontPlayer开发笔记4 性能优化 首屏加载时间优化
字玩FontPlayer开发笔记4 性能优化 首屏加载时间优化 字玩FontPlayer是笔者开源的一款字体设计工具,使用Vue3 ElementUI开发,源代码: github: https://github.com/HiToysMaker/fontplayer gitee: https://gitee.com/toysmaker/fontplayer …...
NeurIPS 2024 | SHMT:通过潜在扩散模型进行自监督分层化妆转移(阿里,武汉理工)
当前的妆容转移技术面临两个主要挑战: 缺乏成对数据,导致模型训练依赖于低质量的伪配对数据,从而影响妆容的真实感; 不同妆容风格对面部的影响各异,现有方法难以有效处理这种多样性。 今天给大家介绍的方法是由阿里联…...
“知识图谱AI教学辅助系统:点亮智慧学习的新灯塔
嘿,各位教育界的小伙伴们!今天咱们来聊聊一个超级有料的话题——知识图谱AI教学辅助系统。想象一下,如果有一个智能导师能根据你的需求定制专属的学习路径,还能像百科全书一样随时解答疑问,是不是感觉学习变得更高效、…...
STM32-ADC模数转换
定义: ADC(Analog-Digital Converter)模拟-数字转换器 ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁 12位逐次逼近型ADC【表示转化的范围是0-2^12 - 1】,1us转换时间 输…...
Springboot整合MyBatis-Plus
1、整合MyBatis-Plus 1、导入依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.2.0</version></dependency>2、配置 1)配置数据源,导…...
分类、聚类与回归的评价指标
在cross_validate或cross_val_score中,参数scoring,与分类、聚类和回归算法的评价指标有关。 3.4.3. The scoring parameter: defining model evaluation rules For the most common use cases, you can designate a scorer object with the scoring pa…...
Day28下 - 大模型微调:酒店评论情感分析
一、前置准备 1. 下载 LLaMA Factory https://github.com/hiyouga/LLaMA-Factory.git 搭建过程详见:https://blog.csdn.net/CSBLOG/article/details/144584581 2. 选择 预训练模型 和 prompt指令模型 预训练阶段在实际工作中,一般是用不上的ÿ…...
企业级Nosql数据库和Redis集群
一、关系数据库和Nosql数据库 关系数据库 定义:关系数据库是建立在关系模型基础上的数据库。它使用表格(关系)来存储数据,通过行和列的形式组织信息。例如,一个简单的学生信息表可能有 “学号”“姓名”“年龄”“班级…...
代码优化方案
① 引入清晰的中间变量 即如果判断条件很复杂的情况下,最好的方式是引入清晰的中间变量。 isValid val > someConstant; isAllowed condition2 || condition3; isSecure condition4 && !condition5;// 有了描述性变量,我们就不需要再记住…...
C++直接内存管理new和delete
0、前言 C语言定义了两个运算符来分配和释放动态内存。运算符new分配内存,delete释放new分配的内存。 1、new动态内存的分配 1.1、new动态分配和初始化对象 1)、new内存分配 在自由的空间分配的内存是无名的,new无法为其分配的对象…...
CPU过剩是什么意思? 有什么对电脑的影响吗?如何确认CPU有没有过剩
CPU 过剩通常是指计算机系统中 CPU 的性能远远超出了当前运行任务的需求。以下从产生原因和对电脑的影响为你详细介绍: 产生原因 硬件升级与软件发展不同步:用户为追求高性能提前升级了 CPU,而当前的软件应用程序在算法和功能上没有太大突破&…...
Git的简单介绍与如何安装Git
文章目录 前言一、初始git1.git是什么2.为什么要使用git(出现的问题)3.git是如何解决问题的 二、git的安装与卸载1.centos系统2.ubuntu系统3.windows 三、搭建git本地环境1.创建git本地仓库2.配置用户信息 总结 前言 本文简单引入git的相关内容。 一、初始git 1.git是什么 g…...
Linux vi/vim 编辑器:功能强大的文本处理工具
Linux vi/vim 编辑器:功能强大的文本处理工具 引言 Linux 系统中的 vi/vim 是一种功能强大的文本编辑器,它广泛应用于程序员、系统管理员和其他需要处理文本文件的用户群体中。vi 是 visual interface 的缩写,而 vim 则是 vi improved 的缩…...
计算机毕业设计Python电商品推荐系统 商品比价系统 电商比价系统 商品可视化 商品爬虫 机器学习 深度学习 京东爬虫 国美爬虫 淘宝爬虫 大数据
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
正则表达式 - 使用总结
正则表达式 - 使用总结 正则表达式(Regular Expression,简称Regex)是一种强大的文本处理工具,它允许我们通过特定的模式(pattern)来搜索、匹配和操作字符串。在编程、数据分析和文本处理等领域,正则表达式发挥着非常重要的作用。本文将总结正则表达式的基本概念、使用方…...
性能测试04|JMeter:连接数据库、逻辑控制器、定时器
目录 一、连接数据库 1、使用场景 2、直连数据库的关键配置 3、案例 编辑 二、逻辑控制器 1、if控制器 2、循环控制器 3、ForEach控制器 三、定时器 1、同步定时器 2、常数吞吐量定时器(用的少,了解即可) 3、固定定时器 一、连…...
力扣刷题:二叉树OJ篇(上)
大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 目录 1.单值二叉树(1)题目描…...
【跨域】解决SpringBoot和openresty跨域问题
平时后端只需要写一个配置类就可以解决跨域但是最近的新项目死活不行 先说结论 项目中的权限校验(也可以是其他的)拦截器优先级高于跨域拦截器导致跨域处理失效 解决办法 1.在addCorsMappings上增加 Order(value -100)// 跨域优先级最高 2.nginx放行OPTIONS请求 SpringBo…...
下载ffmpeg执行文件
打开网址:Download FFmpeg 按下面步骤操作 解压文件就可以看到ffmpeg的执行文件了,需要通过命令行进行使用: ffmpeg命令行使用参考: ffmpeg 常用命令-CSDN博客...
SQLite 实际案例研究与创新应用
SQLite 作为一种强大而简单的数据库实现,应用于各类场景,从移动应用到物联网设备,再到边缘计算。在本章中,我们将通过几个典型案例,探讨 SQLite 如何在实际中解决复杂问题,并研究其创新应用的可能性。 案例…...
C语言 递归编程练习
1.将参数字符串中的字符反向排列,不是逆序打印。 要求:不能使用C函数库中的字符串操作函数。 比如: char arr[] "abcdef"; 逆序之后数组的内容变成:fedcba 1.非函数实现(循环) 2.用递归方法…...
【HDU】1089 A+B for Input-Output Practice (I)
1089 AB for Input-Output Practice (I):以EOF结尾的输入 Problem Description Your task is to Calculate a b. Too easy?! Of course! I specially designed the problem for acm beginners. You must have found that some problems have the same titles with this one,…...
[python3]Excel解析库-xlwings
xlwings 是一个强大的 Python 库,它允许你直接与 Microsoft Excel 进行交互。通过 xlwings,你可以轻松地在 Python 脚本或 Jupyter Notebook 中读取、写入和操作 Excel 文件,而无需手动打开 Excel 应用程序。此外,xlwings 还支持将…...
[python3]Excel解析库-xlutils
xlutils 是一组用于处理 Excel 文件的 Python 库,它实际上是 xlrd 和 xlwt 的扩展,提供了额外的功能来操作 Excel 文件。xlutils 主要由三个部分组成:xlutils.copy、xlutils.filter 和 xlutils.view,它们分别用于复制和修改现有 E…...
React中的合成事件
合成事件与原生事件 区别: 1. 命名不一样,原生用纯小写方式,react用小驼峰的方式 原生:onclick React的:onClick 2. 事件处理函数的写法不一样 原生的是传入一个字符串,react写法传入一个回调函数 3.…...
记录一次电脑被入侵用来挖矿的过程(Trojan、Miner、Hack、turminoob)
文章目录 0、总结1、背景2、端倪3、有个微软的系统更新,就想着更新看看(能否冲掉问题)4、更新没成功,自动重启电脑5、风险文件(好家伙命名还挺规范,一看名字就知道出问题了)6、开机有一些注册表…...
牛客网刷题 ——C语言初阶(5操作符)——BC107 矩阵转置
1.题目描述:BC107 矩阵转置 牛客网OJ链接 KiKi有一个矩阵,他想知道转置后的矩阵(将矩阵的行列互换得到的新矩阵称为转置矩阵),请编程帮他解答。 输入描述: 第一行包含两个整数n和m,表示一个矩阵包含n行m列…...
【调试记录】在CARLA中插入可以播放视频的组件
〇、问题描述 做实验验证的时候,需要在CARLA仿真环境中添加一个可以播放视频的功能,查了很多现有的实验,基本都是插入图像,而对于插入视频,实现的方法就很麻烦了。一开始考虑的是直接用射影变换进行叠加,计…...
【Linux】RPMSG通讯协议介绍
RPMSG协议通讯协议介绍 RPMSG,全称Remote processor Messaging。是一种核间通讯协议。在Linux Kernel中,已经内置了RPMSG。 Linux RPMSG基于共享内存,利用RPMSG可以高效的实现核间通信。比如Linux与FreeRTOS、Linux与Android,都可…...
Branch-Solve-Merge Improves Large Language Model Evaluation and Generation
题目 分支-求解-合并改进了大型语言模型的评估和生成 摘要 大型语言模型(LLM)经常用于多方面的语言生成和评估任务,这些任务涉及满足复杂的用户约束或考虑多个方面和标准。然而,由于模型缺乏一致性,无法计划和分解问题,他们的表现…...
SqlSugar-文章目录
SqlSugar学习总结1(基础操作) SqlSugar学习总结2(主从复制-数据库配置) SqlSugar学习总结3(主从复制-读写分离) SqlSugar学习总结4(树形递归查询) SqlSugar学习总结5(映射)...
如何理解RDD,以及RDD的五大特性和五大特点。
RDD:英文全称Resilient Distributed Dataset,叫做弹性分布式数据集,代表一个不可变、可分区、里面的元素可并行计算的分布式的抽象的数据集合。 Resilient弹性:RDD的数据可以存储在内存或者磁盘当中,RDD的数据可以分区…...
umd格式
umd格式是啥? umd格式是一种通用模块,他同时支持AMD、CJS、ESM模块和全局变量的方式 umd格式打包后的基本代码结构如下: (function (root, factory) {if (typeof define function && define.amd) {// AMDdefine([dependency], factory);} el…...
node.js之---内置模块
在 Node.js 中,模块系统是基于 CommonJS 模块规范 的,这使得开发者可以将代码分成多个独立的模块进行管理。Node.js 提供了很多 内置模块(也称为 核心模块),这些模块可以直接在代码中使用,而无需安装额外的…...
linux下安装达梦数据库v8详解
目录 操作系统、数据库 1、下载达梦数据库 2、安装前准备 2.1、建立数据库用户和组 2.2、修改文件打开最大数 2.3、挂载镜像 2.4、新建安装目录 3、数据库安装 4、配置环境变量 5、初始化数据库实例 6、注册服务 7、使用数据库 8、卸载数据库 9、多实例管理 10、…...
深入理解 Android 中的 ApplicationInfo
深入理解 Android 中的 ApplicationInfo 在 Android 开发中,ApplicationInfo 是一个非常重要的类,它包含了关于应用程序的元信息。这些信息通常是从 AndroidManifest.xml 文件中提取的,开发者可以通过 ApplicationInfo 类来获取和操作这些信…...
【vLLM】使用PagedAttention 进行大型语言模型的高效内存管理
重磅推荐专栏: 《大模型AIGC》 《课程大纲》 《知识星球》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经…...
STLG_01_12_程序设计C语言 - 联合体和枚举类型
在C语言中,联合体(Union)和枚举类型(Enum)是两种不同的数据结构,它们各自有特定的用途和特点。 联合体(Union) 联合体是一种数据结构,允许在相同的内存位置存储不同的数…...
ThreadLocal详解:深入探讨导致JVM内存泄露的原因及预防措施
引言 ThreadLocal 是Java提供的一个线程局部变量工具,它使得每个线程都可以拥有自己的变量副本,而这些副本对于其他线程而言是不可见的。这在多线程编程中非常有用,因为它可以避免共享资源带来的同步问题。然而,如果使用不当&…...
【FlutterDart】 拖动改变 widget 的窗口尺寸大小GestureDetector~简单实现(10 /100)
上效果 预期的是通过拖动一条边界线改变窗口大小,类似vscode里拖动效果。这个是简单的拖动实现 上代码: import package:flutter/material.dart;class MyDraggableViewDemo extends StatelessWidget {const MyDraggableViewDemo({super.key});override…...
【FlutterDart】 拖动边界线改变列宽并且有边界高亮和鼠标效果(12 /100)
【Flutter&Dart】 拖动改变 widget 的窗口尺寸大小GestureDetector~简单实现(10 /100) 【Flutter&Dart】 拖动边界线改变列宽类似 vscode 那种拖动改变编辑框窗口大小(11 /100) 上效果 对比一下vscode的效果&…...
鸿蒙应用开发(2)
鸿蒙应用开发启航计划-CSDN博客 鸿蒙应用开发(1)-CSDN博客 没看过前两篇的,建议请先看上面。 如果你学习完了前两篇,那么你学习这篇文章,就很容易理解了。 这一篇文章将介绍声明式UI的 渲染控制。你需要了解的是&…...
js -动态主题色
学习参考来源: 峰华大佬:https://www.bilibili.com/video/BV1E64y1Z79Q/?spm_id_from333.1391.0.0&vd_sourcea0f31140205458776d3a4ef477cd6561 实际效果: http://www.qingkong.zone/laboratory?typetheme-color 前言 本文内容可结合上…...
connect to host github.com port 22: Connection timed out 的解决方法
原因是 Github 被 GFW 屏蔽了。 Windows 系统,打开 C:\Windows\System32\drivers\etc,复制其中的 hosts 文件至桌面,用文本编辑器或者其他工具打开。 复制以下内容进去: 140.82.114.4 github.com 151.101.1.6 github.global.ss…...