前置说明:
这个教程的目标读者是那些已经熟悉 Solidity 语言基本用法的人,他们可能已经编写过一些简单的智能合约,并对 Solidity 的核心概念和语法有一定的了解。如果您已经掌握了 Solidity 的基本用法,这个教程可以帮助您填补一些知识的空白,并深入学习更高级的概念和技术。
对于更好地阅读和理解这个教程,确实需要具备一定的 Solidity 基础知识,并且最好具备其他语言的生产级项目编码水平。
对于完全零基础的 Solidity 小白来说,这个教程可能并不适合作为他们初次接触。
如果您是一个初学者,我建议您首先学习 Solidity 的基础知识。您可以通过阅读 Solidity 的官方文档和教程来入门,掌握 Solidity 的基本语法、数据类型、控制流程等。一旦您对 Solidity 有了一定的了解,您可以尝试编写简单的智能合约,以加深对 Solidity 的理解。
在学习 Solidity 的过程中,如果您遇到任何问题,都可以随时向我提问。我将尽力帮助您理解和解决问题。
❌❌❌ 注意:
这个前置条件非常重要,对于没有编程基础的人来说,阅读这个教程可能会非常困难。如果您没有掌握 Solidity 的基本用法或其他编程语言的经验,确实建议您先学习编程的基础知识和其他语言,然后再尝试深入学习 Solidity。
如果您在学习 Solidity 的过程中遇到困难,可以随时向我提问。我会尽力为您提供帮助和解答。同时,使用搜索引擎和参考其他教程和资源也是一个很好的学习策略,因为这样可以获取更多的知识和解决问题的方法。
另外,关于Solidity学习资源的地址,一下是一些常用的学习资源,供大家参考:
朱安邦
一位热衷于区块链技术和 Solidity 的开发者。
您可以通过以下方式与作者互动和获取更多信息:
运行环境:
为了方便演示,本教程内所有的操作,均在 Solidity 在线编译器 Remix 中进行,它可以直观快捷的做合约部署+测试+生成界面。
学习的时候建议使用 Solidity 最新版本进行编码,最新版本可以在官方博客 blog.soliditylang.org 查看。
额外说明:
本教程的所有知识点都不会拿别的语言进行类比。很多写作者写 solidity 教程的时候,喜欢在介绍某个知识点时,拿自己之前熟悉的语言和 solidity 类比介绍(比如 C++,Python,Java,Javascript 等),初心是让读者可以更容易理解;但是事与愿违,很多时候读者可能并不了解写作者熟悉的那门语言,导致不举例还好,对比举例更迷糊了。学习编程是一件很严肃的事情,本教程尽量避免无聊的调侃,类比和啰嗦的废话。
我们欢迎并鼓励您对所有文档、源代码以及相关视频的开放与免费访问。此外,我们还提供了配套的PDF文件,同样也是免费提供的。我们欢迎您在GitHub仓库上提交您的改动,以帮助我们不断优化内容。如果您对参与教程的修改和改进感兴趣,修改GitHub源文件是最简单的方式。
- 文字版在线阅读:
- 视频版:
第一部分:语言基础
- 01.初识
- 02.数据
- 03.变量
- 04.函数
- 05.运算操作符
- 06.错误处理
- 07.流程控制
- 08.循环与迭代
- 09.事件
- 10.合约继承
- 11.合约调用合约
- 12.合约部署合约
- 13.interface:接口
- 14.Library:库
- 15.算法
- 16.Assembly (装配) :内联汇编
- 17.metadata:元数据
- 18.ABI 编码
- 19.变量的布局
第二部分:合约优化
本来是做了 24 章的内容,但是为了以后方便印刷成纸质,所以删除了真实案例分析和合约常见错误分析这两个含有大量代码演示的章节。(比如案例分析里,光 uniswap V2/V3 和 Compound 这 3 个合约,每个印出来都是几十页的内容,太浪费篇幅了,以后单独放出来)
克隆本仓库到你的电脑
git clone git@github.com:anbang/professional-solidity.git
安装 Sphinx:
yum -y install git make python3 python3-pip
pip3 install sphinx
pip3 install sphinx-autobuild
pip3 install sphinx_rtd_theme
pip3 install recommonmark
pip3 install sphinx_markdown_tables
本地运行:根目录执行如下命令
# 第一种
sphinx-autobuild docs build/html
# 第二种
./start.sh