【WEB3.0零基础转行笔记】Solidity编程篇-第4讲:AI提示
目录
4.1 来自 Curve 的消息

4.1.1 什么是 Curve Finance?
简单来说,Curve Finance 是一个建立在区块链上的去中心化交易所(DEX)。它最擅长的事情是让用户用一种称为“稳定币”的加密货币去兑换另一种稳定币,比如把 USDT 换成 USDC。
为什么需要 Curve?
-
稳定币:这类货币的价格通常锚定1美元,比如 USDT、USDC、DAI 等。它们就像数字世界的美元。
-
交易需求:你手上有 USDT,但想换成 USDC 去参与另一个项目,就需要一个地方来兑换。
-
Curve 的优势:Curve 专门为稳定币设计了一种特殊的算法,使得大额兑换时价格非常稳定(滑点极低),而且手续费也很便宜。因此,它成为了 DeFi 世界里的“稳定币兑换枢纽”。
Curve 不仅仅是一个交易平台,它还是一个庞大的生态系统,有自己的治理代币 CRV,以及各种创新的金融产品(如借贷协议 crvUSD、LlamaLend 等)。
4.1.2 新手如何开始使用 Curve?
-
准备一个加密钱包:比如 MetaMask,并在其中存入一些稳定币(如 USDT)作为 Gas 费(手续费)。
-
访问 Curve 应用:点击“Launch Curve App”,然后连接你的钱包。
-
开始探索:
-
如果你想交易,可以直接在兑换界面操作。
-
如果你想赚取收益,可以查看“Yield”或“CurveBestYields”,选择一个池子存入你的稳定币。
-
如果你关心平台状况,可以点击“KeyMetrics”查看各项数据。
-
-
持续学习:订阅 Curve News,关注官方动态,了解最新的产品更新和社区治理。
4.1.3 总结
这张图就像 Curve 世界的一个“信息前台”,为你提供了进入应用、获取新闻、发现机会和洞察全局的快捷入口。对于零基础的你来说,现在你应该知道:
-
想用 Curve → 点 Launch Curve App
-
想看新闻 → 看 CurveNews 板块
-
想找高收益 → 点 CurveBestYields
-
想看平台数据 → 点 KeyMetrics
4.2 人工智能与论坛
请跟随本课程的视频一起学习。
进入软件和区块链工程世界的门槛比以往任何时候都低。在编程过程中,我们不可避免地会遇到问题,而知道在哪里以及如何找到解决方案是一项极其宝贵的技能。
以下是解决你可能遇到的任何问题的确切6个步骤。
(1)摸索调试
(2)询问你的AI助手
(3)阅读文档
(4)网络搜索
(5)在论坛提问
(6)在支持论坛或GitHub上提问
(7)迭代循环
让我们逐一了解。
4.2.1 摸索调试
精确定位你的错误,手动审查代码,进行你认为可能解决问题的小调整。精确定位代码中的错误将帮助你在下一步中构建你的问题/提示。

4.2.2 询问你的 AI
如今有多种 AI 模型可用,每种都有其优缺点。以下是一些值得考虑的选项。
-
ChatGPT:元老级模型。这个由 OpenAI 提供的模型功能强大、支持多模态,包含代码解释功能,并且可以浏览网页。遗憾的是,最好的质量来自付费版本。
-
Phind:这是一个专注于编程的模型,具有直觉能力,可以主动提问以澄清假设。它也可以浏览网页,并且有一个 VS Code 扩展!
-
Copilot:前身为 Bing Chat,不要与 IDE AI 助手混淆,Copilot 正在迅速成为微软整个生态系统对 AI 时代的回应。
-
Google Bard:呃……效果因人而异。
要充分利用你的 AI,提示词工程有 6 条原则。
1. 原则 1:编写清晰且具体的指令
2. 原则 2:提供尽可能多的上下文
3. 原则 3:使用分隔符清晰地标明输入的不同部分
4. 原则 4:警惕幻觉
5. 原则 5:了解模型的局限性——许多模型有严格的上下文令牌限制(尽管这一点正在迅速改变)
6. 原则 6:不断迭代
注意:幻觉是指 AI 提供它认为正确但实际上错误的回答。这些问题可能很难发现,需要一点经验才能识别出来。
提问是一项技能,所以请持续练习。在 learn.deeplearning.ai 网站上有一门很棒的免费课程,可以帮助软件工程师成为更好的提示词工程师。
4.2.3 阅读文档
如果问题出现在某个特定的实现、框架、语言——无论是什么——你几乎总是可以通过阅读文档来获得进一步的见解以及如何实现目标的示例。
你甚至可以利用 AI 来帮助你:将文档作为上下文复制到像 ChatGPT 这样的模型中,然后向其提问。
4.2.4 网络搜索
许多 AI 目前缺乏的是检索最新信息的能力,或者它们因无法访问网络而受限。这时,传统的网络搜索就派上了用场。
如果你遇到了一个问题,极有可能其他人也遇到过,而像 Google 这样的搜索引擎已经收录了这些问题,并能为你提供答案。
注意:AI 模型正在迅速发展,截至 2023 年 12 月,许多模型也已包含网络搜索功能。
4.2.5 在论坛提问
有时,我们需要的信息就是找不到,这时我们不得不与人类进行互动。
我们始终应该在能被网页索引的论坛上提问,这样搜索引擎和未来的 AI 模型就能收录这些新信息。以下是一些例子:
-
Ethereum Stack Exchange - 一个专注于以太坊和区块链技术的社区驱动型问答平台;
-
Stack Overflow - 在线平台,促进全球编程和软件开发社区内的知识交流与问题解决;
-
Peeranha - 一个基于 Web3 技术(特别是区块链)构建的去中心化知识分享平台;
-
Reddit - Reddit 是一个广受欢迎且多样化的社交媒体平台,是在线社区、讨论和内容分享的枢纽;
在 Discord 和 Twitter 上提出的问题很可能会被淹没在对话的混乱中,并且永远不会被搜索引擎收录,所以请谨慎使用这些渠道。
超级秘密技巧是:先在像 Stack Exchange 这样的论坛上发布你的问题,然后在你的 Discord 消息中链接到这个问题!
永远记得在适当时使用 Markdown 格式来组织你的问题。
4.2.6 在支持 GitHub 或论坛上提问
如果你正在使用的工具不是开源的——也许应该重新考虑它是否必要!哈哈
GitHub 上的开源项目允许人们提交改进和提出问题,这就是我们改进代码的方式。
4.2.7 迭代循环
重复执行上述步骤,一遍又一遍。
通用建议:
以上是克服学习过程中会遇到的问题的一系列有效步骤。以下是一些需要牢记的额外通用建议:
(1)将自行诊断时间限制在15/20分钟内 - 不要强迫自己独自挣扎解决问题。有无数可用的工具可以帮助你专注于错误所在以及如何解决它。
(2)不要害怕向 AI 提问,但也不要跳过学习过程 - AI 会产生幻觉,会出错。只有通过学习和理解基本概念,人们才能发现这些错误和不一致之处。
(3)使用论坛!!! - 在 GitHub 讨论区和论坛上提问是获得支持的好方法——而帮助他人解决他们的难题也是巩固你所学知识的好方法。
(4)在 Google 上搜索确切的错误信息 - 你遇到的问题很可能其他人也遇到过。利用搜索引擎查找过去的解决方案。
(5)在 Stack Exchange 和 Peeranha 上创建账户 - 这些社区对于解决 Web3 软件工程和编码问题非常宝贵。好好利用它们。
(6)在 GitHub/Git 上提交 Issue - 与社区互动是 Web3 和软件开发社区不可或缺的一部分。开源项目允许在 GitHub 上提交 Issue 和 Pull Request。保持尊重,但如果你找不到答案,或者认为你遇到了协议中的错误——创建 Issue 是将这些问题引起项目注意的好方法。
在向开源项目提交新 Issue 之前,请务必先搜索是否已有相关 Issue。
如果你没有任何 GitHub 使用经验,别担心。我们的下一课将介绍账户的设置,让你能开始使用。
最后,正如 ChatGPT 会说的那样:“继续在代码中跳跃式前进,下次再见,保持呱呱叫,我的区块链伙伴们!” 😊
4.3 Triage
为了充分利用本课程的工具和技巧,我们为你准备了一些提示和建议。在本课中,我们将介绍一些推荐的最佳实践。
4.3.1 限制自行诊断时间
遇到错误时,将你的故障排除时间限制在 15-20 分钟内。例如,如果你试图编译 `PriceConverter.sol` 并不断收到指示缺少参数的错误,请花有限的时间尝试自己解决。如果你在 15-20 分钟后无法解决,请复制错误信息并利用你的资源寻求帮助。
4.3.2 明智地利用 AI
虽然像 ChatGPT 这样的 AI 工具可能非常有帮助,但重要的是不要完全依赖它们。自己先学习材料本身,并识别 AI 何时犯错(也称为幻觉)至关重要。例如,如果你问 ChatGPT 关于 `Foundry` 的问题,它可能会提供不准确的信息,因为它可能没有经过相关训练。始终通过额外的研究来验证 AI 的回答。
4.3.3 参与论坛互动
当你遇到无法解决的问题时,你可以访问像 Stack Exchange 或 Peeranha 这样的论坛平台来提问、帮助他人并进行协作学习。确保使用 Markdown 格式清晰地组织你的问题,以提高清晰度并获得有用回复的机会。如果你需要有关如何格式化问题的指导,可以使用 AI 来询问格式良好的问题示例。
4.3.4 GitHub Issues
如果你在其他地方无法获得帮助,你可以在 GitHub 问题追踪器 中开启一个 GitHub Issue。该板块允许你与开发者社区互动、报告错误以及提出改进建议。请记住,在发帖前务必先搜索现有 Issue,以避免重复。
GitHub 对于分享、编写代码以及与开发者同行互动,以及访问和贡献代码至关重要。在课程中,我们将把它用作我们项目的作品集。这个作品集在申请工作时会变得非常有价值,因为它可以轻松展示你的编码技能和对开源项目的贡献。
4.4 设置GItHub
在这里,我将引导你完成创建 GitHub 账号的过程。
提出格式规范、表述详尽的问题,能大大提高你快速获得有效解答的机会。很多时候,这些社区是由一群纯粹出于善意和对知识的共同热忱而乐于解答疑问的人组成的。因此,请确保你精心构思问题,以不辜负他们的时间和付出!

与这些社区互动的关键平台之一是 GitHub。如果你还没有账号,现在正是激活账户的最佳时机。不要跳过这一步,这是必不可少的。让我们开始吧。
第一步:注册 GitHub
GitHub 是开发者的首选平台。它提供了一种可管理的方式来维护代码仓库,并促进协作编码和问题解决。在 GitHub 上设置账户非常简单。如果你还没有做过这件事,你需要一个电子邮件地址才能开始。

要注册 GitHub,只需点击“注册”并输入您的有效电子邮件地址即可。

第二步:创建账户
点击“创建账户”。在 GitHub 注册邮箱后,您将收到一封包含启动代码的邮件。请将此代码提供给 GitHub 并回答几个初步问题。出现提示时,选择免费版本。

瞧!你已经创建了你的GitHub个人资料。

接下来:提出“优质”问题。下一课将重点讲解问题格式。为了在 GitHub 等社区及时获得回复,你需要认真考虑你提出的问题是什么以及如何提出。不要跳过下一课!
4.5 问题格式
大家好,编程爱好者们!在本课中,我们将讨论精心构思问题的重要性,以及如何正确格式化我们的提问,以最大程度地获得回复。
4.5.1 在 GitHub 中创建讨论
作为练习,我希望你导航到本课程的 GitHub 讨论区页面,并尝试自己创建一个讨论!
尝试将你的讨论进行适当分类。[常规] 用于对话和讨论,[问答] 用于提问。

我们经常会遇到一些提问,它们表述仓促且语无伦次。以下是一个格式欠佳的问题示例:
"Hey why my code not be good?"
quire(msg.value == entranceFee * newPlayers.length, "PuppyRaffle: Must send enough to enter raffle");
for (uint256 i = 0; i < newPlayers.length; i++) {
我们需要清晰地描述我们的问题、导致问题的操作步骤,以及我们收到的任何明确错误信息。
一个更好的示例是:“我在编译时收到此错误:”
TypeError: Exactly one argument expected for explicit type conversion.
--> PriceConvertor.sol:21:43:
|
21| AggregatorV3Interface priceFeed = AggregatorV3Interface()
|
代码如下:
AggregatorV3Interface priceFeed = AggregatorV3Interface()
有人能帮我弄清楚问题出在哪里吗?🟢
简单来说,在构思问题时,我们可以采取以下必要步骤:
(1)清晰简洁地描述问题——清楚说明你面临的问题以及你是如何遇到这个问题的
(2)突出你遇到的具体错误——包含确切的错误信息可以为帮助你的人提供有价值的线索,了解问题出在哪里
(3)使用 markdown 格式化代码——这一点至关重要,格式化你的代码能让你的问题对那些试图理解问题的人更具可读性和亲和力
(4)分享导致问题的相关部分代码——只包含与问题相关的部分。除非合适,否则不要将整个合约粘贴到你的问题中。提供过多信息也是可以的。
有了格式规范的问题,你从他人以及 AI 那里获得帮助的成功率会高得多。Markdown 格式的重要性怎么强调都不为过。如果你不熟悉 markdown,可以随时向 ChatGPT 这样的 AI 寻求建议,或让它帮你格式化内容。
总结:永远记住,没有糟糕的问题,只有格式欠佳的问题。让你的提问有价值,并恰当地格式化它们。成为软件工程师的一个基石就是融入这些社区。积极参与其中,提问并结识他人。贡献是开源社区的基石。尽力去回答与你提问数量相当的问题,这将巩固你的知识。你无需成为专家也能帮助那些在你之后踏上征程的人。
4.6 速通
在本节中,我们将探讨一个并非本课程明确组成部分的资源,但它对于扩展你关于以太坊和以太坊虚拟机(EVM)的知识非常有用。此资源由我的好友 Austin Griffin 提供。让我们来看看它能为你做些什么。

4.6.1 Speedrun Ethereum 简介 (与 Austin Griffin 一起)
以其醒目的领结而闻名的 Austin Griffin,热切地希望通过 speedrunethereum.com 帮助你快速开启在以太坊上的创造之旅。他开发了这一资源,旨在阐明以太坊构建背后的“如何做”和“为什么做”。
通过 Speedrun Ethereum,你将深入探索大量项目,包括:
-
创建一个简单的非同质化代币(NFT)
-
构建一个去中心化质押应用
-
开发一个代币自动售货机
-
构建一个骰子游戏——学习链上随机性
-
创建一个去中心化交易所(Dex)
-
构建并使用一个多签钱包
-
SVG NFT 与链上数据
……以及更多内容

要利用这些学习机会,请访问 Speedrunethereum.com 并开始吧!
4.6.2 Scaffold-ETH2 简介
Scaffold-eth-2 对于那些学习 Solidity 并试图可视化其代码作用的人来说是一个很好的资源。
它提供了一个简洁的前端用户界面,该界面会随着你的智能合约更改而动态更新,使你能够与之交互并监控你所做的调整。

4.6.3 结语
充分利用 Speedrun ETH 和 Scaffold ETH 提供的知识和资源,助您在以太坊上构建创新解决方案。只要您坚持不懈、持续学习,就一定能在区块链生态系统中取得显著成就。
奥斯汀,祝你领结星期五快乐!
恭喜!:你做到了!本节内容到此结束——你应该为此感到无比自豪。休息一下,好好放松,因为你已经准备好学习Foundry 基础知识了!
4.7 恭喜
恭喜你完成 Solidity 基础课程!你现在了解了部署和使用智能合约的基础知识,这些技能对于智能合约开发人员或安全研究人员来说至关重要。接下来,我们将学习Foundry课程。Foundry 是一个智能合约框架,它将提升我们的智能合约开发技能,使我们能够创建更安全的测试、以编程方式部署合约等等。好好休息一下:吃点冰淇淋,散散步,或者去健身房锻炼一下。期待在Foundry课程中见到你🐸!
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)