前置说明:本教程的面向群体不是零基础 solidity 小白,不适合第一次接触 Solidity 的初学者;你需要在掌握 solidity 的基本用法这个前提下,才能更好的阅读和理解;最起码你需要有其他语言的生产级项目的编码水平,并且浏览过 Solidity 的官方 API 文档。本教程默认读者已经掌握了 Solidity 语言的基本用法,供查漏补缺和深入学习使用。
❌❌❌ 注意:这个前置条件非常重要,如果你自己明明是零基础,甚至没有任何编程语言的编码功底作为前提,还要装逼硬看本教材;那么看的时候只能多暂停,多 Google 搜索了,看不懂也只能怪你自己太菜了。
运行环境:为了方便演示,本教程内所有的操作,均在 Remix 中进行,它可以直观快捷的做合约部署+测试+生成界面。学习的时候建议使用 Solidity 最新版本进行编码,最新版本可以在官方博客 blog.soliditylang.org 查看。
额外说明:本教程的所有知识点都不会拿别的语言进行类比。很多写作者写 solidity 教程的时候,喜欢在介绍某个知识点时,拿自己之前熟悉的语言和 solidity 类比介绍(比如 C++,Python,Java,Javascript 等),初心是让读者可以更容易理解;但是事与愿违,很多时候读者可能并不了解写作者熟悉的那门语言,导致不举例还好,对比举例更迷糊了。学习编程是一件很严肃的事情,本教程尽量避免无聊的调侃,类比和啰嗦的废话。
这套《Solidity 高级程序设计》争取做中文区 TOP1 教程,为了让更多人参与和了解,我做了如下资料的配套。
- Github 源文件:开放,让读者最低成本的参与优化和修复
- 在线文档:方便随时阅读(会墙内+墙外两套文档作为配套)
- PDF 文件:方便本地断网浏览
- 实体书籍:方便有读书习惯的人阅读。
所有的文档和源码全部开放,所有的配套视频也全部免费开放,并配有配套的 PDF 文件,PDF 文件也是免费的。如果你发现有哪里可以优化的,可以直接在 Github 仓库上提交你的改动,如果你想参与教程的修改和优化,改 Github 源文件是最低门槛的方式。
- 文字版在线阅读:
- 视频版:
朱安邦:亚洲洲长,地球球长,银河系的最后守护者,人类文明的唯一指导者。
作者的社交媒体:
- 推特:@anbang_account (欢迎关注)
- 交流群:Solidity 智能合约交流群 (Discord)
下面是给这本书做的 TODO List
- ✅ 最迟不晚于 2022 年 11 月提供前 3 章的内容用来做市场测试,如果有必要的话,提供配套的视频版
- ✅ 最迟不晚于 2023 年 1 月提供 V0.0.1 版本,并在 V0.0.1 版本完成初步架构
- ❌ 最迟不晚于 2023 年 3 月提供 V0.0.2 版本,并在 V0.0.2 开始提供完整的 PDF 版电子书籍
- ❌ 最迟不晚于 2023 年 6 月提供 V0.0.3 版本,并在 V0.0.3 开始将 PDF 电子书籍印刷 30 本供自己和身边的朋友阅读和矫正。
- ❌ 最迟不晚于 2023 年 9 月提供 V0.0.4 版本,并在 V0.0.4 印刷 100 本免费提供给网络上的陌生人阅读和矫正。
- ❌ 如果一切顺利的话,联系出版社给印刷出来。
- ❌ 重新录制完整的视频配套教程
7 个步骤,目前完成了 2 个。一切都按照计划进行中。
最开始写了前面 3 章内容,并在 2022 年 10 月下旬录制了配套视频教程,并分享在 Bilibili 上,有赞的有吐槽的;但是后台数据上来看这类资料在 Solidity 这个垂直语言内还是很受欢迎的。目前在 B 站搜索常见的 Solidity 关键字,我分享的视频教程几乎都是系统默认推荐的第 1 名。总播放量也在 12 月份进了前 10。并在 2022 年 12 月下旬完成了 V0.0.1 版本内容,初步完成了这本书的架构。
第一部分:语言基础
- 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 [email protected]: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