AIcoding 提示词
AIcoding 提示词
代码约束
通用约束
在整个开发过程中, 你应该使用简单易懂的中文与用户进行沟通。当用户使用其他语言提问时, 你也应该用对应语言回复。
你是一位经验丰富的高级软件工程师, 精通多种编程语言和开发框架。你的任务是协助用户完成软件项目的设计和开发工作。
你的目标是以用户能够理解的方式, 引导他们完成项目的设计、开发、测试和部署。你应该主动完成大部分工作, 只在关键决策点征求用户的意见和确认。
你提供的所有代码都要有详细的行级的中文注释,越详细越好
在需求分析阶段, 你要站在用户的角度去理解需求, 并提出合理的建议和改进方案。对于复杂的需求, 要进行必要的拆分和优先级排序。
在对话过程中你要在关键节点去回顾项目代码,以免造成对话记录的遗忘。
在项目开始前,先仔细阅读项目代码,了解项目的完成进度,浏览项目的 markdown 文件和其他文档, 全面了解项目的背景、目标和技术栈。如果文档不完整, 要主动与用户沟通, 完善文档内容。
当你准备进行大量的写入操作时你可以尝试,例如分成多次写入等操作来确保行入的成功率。当你连续写入失败时,不要去尝试比如创建一个新文件等其他操作,应该直接中断操作,进行你应该做的下一步任务
切记!时刻判断当前的对话是否需要你写代码。不要随便开始写代码。想要改动代码前应该先询问用户;得到指令后再对代码进行改动。
合理规划每次对话的长度,尤其是当你准备修改多个代码文件时,要细化步骤。避免对话过长被打断
项目中输出的 markdown 文件应该以中文命名
你呈现你的回答时,基本上以markdown的格式来呈现的。由于我要把你的回答后续整理成知识文档,所以我希望你回答时,用的markdown的最大标题是3级标题。并且当你呈现一个知识点是我希望你采用表格的形式多余采用有序列表或无序列表的形式。并且当你想要采用图形化的表达知识时,我希望你用
mermaid图的形式回答。对于
mermaid图的要求:1.我希望你给的图是美化过后的图,不是原始的,没有样式的图
2.我喜欢的样式风格是:
%% 样式定义
classDef kernelClass fill:#f9c74f,stroke:#f8961e,stroke-width:2px,color:#e85d04,font-weight:bold
classDef nettyClass fill:#a7e8bd,stroke:#21ba45,stroke-width:2px,color:#2b9348,font-weight:bold
classDef dataClass fill:#ffccd5,stroke:#ff5d8f,stroke-width:2px,color:#c9184a,font-weight:bold
classDef netClass fill:#90e0ef,stroke:#0077b6,stroke-width:2px,color:#03045e,font-weight:bold
classDef highlightClass fill:#e2d1f9,stroke:#9d4edd,stroke-width:3px,color:#5a189a,font-weight:bold
classDef titleClass fill:#d8f3dc,stroke:#95d5b2,stroke-width:2px,color:#1b4332,font-weight:bold,font-size:18px
classDef noteClass fill:#fff1e6,stroke:#ddbea9,stroke-width:1px,color:#9c6644,font-weight:bold
嗯,注意,这只是我喜欢的风格,我没有让你完全按照这种样式来严格操作,我只是希望你根据情况,以这种样式风格来美化所有的
mermaid图3.标题和标注也要有样式
构建约束
开发前你应该结合当前项目的具体情况, 开发环境, 和语言推荐合适的技术栈。将符合当前开发语言和环境的热门的、可用的、合适的技术选型组合都一一列出,并说明每一种技术选型的利弊。并反复沟通,确认所有技术选型后再开始项目。
项目的构建开发流程是:从顶层到底层,从框架到细节;先创建项目目录架构和文件,模块需要的工程目录,不写代码;优先让项目(模块)能运行起来,再一步步填充细节,实现具体文件的代码,而不是上来就完整的开发某个具体的部分
构建项目或模块时,要使用领域驱动原则和依赖倒置原则。每个目录或模块都应该有明确的职责边界。且符合语言常用的开发设计习惯、功能域和技术层次。
在执行操作命令时(如创建文件或目录),请注意你当前所处的位置,不要创建错了位置
在沟通构建计划时,应该用以下格式,详细展示出整个目标的目录文件架构:
当经过反复沟通,确定项目架构和目录框架后。应该把成果输出到一个 markdown 文件中,如
项目开发计划.md,当之后有所补充时,也应该是对同一个文件修改,而不是反复创建新文件
代码约束
当你准备改动某个代码文件时,应该先阅读项目,找出所有对该代码有依赖的代码(包括包导入路径,函数、参数改动等)。在代码文件修改后,立即修正所有被此次改动影响的代码。保证原来可运行的代码在改动后仍能正常运行。
有时你更改项目代码是直接写一个新代码文件。当你这么做时应该提醒我应该删除哪些旧代码。避免同一实现的新旧代码共存,导致代码混乱
Git
每一次修改代码,都要用 git 管理起来
记住遵守文档中的设计,按照文档中的详细模块结构实现,如果必须补充文档中没有的代码,请同步更新到文档,保证文档和代码的一致性
对话常用语
在项目开始前,先仔细阅读项目代码,了解项目的完成进度, 并基于你阅读的成果,告诉我你下一步的计划
查看本项目的 gitflow 和 CI/CD 流程规范。要求你学习后可以应用到后续的代码管理中
将以上讨论的几个问题整理并,作为项目知识库内容,输出到,
项目知识库.md中
同步当前任务进度到文档中
按照你的计划继续
清理不属于计划(重复的)的旧代码
有多个文件错误,请改正
文件 有多处错误,请改正
项目运行出现错误,请改正。以下是错误信息:
根据你以上的分析结果(给出的计划),结合项目设、架构,和我给的代码约束,继续完成 相关代码
立即修正所有被此次改动影响的代码。保证原来可运行的代码在改动后仍能正常运行。
将本次的代码更改用 git 管理起来
音频转 markdown 工具
我想写一个音频转 markdown 的小工具。音频是面试音频,是求职者和面试官的一系列对话。我想用 AI 使生成的文本能整理成对话的形式,但是我不想调用 API,我想让你把生成的文字自动化的发送到 AI 对话的网页上,然后再爬取结果回来,你有什么建议
gpt4 向我推荐了 openai-whisper,你有什么建议
此文件是一个成熟的前端工程。请根据这个前端工程去反思一下当前项目的前端工程的目录结构问题。并给出修改意见,先不要改动代码。
Ok,按照你以上的反思和建议,去逐步的修改项目结构, 请记住每次移动或者修改或者添加文件。都要去修正其他文件中造成的导入影响.我建议你把这个任务分成多次对话去完成。一定要确保每一步做完后不会造成代码的错误。
现在给我。标明前端工程结构中每个目录和文件的作用。并把它写入开发计划中。
启动客户端并通过终端的一些报错来修改错误的代码。
我启动客户端出现了许多报错, 分析一下报错。并给出你的分析结果,先不要修改代码:
我们前面优化了整个前端项目结构。在处理缺失文件错误时优先去思考,这是不是因为前面改变目录结构的操作造成的导入路径的问题。如果确定确实没有该文件再去创建。而且要把对应的文件创建到对应的位置,不要导致混乱。
我希望你再次学习一下样板的前端工程目录。看看你的解决方案和它的对比有没有什么可以改进的地方。
现在开始开发每个我现在一侧边标签菜单没有跳转到对应的子页面。是因为没有实现相关代码。还是代码有错误?
这是现在运行客户端。后呈现出的样式。请你对各个区域进行一个命名,以便我们后面可以更方便的交流某个部分的改动。
我希望你以后每一次写代码都能用 git 管理起来。呃,你应该扮演一个专业的后端工程师知道应该把代码提交到哪一个分支
用 git 管理该项目。我需要有如下几个分支,master 分支,dev 支和 stable 分支和 feature 分支,漏洞修复 fixbug 分支。
+----------------+-----------------------------------+
| TitleBar |
+----------------+-----------------------------------+
| | |
| | TabsBar |
| | |
| Sidebar +-----------------------------------+
| | |
| | |
| | MainContent |
| | |
| | |
+----------------+-----------------------------------+产品前端
你是一位全栈工程师,在前端开发时,同时精通产品规划和UI设计。
现在需要输出完整的系统原型图,请通过以下方式帮我完成所有原型图片的设计。
1、结合文档中的需求和用户需求,以产品经理的视角去规划客户端、页面和交互;
2、作为设计师思考这些原型界面的设计,并以设计师的视角去输出完整的UI/UX;
3、使用html在一个界面上生成所有的原型界面,可以使用等开源图标库,让原型显得更精美和接近真实4、可以使用Bootstrap、Tailwind CSS 加速布局FontAwesome等开源图标库,让原型显得更精美和接近真实 引入tailwindcss来完成,而不是变成style样式,图片使用unsplash我希望这些界面是需要能直接拿去进行开发的
Plato-IM 项目
注意 Java 和 go 是 2 个独立的项目, 正在用 Java 代码复刻 go 项目
项目架构设计
| 模块 | 内容概述 | 实验/任务 |
|---|---|---|
| IM 设计理论 | 核心协议设计、公共协议、消息可靠性、接入层与业务层架构设计。 | - LAB1:本地客户端实现(echo 测试) - LAB2A:实现 p_config server |
| 接入层架构实现 | 长连接服务设计(动态可用性、通道复用)、分布式网关消息总线、心跳状态机、故障容灾优化。 | - LAB2B:实现 gateway server - LAB2C:实现 state server(控制长连接调度) - LAB2D/E/F:state server 生命周期管理与分布式集群优化 |
| 客户端实现 | 客户端框架搭建、基础通信功能验证。 | - LAB1:本地客户端 echo 测试 |
| 模块 | 内容概述 | 实验/任务 |
|---|---|---|
| 核心领域设计与实现 | DAG 业务编排框架、IM 核心领域(会话、消息、群组)设计、分布式事务治理、国密工程。 | - LAB3:DAG 业务编排框架 - LAB4:user domain server(亿级用户分片设计) |
| 接入层应用实现 | IM-WEB 功能(登录、好友、会话列表)、移动端 SDK 开发、多业务矩阵工程化、领域驱动设计。 | - 企业级工程开发实践 |
| 多媒体通信 | 高性能低功耗客户端开发,适配直播、大文件传输等场景。 | - LAB8:客户端业务开发 |
| 基础组件设计 | 分布式缓存、任务调度服务器、内存存储一致性测试、DevOps 工具链(部署/监控/测试)。 | - LAB4:内存存储一致性测试 |
| 核心优化 | 单机百万长连接优化、消息延迟优化、热重启技术、全球多机房负载均衡。 | - 长连接性能调优实战 |
| 功能 | 说明 |
|---|---|
| 直播风控 | 万人群组场景下的风控需求(已冻结)。 |
| 极致数据结构化 | 未公开的高性能数据结构设计(已删除)。 |
| 调度协议 | 分布式调度协议设计(已冻结)。 |
项目需求
现在工作空间中已经有一个 go 语言项目这个项目。实现了部分项目架构中的内容。
但是因为我对 go 语言相关的技术架构不是很熟悉,同时为了满足企业级多人开发要求,我现在想要用 Java21 复现这个项目。
因为此 go 项目的整体架构设计和对每个功能模块儿的解决方案和思路非常好,所以我要求你,需要尽量按照此项目源码进行翻译,并完整复现这个 go 项目的所有功能,一定要对照 go 的代码去实现 Java 的每一个功能。以此让我能以 JAVA 工程师的视角去学习整个项目的技术架构和方案解决思路。
但是,go 项目中的很多功能选择的技术选型,都是 go 语言常用的。作为一个 JAVA 工程师,我希望用 JAVA 代码复刻这个项目时,尽量采用的开发风格和习惯,用 JAVA 常用的对应的技术选型。
所以, 总结来说:
Java 版本代码的开发目标是要用 Java 的生态实现 go 版本代码的全量功能。
如果你在工作空间中还看到一个 JAVA 项目,这正是我现在现在 JAVA 语言复刻这个 go 项目的过程。所以一切代码思路和解决方案都要以 go 项目作为参考。
同时也要时刻查看 JAVA 代码。对应 go 功能模块的实现完成进度。
项目代码约束
目前 Java 的技术选型 暂定为:
springboot(作为 Java 基础框架) +Netty(代替 epoll)+Nacos(代替 etcd) +gRPC+...(其他待定)
在实现系统基础组件和接入层时。要求轻量级,尽可能减少第三方依赖。
在实现业务的应用层时,要推荐符合 JAVA 开发风格和 JAVA 常用的技术选型。
生成的所有 Java 代码都放在文件夹 Plato-Java-spring 中.
一定要对照 go 的代码去实现 Java 的每一个功能,尽量不要脱离 go 代码(即保证 go 代码中的重要函数一定要全部实现,如果你自主优化,实现了 go 中没有的额外功能,应该在总结中告诉我
我希望所有代码都有详细的注释且是中文,之后也如此,且要标明在 go 中实现的对照。
当翻译代码时遇到由编程语言而导致的实现功能的技术选型、第三方依赖于源代码不一致时,要先将新的可用的技术选型都告诉我,由我判断后再给出代码。
记住构建项目时要遵循:领域驱动原则和依赖倒置原则;功能复杂的模块以 DDD 架构来创建目录结构;对于功能简单的模块儿,你要自己考虑,并给出我模块目录架构的建议。有许多通用的方法在其他模块中有实现,写代码的时候要注意,不要重复实现
com.hardcore.plato包路径简化为直接使用plato作为根包名)
通用约束
在整个开发过程中, 你应该使用简单易懂的中文与用户进行沟通。当用户使用其他语言提问时, 你也应该用对应语言回复。
你是一位经验丰富的高级软件工程师, 精通多种编程语言和开发框架。你的任务是协助用户完成软件项目的设计和开发工作。
你的目标是以用户能够理解的方式, 引导他们完成项目的设计、开发、测试和部署。你应该主动完成大部分工作, 只在关键决策点征求用户的意见和确认。
你提供的所有代码都要有详细的行级的中文注释,越详细越好
在需求分析阶段, 你要站在用户的角度去理解需求, 并提出合理的建议和改进方案。对于复杂的需求, 要进行必要的拆分和优先级排序。
在对话过程中你要在关键节点去回顾项目代码,以免造成对话记录的遗忘。
在项目开始前,先仔细阅读项目代码,了解项目的完成进度,浏览项目的 markdown 文件和其他文档, 全面了解项目的背景、目标和技术栈。如果文档不完整, 要主动与用户沟通, 完善文档内容。
开发过程中, 在每次对话的结尾你要经常性地向用户汇报项目进展, 听取他们的反馈意见。对于用户提出的问题和建议, 要认真分析和吸收, 不断完善开发方案。
切记!时刻判断当前的对话是否需要你写代码。不要随便开始写代码。想要改动代码前应该先询问用户;得到指令后再对代码进行改动。
合理规划每次对话的长度,尤其是当你准备修改多个代码文件时,要细化步骤。避免对话过长被打断
项目中输出的 markdown 文件应该以中文命名
构建约束
开发前你应该结合当前项目的具体情况, 开发环境, 和语言推荐合适的技术栈。将符合当前开发语言和环境的热门的、可用的、合适的技术选型组合都一一列出,并说明每一种技术选型的利弊。并反复沟通,确认所有技术选型后再开始项目。
项目的构建开发流程是:从顶层到底层,从框架到细节;先创建项目目录架构和文件,模块需要的工程目录,不写代码;优先让项目(模块)能运行起来,再一步步填充细节,实现具体文件的代码,而不是上来就完整的开发某个具体的部分
构建项目或模块时,要使用领域驱动原则和依赖倒置原则。每个目录或模块都应该有明确的职责边界。且符合语言常用的开发设计习惯、功能域和技术层次。
在执行操作命令时(如创建文件或目录),请注意你当前所处的位置,不要创建错了位置
在沟通构建计划时,应该用以下格式,详细展示出整个目标的目录文件架构:
当经过反复沟通,确定项目架构和目录框架后。应该把成果输出到一个 markdown 文件中,如
项目开发计划.md,当之后有所补充时,也应该是对同一个文件修改,而不是反复创建新文件
代码约束
当你准备改动某个代码文件时,应该先阅读项目,找出所有对该代码有依赖的代码(包括包导入路径,函数、参数改动等)。在代码文件修改后,立即修正所有被此次改动影响的代码。保证原来可运行的代码在改动后仍能正常运行。
有时你更改项目代码是直接写一个新代码文件。当你这么做时应该提醒我应该删除哪些旧代码。避免同一实现的新旧代码共存,导致代码混乱
每一次修改代码,都要用 git 管理起来
聊天中用到的对话
构建项目架构
让我们先来构建项目框架,暂时不写具体代码这个文件结构和go项目不同,我需要尽可能相同
删除
我希望所有代码都有详细的注释且是中文,之后也如此接下来完成Java客户端框架实现:
设计目标
用来测试plato后端系统正确性的一个命令行工具。
使用Java所编写的SDK,便于今后集成到压测程序中。
使用命令行,可以进行跨网络对话实现IM功能。
可使用单元测试运行,以便于自动化测试
约束条件
交互的简洁性
灵活可扩展性
依赖简单,跨平台性
CMD模块: 命令解析模块,此模块会解析命令行参数,作为plato的项目微服务化的部署入口,以此做到在一个仓库下开发多个进程程序,复用公共代码,简化部署过程。
CUI模块: 命令行交互界面模块,使用命令行生成简单的图形界面,用来高效的进行端到端调试。
SDK模块: im 客户端逻辑层,用来封装真实的IM客户端行为,抽象出来方便复用,具体可以分为API/logic/net 三个子层。继续参考 go中的sdk、cmd、client等实现Java客户端完整功能写代码的约束:
1,你之后提供的所有代码都要有详细的中文注释,且要标明在go中实现的对照。
2.一定要对照go的代码去实现Java的每一个功能,尽量不要脱离go代码(即保证go代码中的重要函数一定要全部实现,如果你自主优化,实现了go中没有的额外功能,应该在总结中告诉我)
3.当翻译代码时遇到由编程语言而导致的实现功能的技术选型、第三方依赖于源代码不一致时,要先将新的可用的技术选型都告诉我,由我判断后再给出代码
4.记住领域驱动原则和依赖倒置原则,有许多通用的方法在common模块中有实现,写代码的时候要注意,不要重复实现
5.生成文件结构需要尽可能和go项目相同(`com.hardcore.plato` 包路径简化为直接使用`plato` 作为根包名)
6.我的开发环境是Java21
git remote add origin https://github.com/codeRookieyutaoliu/Plato-Java-spring.git根据你以上的学习,继续和我上面的客户端设计,和代码约束,继续完成Java客户端相关代码#Plato-go#Plato-Java
请整理Plato-Java中的目录和文件结构,使其更符合Java开发风格的同时,又不影响相比于go代码的完整性思考grpc这个技术选型是否适合java项目,有没有更好的选择?
删除
我希望你仔细学习 Plato-go 中整体架构的设计,并一定要对照go的代码去实现Java的每一个功能,尽量不要脱离go代码,生成文件结构需要尽可能和go项目相同(`com.hardcore.plato` 包路径简化为直接使用`plato` 作为根包名)第一,你没有按照go项目的逻辑实现,第二你应该重新阅读该模块,其中多出了com.hardcore.plato.ipconf是怎么回事,第三我建议你写代码之前可以先明确go项目中有哪些重要函数,再对照Java实现;第四如果你自主优化,实现了go中没有的额外功能,应该在总结中告诉我说明go版本是目前已经开发完的项目,Java版本代码的开发目标是要用Java的生态实现go版本代码的全量功能。Java代码要用到的技术栈有:Netty,springboot,springcloud alibaba,Nacos+grpc,xxl-job,等等。目前Java版本还没有开发完go 中好像没有 message 类,好像是用 protobuf 定义的?我有点混淆,给我说明一下
- 模块过于扁平:当前结构中大量子模块直接位于 common 下,缺乏层次关系
- 职责边界模糊:部分模块如 tcp、codec、handler 混合了不同层次的概念
- 缺乏接口设计:Java 中更推崇面向接口编程,当前结构中接口定义不足
- 包结构不符合 Java 惯例:Java 通常按功能域和技术层次划分包
按照你给的 Framework 完整的目录结构:开始重构 common 模块
用 git 管理 Plato-Java-spring 项目,目前 client 和 ipconf 大体完成,state 模块未开工,common 模块正在用 framework 重构,getway 打算完全重写。请据此创建 git 仓库,并规范化 git 工作流
这里实现的 Netty 客户端和 server 和 Plato-client 是否有职责冲突
继续完善 plato-cache,并对比 go,检查是否实现对应全量功能
继续开发 plato-bizflow 模块,我对这个模块功能完全不了解。先讨论需求,结合项目 rules。告诉我模块功能和技术选型。要对比 go 项目对应功能,给出开发计划,同步到文档中
结合项目 rules, 你告诉我 go 都实现了哪些,哪些还没实现?
阅读代码,把最新的开发进度同步到文档中
阅读代码,结合项目架构设计,在目前的 common 模块的重构工作中,还有哪些东西在开发文档中没有体现出来,请完善
结合你对 IM 系统的认知,我的项目架构设计还需要补充什么
IM 优化 AI
AI 对话的业务和传统 IM 单聊在架构上有什么区别?
调用大模型 API 实现的与 AI 对话的业务。和传统 Im 单聊的业务。在对话存储的架构上有什么异同点?还是完全没有联系?
传统的 im 中台业务对目前大模型调用的 AI 业务能有什么优化?两者能怎么结合起来?
Plato 中台化架构设计
现在我想重新规划 Java 项目的架构设计,我在 go 项目中添加了一份详细的架构设计文档,完整学习文档。你可以参考它来做架构设计。我的设计目标是:实现多租户架构,领域层用来沉淀业务无关可跨领域复用的功能需求,提高核心的业务价值;基础设施层,基于依赖倒置原则,保证领域层不依赖任何基础设施,而是通过定义标准的适配接口屏蔽对基础设施库的依赖,做到可随时替换最佳组件。对于存储,为方便数据得复用,抽象出独立的数据服务,做到面向业务抽象定制化的存储模型,对业务层屏蔽存取细节,存储模型底层基于数据时效实现冷热数据分离存储,权衡高吞吐,低延迟,高可靠,低成本等技术目标的综合效果最大化。未来可以做到平滑的接入:AI 客服,游戏,物联网,直播,弹幕等 IM 相关业务
按照修改后的顶层目录,重写文档中的第二章 Plato-Java 中台化架构重构,直接写入写文档,重点关注接入层实现、核心领域实现、接口应用层实现:包括户注册/登陆/添加好友/通讯录/会话列表功能实现
业务研发工程师视角: 大规模互联网公司后端工程师一次完整功能的开发做事闭环;
单聊/群聊功能的设计与实现
自顶向下设计,拆解复杂业务功能的实现,形成最终可落地的技术方案,对标 P7 的方案设计能力。
多设备登陆功能的实现
实现多设备登陆功能,超大规模消息协议的设计思想,以及控制流程的迭代改进方法
已读/未读 消息状态的设计与实现
万人群里场景下,应对已读消息回执风暴,已读/未读列表的极致存储优化,消息协议的设计与实现
多媒体通信的设计与实现。其中基础设施层只关注以上模块中的必要部分。目前我最先要开发接入层
首先,我希望
plato-common/改为plato-framework;plato-common-core改为plato-common这样更清晰,其次多模块都放在framework中,会不会让其他模块依赖较重?请进一步给出一个拆分建议吧。
根据架构设计文档中的思想要实现依赖倒置原则.那么怎么完善架构实现这个原则?再次去分析项目。哪些需要重新规划实现?这个依赖倒置哪些不用?
你给我的计划:重连机制的详细实现;权限验证和安全机制;限流和熔断机制都是在网关模块实现的吗?还是有可能在state模块或者IP config模块中。
在go项目的项目架构设计知识库.md中,## 接入层实施方案这一章详细阐述了接入层3个服务的设计方案和模块职责,请根据这些内容,设计接入层3个模块的详细目录架构,要确保:1.代码清晰2.各模块之间清晰明确,不要有冗余的实现,3.符合项目架构设计知识库.md中,## 接入层实施方案这一章的拆分设计 4.其中部分功能已经在其他模块中实现包括network和时间轮模块。ID生成模块等等这些代码也不要重复实现,要懂得去复用这些。已经实现过的模块儿。详细的架构设计输出到 链接已保留为文本:E:\javacode\plato\Plato-Java\项目架构与开发计划.md 中
还有一个点我要提醒你,就是他们用到的消息全部来自于plato-framework-protocol中protobuf生成的消息类,而且用到适配器模式,保证在更换.proto中的消息定义后,不会影响到代码运行;不知道这一点你在设计时有没有考虑到
我对Java中framework的定位就是go中的common;这个理解对吗。若对,那么那go中的common\tcp类似于现在Java的network,为什么被放在了common下?
重新阅读当前模块,你好像额外实现了文档详细模块结构 中没有的代码,请分析是否是必要的,如果是冗余实现,请在保证正确运行的前提下精简代码;如果是必要的,请告诉我为什么,并同步更新文档的该部分的详细模块结构
项目中还有其他模块,请参考文档。应该考虑所有模块的前提下,再优化一下,看看有没有还能复用的地方
你阅读一下Plato-go\Plato项目架构设计知识库.md和Plato-go\yudao-cloud项目架构分析报告.md,里面有系统的存储设计.这部分在项目架构与开发计划.md的1.2 详细模块结构中还没有体现,请完善
你太鲁莽了,你首先应该阅读go代码和go的设计文档Plato-go\Plato项目架构设计知识库.md然后据此改进Plato-Java\项目架构与开发计划.md中的## 接入层详细设计下的内容,而且你应该重新审视## 接入层详细设计中有关基础设施层的内容,我已经开发好的模块有 plato-infrastructure-network 模块和 plato-framework-protocol/,应该优先考虑利用他们,然后在开发完成后再考虑优化架构,提取功能到基础设施层模块中
go-jvm项目
你理解对了,它就是一个学习项目,我们要保证:它可以正常运行;要接近一个完整的JVM实现,过于复杂抽象的逻辑不用管;代码要有详细的注释和文档,达到学习的目的
现有的代码能正常运行吗,若不能;先完善
我关注的是了解面试中jvm常见问题的实现,不是某一方面特别详细的实现。就是一个学习项目,我们要保证:它可以正常运行;要接近一个完整的JVM实现,过于复杂抽象的逻辑不用管;代码要有详细的注释和文档,达到学习的目的
油猴脚本
我想添加对 通义 - 你的个人 AI 助手 和 豆包 - 字节跳动旗下 AI 智能助手 的支持
一键配置环境脚本
我也想要一键配置我的环境,安装我的软件有的想通过Boxstarter+Chocolatey下载,有的是github上的软件,想使用 使用GitHub API批量下载,这些都用一个脚本管理起来
我要下载的软件有:geek,火绒安全软件,uTools,飞书,搜狗输入法,PotPlayer,Steam,腾讯会议,图吧工具箱,微信
QQ,游戏加加轻量版,Mozilla Firefox,Edge,Google Chrome
总结知识为表格
我希望你把业务和具体方案分开,将方案列分离出一列具体方案,让结构更清晰。具体方案按条列出,其中若有图片链接,直接忽略。要求:1.表格用 markdown 源码的格式返回给我。2.单元格中如果有分条的陈述,每条后面要加上 3.不要做文字的删减,尽量保持原表格中详细的陈述。 表格如下:
环境配置与脚本
yudao-cloud
我的想法是这样的,这个项目用到了好多好多的中间件,他会有许多配置项,比如数据库连接地址账号密码,Redis连接地址账号密码,skywalking 、mq等等等等有多种中间见到配置选项,在部署的时候的每一个模块都要去在对应模块的配置文件中修改,我希望的是你写的脚本可以统一的创建一个(比如json)集中的门,让用户把这些信息都填入,然后你的脚本就可以读取这个文件的信息,并能够进行一键部署,可以让用户选择去部署哪一个模块而且部署的方式,我希望是支持本地部署Doker部署和真正的生产环境的部署,三种选择,优先完成docker部署。你的所有脚本可以统一放在一个文件夹下(如scripts)每个对应的脚本也可以根据功能的区别,去放在这个文件夹的字文件夹下,对于我以上描述的这个任务,你可以先给一份您的计划让我确认并调整后再去执行
- 配置文件格式:是否同意使用JSON格式?还是更倾向于YAML?
- 模块选择:默认启用哪些模块?是否需要最小化部署选项?
- 中间件管理:是否需要脚本自动安装中间件,还是假设已存在?
- 网络配置:Docker部署时使用bridge还是host网络模式?
- 数据持久化:如何处理数据库数据和日志的持久化?
- 安全配置:是否需要支持SSL/TLS配置?
对于你的调整问题,我的补充回答是:用yaml,且所有脚本只用到一个配置文件你的原方案分成了主配置和模块配置,我不希望这样,我希望无论是哪种配置都集中在一个文件中;对于中间站管理问题上脚本的职责只是部署,构建打包的流程由程序员完成;对于网络配置和数据持久化我不是特别了解,我希望你能给我介绍一下,并给出你的建议
这个项目是github上一个比较热门的项目,我现在想学习这个项目;学习方式是这样的,在不更改项目原本代码的情况下,我自己的实现一个新的状况去用的项目的代码,然后我可以通过debug的形式,学习这个代码的一个功能模块的实现流程,这个想法怎么样?对于这种学习方式那么还有什么补充怎么才能让我更好地学习这个代码?我一直觉得动手代码要大于阅读代码。