这个作业属于哪个课程https://bbs.csdn.net/forums/FZU_university_2026
这个作业要求在哪里https://bbs.csdn.net/topics/620518050
这个作业的目标<为本学期的软工实践学习做准备,也为新学期开始热身>
其他参考文献csdn构建之法社区,《构建之法》

文章目录


作业基本信息

回首过去

问题1

当时高考完IT行业行情还不错,第一志愿填报的是电气想冲一冲,福大在云南只招软工所以第二志愿报了软工。

问题2

期待就是毕业后优秀的就业前景和工资,至于想象就是长时间面对屏幕敲代码搞算法?

问题3

emmm…当时希望自己在暑假能提前学习编程算法,先别人一步,结果就是到处旅游四处完了ovo。当时报了学校acm队的训练吧,没跟下来,现在有些后悔。flag就是之前和家人说过会尽力冲保研的,结果从开学就一直在懈怠啊。。。

立足当下

  • 个人成长
    tags:
  • 简历
  • 软件工程
  • 学习总结
  • Java
  • C++
    description: 福州大学软件工程大三学生的阶段总结:C++ 与 Java 的真实代码量、四个项目、以及接下来要补的短板。

一、名片

昵称郑伟航
头像🧑‍💻
学校 / 专业福州大学 · 软件工程
年级大三在读
专业排名103 / 143
方向【暑期实习 / 考研 —— 两条线都在准备,尚未最终确定】
坐标【福州】
兴趣爱好🏀 篮球 · 🎮 游戏
联系【 3054173044@qq.com 】

关键词

C++ Java Swing JDBC Socket MySQL 数据结构 链表 IDEA Dev-C++ Git


二、专业水平

编程语言

语言熟练度代码量主要用途
Java能独立完成带界面的完整小系统≈1693 行Socket 网络通信、JDBC 数据库、Swing 界面
C++课程主力语言≈1479 行数据结构实现、多文件工程组织
合计≈3172 行

技术栈明细

类别内容用在哪里
网络编程ServerSocket / Socket / 多线程通信联机五子棋的服务端与客户端
数据库编程JDBC · DriverManager · PreparedStatement · ResultSet · 资源显式释放图书管理系统、DBUtil 工具类
桌面 GUISwing(JFrame / JPanel / JTable / JButton)· AWT 事件监听五子棋棋盘绘制、图书查询界面
设计模式(初步)DAO 分层(BookDAO / ReaderDAO / RecordDAO)· 工具类抽取library 工程
开发工具IntelliJ IDEA · Dev-C++ · VS Code · Git · MySQL Connector/J全部工程
课程基础数据结构 · 面向对象程序设计 · C++ 程序设计课程作业

代码量明细(可逐项核对)

Java   wuziqi(联机五子棋)          312 行   3 文件
       library(图书管理)           484 行   5 文件
       SQL(图书查询系统)           238 行   1 文件
       tanqiu(弹球动画)            257 行   1 文件
       untitled / untitled1         239 行   2 文件
       untitled2(Swing 练习)        75 行   3 文件
       tic-tac-toe / prime number     88 行   2 文件
                                    ─────────
                           小计     1693 行

C++    课程实践作业(链表)           446 行   3 文件
       C++ 程设练习                 1020 行   5 文件
       mycode 测试仓库                13 行   1 文件
                                    ─────────
                           小计     1479 行

总计                             ≈3172 行

三、项目经历

项目一:联机五子棋(Socket 网络对战)

技术栈:Java · Socket · 多线程 · Swing

这是我第一个"两个程序真的能互相说话"的项目,也是我理解网络编程的起点。

  • 服务端 GobangServer.java:用 ServerSocket(9999) 监听端口,为连入的客户端分配处理线程
  • 客户端 BlackClient.java / WhiteClient.java:new Socket("127.0.0.1", 9999) 建立连接,继承 JFrame 绘制棋盘,用 MouseAdapter 监听落子
  • 我的收获:搞明白了"黑棋"和"白棋"为什么必须是两个客户端 —— 状态不能只存在一台机器上,这就是分布式最朴素的形态
  • 踩过的坑:【补充一个真实的 bug,例如"客户端先启动会报 Connection refused" —— 面试官最爱问这个】
  • 规模:3 个类 / 312 行

项目二:图书管理系统(JDBC + DAO 分层)

技术栈:Java · JDBC · MySQL · Swing · DAO 分层

这个项目让我第一次把"数据库"和"代码"接起来。

  • 数据库工具类 DBUtil.java:封装 getConnection(),统一用 PreparedStatement 防注入,用 close(conn, pstmt, rs) 收口资源释放
  • DAO 分层:BookDAO(76 行)/ ReaderDAO(31 行)/ RecordDAO(94 行)—— 把 SQL 从界面代码里彻底剥出来,第一次体会到"分层"的意义
  • 界面 BookManageFrame.java(232 行):Swing 构建图书管理窗体,联动 DAO 完成增删改查
  • 依赖管理:手动引入 mysql-connector-j-9.7.0.jar —— 第一次知道 .jar 要放进 lib 并配置模块依赖
  • 规模:5 个类 / 484 行

项目三:图书查询系统(SQL 综合练习)

技术栈:Java · JDBC · Swing 表格

  • 单文件 238 行的完整查询工具:条件查询面板 + JTable 结果表格 + 排序功能
  • 用 DefaultTableModel 把 ResultSet 映射成表格数据 —— 第一次写"数据驱动界面"
  • 规模:1 个类 / 238 行

项目四:课程实践 —— 链表实现(第 1 次作业)

技术栈:C++ · 头文件与实现分离

  • 用 list.h 定义接口,list1.cpp / list2.cpp 分别实现,配套《实践报告1》
  • 这是我第一次理解声明与实现的分离 —— 也是后来看懂 Java 里 interface 的基础
  • 【补充:实现了哪些操作?插入 / 删除 / 遍历 / 查找?】
  • 规模:3 个文件 / 446 行

其他小练习

tanqiu(弹球动画,257 行)· Calculator(计算器,127 行)· tic-tac-toe(井字棋,49 行)· prime number(素数判断,39 行)· Swing 组件练习(JPanel / JScrollPane / 事件,75 行)


四、成果与获奖

项目内容
竞赛暂无
奖学金暂无
证书暂无
学生工作【组织部成员】

五、教育背景

学校福州大学
专业软件工程
年级大三在读
专业排名103 / 143
核心课程【数据结构、面向对象程序设计、C++ 程序设计、数据库原理、计算机网络 …… 只填真正上过的】

展望未来


七个我没想通的问题

《构建之法》第四版我读了第 1、2、3、4、6、8、9、12、13、16 章,剩下的章节是跳读的。有意思的是,读完能记住的几乎不是"流程""模型"这些词,而是几个卡住我的问题。

社区里的提问很多,我挑了七个:四个来自 CSDN 构建之法社区 的「书评&讨论」频道,三个来自社区里转述的其他同学的原问。它们有一个共同点 —— 都直接撞在我这两年的真实经历上。

总览
#问题关涉章节我的核心观点
1AI 工具是否改变了软件工程的根本?全书没改变根本,只换了瓶颈
2复杂项目里如何高效地进行程序理解?第 1 章理解成本是写代码时就埋下的
3学生如何像健身学员一样找到自身定位点?师生关系教练质量取决于学员输入质量
4初学者如何参与开源?第 3 章先要"第一个功绩",再谈高星
5人类软件工程师的角色将如何重新定义?第 1 章从构建者到验证者,但要验证的东西变了
6软件工程的核心为什么是权衡而非零缺陷?第 1 章"最佳实践"是带约束条件的答案
7要多少代码训练量才能写得高效且不易出错?第 2 章训练量不是重点,"不欠账"才是

问题一:AI 工具是否改变了软件工程的根本?

原问题:AI 工具是否改变了软件工程的根本?

关联章节:全书多处提及 AI 对软件工程的影响。上下文:书中承认 AI 工具在代码生成、测试等方面的作用,但仍强调软件工程核心不变。支持资料:1、GitHub Copilot 等工具已能生成复杂代码;2、AI 测试工具可以自动发现边界情况;3、但 AI 幻觉问题导致新类型缺陷产生。提问原因:这与我的观察产生疑问。如果 AI 能处理 90% 的编码任务(如 Kent Beck 所言),那"程序 + 软件工程 = 软件"的公式是否需要重构?软件工程师的价值是否正在从"写代改变了软件工程的根本?](https://bbs.csdn.net/topics/620008978)

我的思考:

我的答案是:根本没变,变的是瓶颈的位置。

需求、设计、评审、测试、维护、团队协作 —— 这六件事一件没少。变的是它们之间的成本结构:写代码变便宜了,于是验证代码变得昂贵了。

那个"90% 的编码任务"的说法,其实有个陷阱:它没说"90% 的功能交付"。我自己的经历很能说明问题。写图书管理系统时,我用 AI 辅助生成过一段 JDBC 查询逻辑,代码是对的、能跑,但里面混了 PreparedStatement 的参数绑定和一个我没想到的空值分支。我花了将近一个小时才真正读懂它在干什么 —— 那一刻我意识到:AI 没有替我省下工作,它只是把"写"的工作换成了"读"的工作。而读别人的代码,比读自己的代码难得多。

所以真正变的是:以前你的瓶颈是"我能不能写出来",现在你的瓶颈是"我能不能判断这段代码为什么是对的、在什么条件下会错"。这不但没有削弱软件工程,反而让协作规范、代码评审、测试这些"看起来不写代码"的东西变得更值钱了。

我给自己立了一条底线:AI 生成的代码,我必须能口头讲清每一个关键决策,讲不清就不合入。 这条底线在课程项目里会直接被我拿来用。


问题二:在项目或程序比较复杂的情况下,如何高效率地进行程序理解?

原问题:本书第一章概论(第 3 页)提到一个名词 —— 程序理解(Program Comprehension):「软件团队的人员也会流动,新的成员要尽快读懂已有的程序,了解程序的设计,这叫做程序理解。」这个问题是我在暑期实习时体会到的。在接受前团队成员留下的一个较为复杂的项目时,需要从多角度理解项目内容,例如系统业务流程、各模块功能、实现功能的代码等。需要理解的内容不仅仅是代码部分,往往需要从产品原型开始理解。在代码风格不同、注释比较少的情况下,如何高效率地完成程序理解呢?

🔗 原帖:构建之法社区 · 在项目或程序比较复杂的情况下,如何高效率地进行程序理解?

我的思考:

这个问题把第一章里一个不起眼的名词变成了实打实的难题。社区里那位朋友后来补的答案我觉得是对的 —— 先跑起来、按功能划分模块、再对照代码、最后集中攻没理解的部分。但我想补一句更难听的话:

程序理解最大的成本,不是读的时候产生的,是写的时候埋下的。

我拿自己的项目做了个实验。那个联机五子棋一共 3 个类 312 行:GobangServer 负责 ServerSocket(9999) 监听并给每个客户端分配线程,BlackClient 和 WhiteClient 各自继承 JFrame 画棋盘、用 MouseAdapter 监听落子。现在假设明天来一个同学要接手,他多久能跑起来?我没有把握说"半小时",因为里面有一堆只有我知道的隐性决策:

  • 为什么黑白棋要做成两个类,而不是一个类加一个 color 参数?
  • 为什么服务端要给每个客户端开线程?(因为一个线程阻塞在 read() 上,就没法同时管另一个连接)
  • 棋盘坐标为什么从 0 开始、边界判断为什么写成 >= 15?

这些"为什么"一个都没写在代码里。代码只记录了"怎么做"。

所以我的结论是:程序理解能力不是一种阅读技巧,而是一种写作纪律。 我能为将来的读者(包括三个月后的自己)做的最有效的事,就是在写的时候把路标立好 —— 模块名、关键注释、README,以及最重要的:一次提交做一件事的提交历史。

这条对我的下一步非常具体:给五子棋和图书管理这两个项目补上 README + 关键注释,验收标准就是"一个没看过这个项目的人,多久能跑起来"。


问题三:学生该如何像健身学员一样找到自身定位点,把握老师身上的那套健身资源,朝自己的目标前进呢?

原问题:第一次听到理想的师生关系为健身教练和健身学员的关系,感觉很新颖。我的问题是我们学生该如何做到像健身学员一样找到自身定位点,把握老师身上的那套健身资源,朝自己的目标前进呢?

社区里的追答:对于如何找到自身的定位点,实际上就是如何评估自身能力的问题,方法可以像《自我评价问题列表》那样,从硬实力和软实力两方面评估自己,再根据自身能力找到自己的定位和方向。

🔗 原帖:构建之法社区 · 学生该如何做到像健身学员一样找到自身定位点…?

我的思考:

"教练和学员"这个类比里,藏着一个容易被忽略的前提:教练的输出质量,取决于学员的输入质量。

健身教练能给你排计划,是因为他会问:你想练什么?有没有旧伤?一周能来几次?放到课程里就是 —— 我有没有带着具体的问题和具体的代码去找过老师?如果我从没问过,老师只能给我通用建议,那不是他不负责,是我没给条件。

这恰好是我过去两年做得最差的一件事:我几乎没主动问过问题。 总觉得自己代码量少、排名靠后,问出来的东西太基础,怕露怯。但看完这个帖子我明白了一件事:"我不知道该往哪使劲"这种问题之所以看起来没用,是因为它没带自述。一旦补上自述 —— “我写了 3172 行代码,Java 和 C++ 各一半,项目都是单机练手,没有团队协作经验,暑假想找实习但不知道简历该写什么” —— 它就立刻变成了一个可以回答的问题。

所以今年我给自己定了一条规矩:每两周至少带着一个具体问题找一次老师或助教,问题必须包含三样东西 —— 我做了什么、卡在哪、我试过什么。


问题四:初学者如何参与开源?

原问题:其实我的困惑更加集中于,非 CS 背景下的初学者,参与开源是否容易。以我个人的观点来说,在 GitHub 上寻找合适项目时,高星是容易吸引我的,但是初学者做到高星是很难的。所以更想知道如初学者到高星,成为一个合格的开源者,该如何去做。

社区里补充的挑战分析:初学者参与开源的核心挑战是"高门槛"与"低回报"的初期困境 —— 能力门槛(项目是"功绩制",你首先需要有"功绩",但初学者恰恰缺乏证明自己的能力)、社交与沟通门槛(异步文字交流容易误解,社区成员因忙碌显得冷漠,不熟悉行话与流程像个"局外人")、动力维持门槛(缺乏外部约束,正反馈延迟长,初期成就感低)。

🔗 原帖:构建之法社区 · 初学者如何参与开源?

我的思考:

这个问题有个隐藏前提值得挑明:它默认了"参与开源 = 给项目提交代码"。但其实门槛最真实的地方是那句"功绩制" —— 你要先有"功绩"才能证明自己,可你恰恰因为还没有任何记录,所以拿不到第一个"功绩"。这是个死循环。

我在简历上遇到过一模一样的结构:零竞赛、零奖项、排名 103/143,想投实习,简历大概率过不了初筛。死循环的破法和开源是一样的 —— 不去追大成果,去追第一个可以被看见的小贡献:

  • 修文档、补一个缺失的测试、复现一个别人报的 issue 并附上最小重现步骤。这些是初学者真能做的,而且维护者确实需要。
  • 把"高星项目"换成"有活跃维护、issue 有回复、有 good first issue 标签的小项目"。
  • 更重要的一点:对初学者来说,"持续"比"高星"重要得多。 第一个 PR 大概率被拒绝或者被要求改三轮,但一旦合入一次,你就从"局外人"变成了"有记录的人"。

我自己接下来的具体动作:先在 GitHub 上把自己项目的 README、.gitignore、目录结构整理到"别人能看懂"的程度 —— 这本身就是最小规模的开源,也是我能拿出来的第一个"功绩"。


问题五:如果 AI 工具能够自动生成大部分程序,人类软件工程师的角色将如何重新定义?

原问题:本问题来源于第 1 章,将 AI 工具的发展比作航空业"探索阶段"的 SpaceX 实验,强调快速试错与创新容忍度。现实中 GitHub Copilot、ChatGPT Code Interpreter 等工具确实能自动编写与调试代码,这似乎削弱了人工编码的地位。这个问题的提出是因为自己在使用 AI 编程工具时发现它虽能加速开发,但也容易产生隐藏错误,令我疑惑未来软件工程师是否会从"构建者"转向"监督者"或"集成者"。

🔗 原帖:构建之法社区 · 如果 AI 工具能够自动生成大部分程序,人类软件工程师的角色将如何重新定义?

我的思考:

“从构建者到监督者"这个说法我基本同意,但我想把"监督"这个词说得更具体一点,因为它太容易被理解成"看看有没有报错”。

真正的监督是能回答三个问题:这段代码的输入边界在哪?它出错的时候会怎么错?它和系统的其他部分在哪耦合?这三个问题 AI 都答不了 —— 不是因为它不够聪明,而是因为它不知道你的上下文。它不知道你的数据库里 reader 表的 id 可能为 NULL,不知道你们老师要求"不许用触发器",不知道你队友已经在前端假设了"查询永远返回至少一行"。

所以我更愿意这样定义角色:从"写代码的人"变成"定义约束的人 + 承担后果的人"。 约束包括:接口长什么样、错误怎么处理、什么情况算通过。

这件事对我职业规划的冲击是直接的 —— 见 4.2。它意味着我不该把全部筹码押在"我会写 Java"上,而应该押在"我能把一个需求拆成可验证的模块,并且能判断别人(包括 AI)写的代码对不对"上。前者在贬值,后者在升值。


问题六:为什么"软件工程的核心在于权衡(Trade-off)“,而不是追求"零缺陷"或"完美质量”?

原问题:本问题来源于第 1 章,指出软件工程的目标是在时间、成本与质量的约束下创造"足够好"的软件,而非完美的软件。这种观点与传统的质量管理理念形成对比。现实中,像 Windows、Android 这类大型系统,发布时仍包含大量 Bug,却能通过持续集成与补丁维护保持可用。我提出这个问题,是因为我过去一直把"完美无 Bug"视为软件工程的终极目标,但书中认为"权衡"才是核心,让我反思在实际项目中如何判断"足够好"的边界。

🔗 原帖:构建之法社区 · 为什么"软件工程的核心在于权衡(Trade-off)“,而不是追求"零缺陷"或"完美质量”?

我的思考:

我认同"权衡",但我想说得更狠一点:在软件工程里,"最佳实践"是一个危险的词。

因为几乎每一条最佳实践都是"某个团队在某种约束下的最优解",不是普遍真理。分层架构好不好?看项目规模。单元测试覆盖率要高不高?看这段代码的寿命。文档要不要写全?看这个模块半年后还有没有人碰。

我可以举一个自己项目里的真实取舍。图书管理系统一共 5 个类 484 行:DBUtil 封装连接和资源释放,BookDAO / ReaderDAO / RecordDAO 各管一张表的 SQL,BookManageFrame 管界面。按"最佳实践",对一个 500 行不到的项目做严格 DAO 分层其实是过度设计 —— 直接在一个类里写 SQL 完全够用,而且更快。

但我还是做了分层,因为我的目的不是"让这个项目更好",而是"让我自己学会分层这个动作"。这个选择在工程上未必最优,在学习上却是合理的。这就是权衡的另一面:目标不同,最优解就不同。

所以"足够好"的边界在哪?我的答案是:边界由"这个软件的失败代价"决定。 我的课设崩了,代价是我重修;医疗软件崩了,代价是人的生命。所以判断标准不该是"还能不能更好",而该是"这个系统最不能错在哪里"。先划出这条底线,剩下的才谈效率。


问题七:我们需要拥有什么样的基础知识,以及经过多少的代码训练量,才能写出高效且不容易出错的代码?

原问题:我们需要拥有什么样的基础知识,以及经过多少的代码训练量可以达到,自己写的代码高效且不容易出错?(问题来自社区对读者博客的转述与讨论)

🔗 原帖:构建之法社区 · 我们需要拥有什么样的基础知识,以及经过多少的代码训练量…?

我的思考:

这个问题我一看就笑了,因为它的两个关键词 —— “训练量"和"不容易出错” —— 正好戳中我简历上那行数字:

Java   ≈ 1693 行
C++    ≈ 1479 行
合计   ≈ 3172 行

三千行,不算多。但我在意的是另一个数字:这 3172 行里,有多少是我能讲清楚、并且经得起别人提问的。

先说"不容易出错"。我认为把"零 Bug"当目标是错的 —— 因为 Bug 数量根本不是一个可比的指标。50 行能跑通的计算器和 500 行带数据库的系统,Bug 数量没有可比性。真正有用的指标是"缺陷密度"(每千行代码的缺陷数)和"返工次数",而这两个数字只有在记录的前提下才有意义。所以 PSP 那套东西的价值不在于数字本身,在于它逼你诚实面对"我到底花了多少时间、在哪儿摔了跤"。

再说"训练量"。我的结论是:别去追行数,去追"完整的返工经历"。 一个人写了十万行 CRUD,可能一次都没经历过"上线后出了线上事故,我顺着日志和提交历史定位到三个月前自己埋的那个坑"。而后者才是真正的成长。要走到那一步,其实不需要十万行 —— 需要一个真有人用、真有反馈的东西。

所以对我自己,目标不是"再写一万行",而是:在课程里做一个真有人用的小东西,完整经历一次需求 → 设计 → 实现 → 测试 → 交付 → 收到反馈 → 返工。 一次完整的闭环,胜过多写三千行。


我未来的职业规划

考研,我会优先考虑专业课考 408 、且对211出身相对友好的985院校,具体目标院校等 3 月再定 —— 现在写下来只会是自我安慰TT。


我对软件工程实践课程的理解和期望

一、我的理解:这门课教的不是"写代码",是"让代码活下来"

我上过 C++ 程序设计、数据结构、面向对象程序设计。这些课的共同点是:作业交上去的那一刻,代码的使命就结束了。 它能不能被别人看懂、加了新需求会不会崩、三个月后我自己还记不记得为什么这么写 —— 没人问,我也不关心。

软件工程实践课在我看来是第一次要面对这些问题。它不是再教一门语言,而是教我:

  • 软件 ≠ 程序。 一个能跑的程序,加上文档、版本控制、测试、协作流程、以及后续的维护计划,才叫软件。
  • 流程是有意义的。 需求 → 设计 → 实现 → 测试 → 发布 → 维护这条链条,我以前觉得是"背概念",现在明白它是把不确定性一步步消掉的顺序。跳过需求分析直接写代码,就是在赌自己猜对了用户想要什么。
  • 协作是被工程化过的。 代码评审、接口定义、任务拆解、估算 —— 这些东西的存在不是为了增加流程,是为了让"三个人一起写"不至于变成"三个人互相拖累"。

二、我希望学到的技术

只列一个最重要的:Java 后端开发(Spring Boot + MyBatis + MySQL + Maven + JUnit)。

为什么是它?因为它是我现有能力和目标岗位之间的最短路径:

我现在会的缺的
Java 基础语法、面向对象主流框架(Spring / Spring Boot)
JDBC + PreparedStatement 手写 SQLORM / 连接池 / 事务管理
Swing 桌面界面(已过时)RESTful API 设计、前后端分离
手动往 lib 塞 jar 包Maven 依赖管理
没有测试JUnit 单元测试

注意:我要的不是"老师讲一遍 Spring 的用法" —— 这种东西 B 站和官方文档讲得比课堂清楚,我自己能学。我希望课程给我的是那些自学学不到的东西:真实的代码评审意见、有约束的项目经历、以及"你的设计会在第三周出问题"这种只有带过项目的人才能给出的判断。

三、我希望能提高的能力

按"我最缺"排序:

  1. 把一个模糊需求拆成可执行任务的能力。
    课程项目开始前,我需要产出:功能列表、优先级、任务拆解(WBS)、工作量估算。这门课最实际的收获之一,应该是让我从"给我需求我就写"变成"这需求我拆成 6 个任务,估 15 小时,风险最大的是第 4 个"。

  2. 接口设计能力。
    我现在写代码的习惯是"写到哪算哪"。团队项目里这样必然出事 —— 我和队友对同一个方法名、同一个返回值格式的理解可能完全不同。我希望被迫在写代码之前,把接口先定下来。

  3. 代码评审能力(提出和接受)。
    我从没让别人认真读过我的代码,也从没认真读过别人的。这是我最心虚的一项 —— 因为写代码的人看不出自己的问题。

  4. 工程化习惯。
    Git 提交有粒度、有信息量;README 能让陌生人跑起来;错误处理不是 e.printStackTrace() 了事。

  5. 估算与记录能力。
    我从来没有记录过"这个功能实际花了多久"。没有这个数据,我的所有"我觉得两天能做完"都是空话。

  6. 文档与表达能力。
    写清楚"我做了什么、为什么这么做、放弃了什么方案"。这项能力在面试里的权重,比我以前以为的高得多。


思维导图和学习路线

思维导图。在这里插入图片描述


学习路线在这里插入图片描述

…

Logo

AtomGit AI 社区提供模型库、数据集、Agent、Token等资源

更多推荐