在区块链开发的学习路径中,Solidity 无疑是最核心的敲门砖。作为以太坊智能合约的首选编程语言,它兼具了 JavaScript 的易读性与 C++ 的严谨性,是构建去中心化应用(DApp)的基石。本次《跟宁哥学区块链开发(2)》课程,正是专为希望系统掌握 Solidity 语言特性并具备实战能力的开发者打造。无论你是刚刚踏入区块链领域的初学者,还是希望深入理解智能合约底层逻辑的进阶工程师,这门体系课都将为你构建起完整而扎实的知识框架。
课程开篇即从基础环境搭建入手,摒弃了“照本宣科”的枯燥理论,让你在实践中快速上手。你将学习如何安装本地 Remix 开发环境,这是目前最流行且友好的在线及离线 IDE 之一;同时,课程也涵盖了使用 solcjs 编译器与 testrpc 进行合约编译和测试的标准流程,确保你具备独立验证代码的能力。此外,对于习惯使用重型编辑器的开发者,Intellij IDEA 的 Solidity 插件配置也是必修环节,帮助你提升开发效率。更值得一提的是,课程还深入讲解了如何利用 AJAX 和 Node.js 异步访问智能合约,填补了从链上合约到链下 Web 页面交互的关键空白,让你真正理解前后端分离架构在 DApp 中的落地方式。
在核心的语言特性章节,课程内容极其详尽,覆盖了 Solidity 的所有基础数据类型。从最简单的布尔型(bool)、整数型(int)到浮点型(fixed),再到区块链特有的地址型(address)——这是理解账户、合约间交互的关键类型。课程详细解析了字符串与字节数组(bytes)的区别与使用场景,枚举类型(enum)在状态机设计中的妙用,以及函数类型作为一等公民的独特语法。对于复杂的数据结构,老师通过数组、结构体(struct)和映射(mapping)三个维度层层递进,特别是映射这一类似哈希表的数据结构,它是实现代币余额存储、用户权限管理等业务逻辑的核心工具。此外,关于数据存储位置(Storage/Memory/Calldata)的讲解,直接关系到 Gas 成本的控制,是编写高效合约必须掌握的进阶知识。
在表达式与控制结构部分,课程聚焦于函数的输入输出参数设计,以及如何通过 if/else、for/while 等控制语句构建复杂的业务逻辑。值得注意的是,Solidity 中的 `delete` 关键字行为与其他语言有所不同,课程对此进行了专项剖析,帮助开发者避免潜在的逻辑陷阱。
总体而言,这门课程不仅注重语法的全面性,更强调工程化的实战思维。从环境配置的繁琐细节,到数据类型的精确定义,再到合约与 Web 端的联调测试,每一步都经过精心打磨。跟随宁哥的指引,你将不再仅仅是“会写”合约,而是能够“写好”合约,为后续深入学习 ERC 标准、DeFi 协议或 NFT 开发打下不可替代的基础。如果你立志成为区块链全栈开发者,这是一门不容错过的入门必修课。
课程目录
课程目录45 集
- 1-1 [基础知识] Solidity语言简介 (12:57).mp4
- 1-2 [基础知识] 安装本地remix开发环境 (05:56).mp4
- 1-3 [基础知识] 编译和测试智能合约(solcjs和testrpc) (40:46).mp4
- 1-4 [基础知识] Intellij IDEA Solidity插件 (14:11).mp4
- 1-5 [基础知识] 使用AJAX和Node.js异步访问智能合约 (24:38).mp4
- 1-6 [基础知识] 在Web页面访问智能合约【思考题】 (06:25).mp4
- 2-1 [Solidity语言的数据类型] 布尔(bool)类型 (05:10).mp4
- 2-2 [Solidity语言的数据类型] 整数(int)类型 (09:05).mp4
- 2-3 [Solidity语言的数据类型] 浮点(fixed)类型 (04:15).mp4
- 2-4 [Solidity语言的数据类型] 地址(address)类型 (05:41).mp4
- 2-5 [Solidity语言的数据类型] 字符串(string)类型和字节数组(bytes)类型 (14:53).mp4
- 2-6 [Solidity语言的数据类型] 枚举类型(enum) (07:26).mp4
- 2-7 [Solidity语言的数据类型] 函数类型 (11:59).mp4
- 2-8 [Solidity语言的数据类型] 数据存储位置 (08:35).mp4
- 2-9 [Solidity语言的数据类型] 数组 (16:39).mp4
- 2-10 [Solidity语言的数据类型] 结构体(struct) (11:38).mp4
- 2-11 [Solidity语言的数据类型] 映射(字典) (10:48).mp4
- 2-12 [Solidity语言的数据类型] 重置变量(delete) (14:12).mp4
- 3-1 [表达式与控制结构] 函数的输入参数和输出参数 (03:44).mp4
- 3-2 [表达式与控制结构] 结构控制语句 (08:14).mp4
- 3-3 [表达式与控制结构] view函数和pure函数 (09:30).mp4
- 3-4 [表达式与控制结构] 函数调用(使用new创建合约) (09:01).mp4
- 3-5 [表达式与控制结构] 返回多值函数与多值解构 (09:35).mp4
- 4-1 [计量单位] 时间计量单位 (05:00).mp4
- 4-2 [计量单位] 以太坊计量单位 (06:24).mp4
- 5-1 [其他Solidity技术] 异常处理 (18:18).mp4
- 5-2 [其他Solidity技术] 合约成员的访问权限 (12:13).mp4
- 5-3 [其他Solidity技术] getter函数 (06:46).mp4
- 5-4 [其他Solidity技术] 函数重载 (07:32).mp4
- 5-5 [其他Solidity技术] 智能合约中的事件【练习题】 (21:19).mp4
- 5-6 [其他Solidity技术] 智能合约的继承 (16:50).mp4
- 5-7 [其他Solidity技术] 抽象合约 (08:32).mp4
- 5-8 [其他Solidity技术] 接口 (05:11).mp4
- 5-9 [其他Solidity技术] 编写和使用库【练习题】 (11:44).mp4
- 6-1 [练习题答案] 用于计数的智能合约程序 (08:43).mp4
- 6-2 [练习题答案] 在Web页面中访问智能合约 (09:49).mp4
- 6-3 [练习题答案] 编写通用函数用于连接字符串 (20:34).mp4
- 6-4 [练习题答案] 基于事件的用于计算斐波那契数列的智能合约 (24:41).mp4
- 6-5 [练习题答案] 编写和使用库 (18:30).mp4
- 7-1 [项目实战:投票智能合约] 项目简介 (01:15).mp4
- 7-2 [项目实战:投票智能合约] 初始化投票智能合约 (16:55).mp4
- 7-3 [项目实战:投票智能合约] 授权与投票 (12:24).mp4
- 7-4 [项目实战:投票智能合约] 委托投票 (11:35).mp4
- 7-5 [项目实战:投票智能合约] 获取投票结果 (10:59).mp4
- 7-6 [项目实战:投票智能合约] 使用web3.js测试投票智能合约 (14:40).mp4






