自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 问答 (1)
  • 收藏
  • 关注

原创 FlinkCDC实战:将 MySQL 数据同步至 ES

CDC (Change Data Capture) 是 变更数据获取的简称。核心思想是监测并捕获数据库的变动(数据或数据表的插入、更新以及删除等),将这些变更按发生的顺序完整地记录下来,写入到消息中间件中以供其他服务进行订阅并消费。Flink 社区开发了 flink-cdc-connectors 组件,这个一个可以直接从 MySQL、PostgreSQL等数据库直接读取全量数据和增量变更数据的source 组件。

2024-12-09 10:46:19 1978

原创 代码整洁之道第九期:测试并发代码的艺术

并发代码的问题往往在生产环境中才暴露,而这对用户和开发者来说都是一场灾难。本期将探讨如何通过测试来提前发现并发问题,保证代码的稳定性。并发代码的正确性是系统稳定运行的基石。通过合理的测试策略,我们能够在问题进入生产环境之前解决它们。某电商平台在促销高峰期出现订单重复提交问题。原因是多个线程在同时更新库存时未正确加锁。使用专门的工具(如 FindBugs、CheckThread)静态分析并发问题。将测试运行多次,增加发现问题的可能性。确保并发测试覆盖了所有可能的逻辑分支。

2024-12-09 09:41:27 369

原创 代码整洁之道第八期:并发编程的挑战与防御之道

随着多核处理器的普及,并发编程已成为现代软件开发的重要部分。然而,并发代码的维护和调试却充满挑战。本期从《代码整洁之道》的第13章中提取精华,探讨并发编程中的难点与防御原则。并发编程的关键在于限制复杂性,而不是试图彻底消除并发带来的问题。通过遵循上述防御原则,我们可以构建更加健壮的并发系统。使用消息队列(如 Kafka)实现线程之间的异步通信,解耦线程依赖。在多线程环境下,上述代码可能导致数据不一致,因为。每个线程只做一件事,避免复杂的线程间交互。使用不可变对象和并发集合(如。

2024-12-09 09:39:04 419

原创 JVM 性能调优以实现高吞吐量和低延迟(内附相对较优调优参数)

在 NUMA 系统中,处理器连接到本地内存,并且每个处理器可以比连接到其他处理器的内存更快地访问自己的本地内存。与所有处理器对所有内存的访问时间相同的统一内存访问 (UMA) 系统相反,NUMA 系统由于本地内存与远程内存的延迟不同而具有不对称内存访问。NUMA 架构通常用于具有多个处理器(或插槽)的大型服务器,通过确保尽可能在本地访问内存可以提高性能。

2024-12-07 09:31:17 1224

原创 代码整洁之道第七期:解耦与高内聚

解耦和高内聚是代码设计的黄金法则。模块之间独立性越强,系统越易于维护;模块内部协作性越高,功能越完整。本期探讨如何通过解耦和高内聚,编写灵活、可扩展的模块化代码。如果需要大范围改动,解耦可能不足。将庞大的接口拆分为更小、更专注的接口,减少依赖冗余。将相关功能打包到一个模块内,避免分散在多个地方。每个模块只负责一项职责,减少逻辑混杂的风险。通过模块组合简化复杂逻辑,提升代码可维护性。依赖抽象而非具体实现,提升模块间的灵活性。如果模块过于复杂,考虑拆分为更小的子模块。检查模块是否彼此引用,可能需要重构。

2024-12-07 09:13:06 336

原创 代码整洁之道第六期:持续集成与交付(CI/CD)

在现代软件开发中,手动测试和部署已经难以满足快速迭代的需求。持续集成(Continuous Integration, CI)与持续交付(Continuous Delivery, CD)通过自动化流程,帮助开发团队快速发现问题、缩短发布周期。包括单元测试、集成测试、端到端测试等,确保代码符合预期。每次代码推送到仓库时,触发 CI 工具运行构建流程。自动化替代手动流程,减少代码提交到上线的等待时间。将部署包推送到目标环境(测试、预发布或生产)。将通过测试的代码打包为可部署的应用。

2024-12-07 09:09:59 466

原创 使用 Vue 和 Canvas-Confetti 实现烟花动画特效

弹出一个对话框,加载基于用户等级的 Lottie 动画。配合对话框的展示,启动烟花特效(),模拟庆祝场景。用户关闭对话框时,清除动画和特效。对话框弹出时加载用户特定的动画。使用模拟烟花特效,持续 15 秒。对话框关闭时清理资源,避免性能问题。这种效果非常适用于用户晋级、任务完成等场景,希望本文能对你有所启发!

2024-12-06 09:42:09 1158

原创 代码整洁之道第五期:测试驱动开发(TDD)的魅力

测试驱动开发”(Test-Driven Development, TDD)是一种以测试为核心的开发方法,通过先编写测试,再开发功能代码,不断循环迭代,让代码从一开始就具备高质量和高可靠性。TDD 的核心在于覆盖所有需求,但如果需求不明确或漏写测试,容易出现遗漏。TDD 让开发者从使用者的视角出发,思考功能需求,避免陷入实现细节。有了完善的测试保障,开发者可以大胆重构代码,而无需担心意外问题。的实现,比如引入用户数据库查询逻辑,同时确保测试继续通过。与团队协作时,确保需求文档清晰,列出所有可能的测试场景。

2024-12-06 09:31:29 687

原创 代码整洁之道第四期:注释与代码风格

编写代码时,注释和风格常常被忽视,但它们却是软件开发中至关重要的沟通工具。注释能帮助解释代码逻辑,而良好的风格则能让代码更清晰易懂。本期我们深入探讨如何正确地使用注释和维护一致的代码风格,让代码与读者无缝对话。如果需要过多注释解释一段代码,可能意味着代码本身过于复杂或命名不当。在团队项目中,代码注释不一致或风格杂乱无章导致代码审查效率低下。注释的作用是解释代码中看不出来的背景信息,而不是重复代码内容。一致的代码风格可以提高团队协作效率,降低代码审查和维护成本。

2024-12-06 09:27:28 991

原创 代码整洁之道第三期:函数设计的艺术

函数是代码的基本单位,优秀的函数设计直接影响代码的可读性、可测试性和可维护性。然而,许多开发者在实现功能时往往倾向于堆砌逻辑,使得函数变得冗长复杂。实际项目中,经常遇到难以维护的长函数。例如,一个用户注册函数可能包含输入验证、存储数据库、发送邮件等多个职责。在一个项目中,遇到了一个负责处理日志的函数,功能包含了日志记录、格式化、以及写入文件的操作。每个函数只完成一个明确的职责。副作用是指函数在执行时,除了返回值,还改变了外部的状态或环境。短小的函数便于阅读和理解,让开发者一眼就能掌握其核心意图。

2024-12-05 09:45:27 792

原创 代码整洁之道第二期:命名的重要性

命名不仅仅是给变量、函数和类取个名字,它直接决定了代码的可读性和维护成本。本期,我们从多个维度探讨如何提高命名的质量。在日常编程中,不妨多花一分钟思考命名,用高质量的命名提升代码的可读性。多次出现相似名称导致覆盖变量,后来通过规范命名解决。这样的临时变量,后来调试发现根本不知所云。改进:即使是临时变量,也要清晰命名,如。编写整洁代码的第一步是学会如何。

2024-12-05 09:41:36 303

原创 代码整洁之道读后感第一期:编写整洁代码,从理念开始

在《代码整洁之道》中,作者罗伯特·C·马丁深入探讨了整洁代码的本质与方法,本期文章将带你了解整洁代码的核心理念。技术债务是因为短期快速开发而产生的隐患,它可能表现为糟糕的命名、不良的结构设计或混乱的依赖关系。整洁代码是一个追求的过程,不是一蹴而就的结果。代码应该是“测试友好”的,复杂的依赖应通过注入或模拟进行隔离。“整洁的代码看起来像是由某个懂得它在做什么的人写出来的。最糟糕的代码是连作者自己三个月后都看不懂的代码。如今,我会用更小的粒度分解问题,并注重代码的。编写代码是开发者的日常工作,但编写。

2024-12-05 09:37:58 205

原创 Spring Boot 实现 MySQL 单表百万数据分库分表实战指南

通过本文,我们用 Spring Boot 和 ShardingSphere 实现了一个实际的分库分表案例。分库分表能有效提升系统的性能和扩展性,但需要根据业务场景灵活选择。

2024-12-04 10:01:00 550

原创 使用 EasyExcel 实现高效的 Excel 读写操作

EasyExcel 是一个功能强大且高效的 Excel 操作工具。它通过简化代码结构、优化性能和丰富的功能支持,成为 Java 开发者处理 Excel 文件的首选库。通过本篇博客的讲解,相信你已经掌握了 EasyExcel 的基本用法和高级功能,能够在实际项目中高效处理 Excel 文件。

2024-12-04 09:48:23 1141

原创 Java 虚拟线程

虚拟线程是由 JVM 管理的轻量级线程,通过将 Java 线程与操作系统线程解耦来实现高并发。与受系统资源限制的传统线程(称为平台线程)不同,虚拟线程在用户空间中管理,可以在不压垮系统的情况下实现数百万个并发操作。

2024-12-04 09:36:27 1275

原创 Spring Boot 3.4.0 发布:功能概览与示例

Spring Boot 3.4.0 带来了许多增强功能,使现代应用开发更加高效、便捷和强大。以下是最新功能的完整概述,以及一些帮助您快速入门的代码示例。启用 JSON 或结构化日志记录时,Spring Boot 的启动横幅会自动禁用,以减少日志混乱。Spring 现原生支持虚拟线程,可用于任务调度和异步处理,无需再添加。支持多个 Docker Compose 文件,适用于不同环境的配置合并。支持 Hibernate 的本机属性,提升了兼容性和配置灵活性。,支持自定义配置的运行和测试。

2024-11-29 11:16:30 1458

原创 产品设计 —— 订单相关

用户在线选购商品,支付完成后生成提货码,到商家指定的门店或提货点自提商品。

2024-11-29 09:32:03 1474

原创 Java 23 的新功能

JEP 是 Java 开发的一部分。它定义了功能增强和变更的提案。点击这里查看完整介绍。目录JDK 23 的新功能概述JEP 455:模式中的原始类型、instanceof和switch(预览)JEP 466:Class-File API(二次预览)JEP 467:Markdown 格式的文档注释JEP 469:Vector API(第八次孵化)JEP 473:Stream Gatherers(二次预览)JEP 471:弃用的内存访问方法JEP 474:ZGC 默认采用分代模式。

2024-11-28 10:12:39 658

原创 产品设计 —— SKU SPU

从运营角度出发,多个 SPU 可关联 相同的 SKU,如现货速发的 Iphone14 和 24期免息Iphone14 手机,两个不同的 SPU 商品,但是关联着相同的 SKU,库存公用。同一个 SKU,不同渠道或投放不同活动,可设置不同价格与库存。组合SKU,把不同的 SKU 商品组合成一个商品。通过规格属性组合成不同的 SKU,具体到商品最小可售卖单位、库存、价格。流程:开始发布→发布商品 → 选择渠道 → 设置渠道单价 → 设置渠道库存 → 发布渠道 → 完成发布。商品类型:实物商品、虚拟商品…

2024-11-28 09:53:42 1287

原创 产品设计 —— 商品属性库

定义:描述商品的特征信息。分为属性项及对应属性值,如手机品牌为属性项,苹果、华为为属性值。属性可用于商品搜索和商品列表筛选。

2024-11-27 11:09:33 403

原创 产品设计—— 商城分类

后台类目是将商品进行统一和标准化管理,主要是商家和平台运营的使用。商家在发布商品时,他们第一步要选择先对应的后台类目,要注意的是。然后再填写商品的组合好的基本属性和销售等信息。因为这些属性都是挂在类目上,不同类目下挂载的属性可能都不一样。运营同学则负责类目的日常管理,包含类目的增删改查、基础属性挂载、销售属性挂载、品牌挂载,设置继承关系等等。运营同学在配置类目过程中,尽量考虑周全,避免后期的频繁修改和删除类目,尤其是已在叶子类目下挂有商品的就更不能随便被删除了。前台类目面向用户,方便用户筛选查找商品。

2024-11-26 17:24:49 937

原创 Linux系统安装

第一节:VMware虚拟机的安装与使用                      VMware是一个虚拟PC的软件。可以在现有的操作系统上虚拟出一个新的硬件环境(相当于模拟一个新的PC)             VMware的主要特点:                                     ①不需要分区或者重新启动就能在同一台PC机上使用两种以上的操作系统。

2017-01-27 14:45:25 334

原创 (算法)求最大公约数和最小公约数

最大公约数定义:                      最大公约数(最大公因数)就是几个数公有的因数中最大的一个.最小公倍数定于:                     最小公倍数就是几个数公有的倍数中最小的一个.求最小公倍数的算法:(两个数的乘积/最大公约数)求最大公约数的算法:1.辗转相除法                有两个整数a,b 

2017-01-18 21:10:25 1317

原创 java之集合基础学习

集合继承体系图集合框架         由来:数组的长度是固定的,当添加的元素超过数组的长度时,需要对数组重新定义,太麻烦,Java内部给我们提供了集合类,能存储任意对象,                       长度是可变的,随着元素的增加而增加,元素的减少而减少。           数组和集合之间的区别:            区别1:a:数组

2017-01-12 00:37:53 479

原创 SQL Server 中行转列 列转行

行转列:Create database Teston primary (    name='Test.mdf',    fileName='D:\\project\Test.mdf',    size=10mb,    fileGrowth=15%)log on(    name='Test.ndf',    fileName='D:\\project\Te

2016-12-28 00:06:07 618

原创 匿名内部类

匿名内部类(内部类的简化写法):前提:存在一个类或者接口(这里的类可以是具体类或者抽象类)格式:new  类名或者接口名(){  重写方法; }本质:是一个继承了该类或者实现了该接口的子类匿名对象匿名内部类在开发中的应用: public static void main(String[] args) { //怎么调用Person中的method的方法呢

2016-12-18 23:40:42 253

原创 内部类概述

内部类的访问特点:                                                   a:内部类可以直接访问外部类的成员 包括私有                               b:外部类要访问内部类的成员 必须创建对象class Outer { class Inner{ public void print(){

2016-12-18 22:20:04 207

原创 java实现定时关机

public static void main(String[] args) { //定时关机 //显示当前时间 Calendar c1=Calendar.getInstance(); //创建当前时间的日历类对象 Date nowDay=c1.getTime(); //获取当前日期对象 SimpleDateFormat sdf=ne

2016-12-18 20:46:06 1945

转载 java反编译

eclipse安装JAVA反编译插件      前言:在实际的开发中几乎都会使用到一些框架来辅助项目的开发工作,对于一些框架的代码我们总怀有一些好奇之心,想一探究竟,有源码当然更好了,对于有些JAR包中的代码我们就需要利用反编译工具来看一下了,下面是我常使用的一种安装JAVA反编译工具的方法,操作比较简单,不过时间长了也容易忘记,还是在此小记一笔吧!毕竟好记性不如烂笔头(插件市场中有好多好

2016-12-18 18:47:00 240

原创 正则表达式(Regex)

定义:是指一个用来描述或者匹配一系列符合某个语法规则字符串的字符串 ,其实就是一种规则。、字符类:   []代表单个字符                    [abc]   a 或b或c其中的某一个字符                  [^abc]   任何字符 除了 a,b,c                  [a-zA-Z] a到z或A到Z   两头的字母

2016-12-16 00:33:33 494

原创 21种设计模式之——单例模式

单例模式      使用场合:适合一个类中只有一个实例的情况。比如任务管理器。      单例模式的必要要素:a)私有的构造函数                                          b)私有的静态静态字段                                          c)以自己为返回值静态公共的方法     单例在使

2016-11-13 10:35:44 311

原创 静态类和非静态类的区别

静态类:被static修饰符修饰非静态类:不被static修饰符修饰 调用方法:静态类是类名.静态成员                   非静态类就是先创建对象 再对象名.实例成员一个静态类中不能出现实例成员,因为静态类不能实例化对象一个非静态当中可以包括实例成员 也可以包含静态成员静态成员是随着类的加载而加载的,而实例成员是通过创建对象的时候才被

2016-11-12 09:59:30 327

原创 c#中的访问修饰符

c#访问修饰符public公共访问,不受任何限制private私有访问,只限于本类成员访问,子类和实例都访问不到,类中成员没写修饰符,默认为privateprotected受保护的,只能在本类或是子类中访问,实例不能访问internal内部访问,只限于在此项目中访问,其他都访问不到   如果类没写访问修饰符,默认为internal

2016-11-12 09:38:33 311

原创 基本控件

基本控件      Label  用于显示用户不能编辑的文本或图像  常使用他对窗体上的其他各种控件进行标注和说明                    属性:Image    在标签上显示的图像                                Text       在标签上显示的文本              TextBox 用于获取用户输入的信

2016-11-10 21:40:19 197

原创 部分类

部分类        关键字:Partial             在C#中为了方便对代码的管理和编辑,可以使用partial关键字将同一个类中的代码分开放在多个文件中。每个文件都是类的一部分代码,叫做分布类。代码编译时,编译器会把再将各个分布类的代码合并到一起进行处理。          好处:分离关注点,就是用分布类把程序员不需要关心的那些自动生成的代码剥离出去,可以使程序员

2016-11-10 20:37:34 292

原创 初识Winform

WinForm 解决方案管理器组成                     a)Form1.cs  窗体文件 代码放在这里面              b)Form.Designer.cs 窗体设计文件              c)Form1.resx资源文件                d)Program.cs主程序文件 包含Main()方法代码分

2016-11-10 20:26:31 278

原创 多态

多态          里氏转换原则:                                      a)子类可以赋值给父类(如果有一个地方需要一个父类作为参数,那么可以拿一个子类来代替)                                       b)如果父类中装的是子类,那么这个父类可以强转成子类                     

2016-11-10 14:42:52 156

原创 继承

继承     定义:我们可能会在一些类中,写一些重复的成员,我们可以将这些重复的成员单独封装到一个类中 作为这些类的父类       所有类都继承于obJect类。         子类会继承父类的属性和方法 但是父类的私有字段子类继承不了继承的两大特性:         1)单根性 。一个子类只能继承一个父类         2 )  传递性。隐藏

2016-11-09 23:56:16 227

原创 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-11-09 23:36:05 162

原创 记录基础学习第二_小项目_飞行棋小游戏

飞行棋项目:         1.游戏头(要求每一个句子显示不同的颜色 )  //这里用到了Console类中的ForegroundColor属性 取值是枚举类型ConsoleColor中的值                 eg:Console.ForegroundColor=ConsoleColor.Black;

2016-10-15 12:17:44 354

Flutter框架下构建跨平台应用程序的全面指南

内容概要:本书提供了详细的指导,帮助开发者从零开始学习如何利用Flutter框架构建跨平台的应用程序。书中首先介绍了Flutter的基础知识,如安装SDK、创建新项目以及初步探索应用程序结构。随后详细讲解了各类基本组件(Widgets)的用法,包括UI布局与主题定义、导航机制与页面管理技巧等关键概念。最后探讨了进阶话题,比如滚动视图(ListView、GridView)、交互控件的设计与实现方法。 适用人群:对跨平台移动应用开发感兴趣的新手开发者,希望系统掌握Flutter相关技术和最佳实践的专业技术人员。 使用场景及目标:为初学者提供一个循序渐进的学习路径,使他们能够快速上手并完成自己的第一个Flutter应用。同时涵盖中级内容如自定义卡片设计、列表显示优化等方面,旨在提升用户的开发技能水平。 其他说明:除了理论讲解之外,书中有大量实战演练环节,读者可以边读边练,确保理解和吸收每个知识点。此外还涉及到网络请求处理、数据持久化存储等高级特性介绍,有助于构建复杂且稳定的商业级产品。

2024-12-04

Java开发者指南:使用OpenAI ChatGPT进行文本分析与多模态应用

内容概要:本书为Java开发者提供了详细的指南,介绍了如何利用OpenAI的ChatGPT和其他API(如Whisper、DALL·E)进行自然语言处理和多模态应用。书中详细讲解了从基本的概念到实际的应用,包括创建聊天机器人、文本总结器、自动内容审核器以及音频视觉化工具。每一步都有代码示例,帮助读者逐步理解和实现各种复杂的任务,使Java开发者能够更好地集成AI技术到他们的项目中。 适合人群:具备一定编程基础,特别是Java开发者,对自然语言处理和机器学习有初步兴趣的研发人员。 使用场景及目标:适用于希望在企业级应用中引入ChatGPT和多模态AI技术的Java开发者。通过具体的实例,帮助开发者解决实际问题,提升生产力和用户体验,同时确保内容的安全性和合法性。 其他说明:书中不仅提供了代码示例,还强调了参数调优和提示工程的重要性。通过实际案例演示,帮助读者理解如何有效利用AI模型进行开发和优化。此外,书中的示例涵盖了多种应用场景,如社区管理、客服支持和内容审核,为开发者提供了丰富的参考资料。

2024-12-04

图神经网络在高光谱遥感图像特征提取与分类中的应用

内容概要:本文详细介绍了图神经网络(Graph Neural Networks, GNN)在高光谱遥感图像特征提取与分类中的多种方法和技术。首先探讨了高光谱图像的基本概念及其在不同领域的广泛应用,如土地管理、环境监测等。接着,论文提出了几种基于GNN的方法,包括多尺度卷积神经网络融合(MFGCN)、多接受野自适应路径聚合图神经框架(MARP)以及边卷积图神经网络等。每个方法都详细介绍了其架构、实验设置、性能评估指标和实验结果。实验结果显示,这些基于GNN的方法在分类准确性上显著优于传统的深度学习和机器学习方法。 适合人群:对图神经网络和高光谱遥感图像感兴趣的研究人员和工程师,尤其是有一定背景知识的研究生和科研工作者。 使用场景及目标:①了解图神经网络在高光谱遥感图像分类中的最新进展;②掌握不同GNN模型的设计原理和实现细节;③提升高光谱遥感图像分类的精度和鲁棒性。 阅读建议:由于本文涉及较多的技术细节和数学公式,建议读者提前复习相关基础知识,同时跟随实验步骤逐步理解和验证各个模型的效果。

2024-12-04

Spring 6框架实战指南:解决企业级问题的技术方案

内容概要:本书《Spring 6 Recipes》提供了一个基于问题-解决方案方法的Spring框架实用指南。书中介绍了如何利用Spring解决实际应用中的各种问题,涵盖了从基本的控制器设置到复杂的事务管理和数据访问等多个方面。例如,如何生成带有日期参数的报告,如何使用Spring MVC进行内容协商并返回不同格式的数据(如Excel、PDF),以及如何配置视图解析器等。 适合人群:对于希望提升Spring框架应用水平的企业级开发人员。 使用场景及目标:帮助企业开发者掌握Spring框架的实际应用场景和技术方案,提高项目开发效率和系统性能。 其他说明:本书不仅包含了具体的代码示例,还详细讲解了每一步的实现思路和最佳实践。

2024-12-04

Java 21实用方法论:构建健壮高效的应用程序

内容概要:本书《Code with Java 21: A Practical Approach for Building Robust and Efficient Applications》详细介绍了Java 21在实际应用中的最佳实践和技术要点。全书共分为多个章节,涵盖了Java基础知识、面向对象编程、数据结构与算法、数据库操作等多个方面,同时深入讲解了新的特性如虚拟线程、有序集合、字符串模板等。书中提供了大量的实例代码和项目实战指导,帮助读者掌握如何利用Java 21构建高性能、可靠的应用系统。 适合人群:具有基础Java编程能力的开发者,希望深入了解Java最新特性和最佳实践的技术人员。 使用场景及目标:适用于需要提高Java开发技能的企业和个人,旨在提升代码质量和系统性能,通过具体案例和项目实践巩固理论知识。 阅读建议:在学习过程中,重点理解和实践每个章节提供的实例代码,结合实际开发需求进行探索和改进。此外,可以通过书中的Discord频道获取更多支持和交流机会。

2024-12-04

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除