Gobin v1.2.0 已经发布。这是一个向后兼容的功能版本,核心目标很明确:让一个静态博客项目从“能快速构建”,继续往“能长期维护、能放心发布、能顺手部署”推进。
Engineering Notes
孟斌的小站
技术博客与学习记录
背景
在之前的文章中,我们成功实现了 gRPC-Web 项目,通过 HTTP/1.1 协议调用 gRPC 服务。但在某些场景下,我们可能需要使用 WebSocket 来调用 gRPC 服务,比如:
前言
本文记录了一个完整的 gRPC-Web 项目的实现过程,包括使用 Go 实现 gRPC 服务端(包含流式服务)、使用 TypeScript 通过 gRPC-Web 调用服务,以及通过 Envoy 代理的完整配置。在整个实现过程中,我们遇到了多个技术挑战并逐一解决,希望这篇文章能帮助其他开发者避免类似的坑。
gRPC-Web 是一个官方提供的技术标准和相关实现,它允许直接从浏览器中的 JavaScript 应用程序调用 gRPC 服务。我们可以把它看作是 gRPC 在浏览器环境中的适配器。
本文记录了一次生产环境中遇到的性能问题排查和优化过程,包括Redis内存泄漏和数据库IO过高的诊断与解决。
这是一篇根据实际经验整理的「微信公众号网页授权配置」开发踩坑记录。希望能帮你绕开我走过的那些坑。
题目描述
找出同时满足以下4个条件的所有三位数(即000-999):
课程结构
第一部分:基础入门(第 0-2 课)
- 第 0 课:搭建开发环境(Remix / Foundry / Hardhat)
- 第 1 课:部署第一个合约
- 第 2 课:合约交互(view/pure vs 状态修改)
第二部分:语言核心(第 3-12 课)
- 第 3-4 课:事件与错误处理
- 第 5 课:外部调用与重入防护
- 第 6 课:存储布局(storage/memory/calldata)
- 第 7-8 课:函数可见性、继承与接口
- 第 9-12 课:事件日志、fallback、错误处理、ABI 编码
第三部分:高级特性(第 13-22 课)
- 第 13-14 课:低级调用(call/delegatecall)、代理模式
- 第 15-18 课:库、支付模式、权限管理、Diamond 标准
- 第 19-20 课:安全专题(常见攻击与防御)
- 第 21-22 课:Gas 优化、ERC20 实现
第四部分:实战项目(第 23-35 课)
- 第 23 课:NFT(ERC721/ERC1155)
- 第 24 课:众筹合约
- 第 25-26 课:DEX、借贷合约
- 第 27 课:DAO 治理
- 第 28-31 课:安全审计案例(The DAO、Parity、Nomad)
- 第 32-36 课:DeFi 基础、多签钱包、DEX 实战
第五部分:DeFi 进阶(第 37-48 课)
- 第 37-39 课:资金池、利率模型、清算机制、aToken
- 第 40-42 课:风险控制、协议费、多市场支持
- 第 43-45 课:清算进阶、利率曲线、复利机制
- 第 46-48 课:跨链借贷、治理代币、前端 DApp 集成
核心知识点
Solidity 基础
- 数据类型、存储位置、函数类型、可见性、继承、错误处理
安全编程
- 重入防护、权限控制、CEI 模式、Pull 支付、Gas 优化
设计模式
- 代理模式(透明代理、UUPS、Diamond)、访问控制、可升级合约
标准协议
- ERC20、ERC721、ERC1155、ERC165、EIP-2535
DeFi 核心
- 资金池、利率模型、清算机制、价格预言机、DAO 治理
实战项目
- HelloWorld / Counter 合约
- ERC20 / ERC721 / ERC1155 代币
- 众筹合约 / DEX / 借贷池
- 多签钱包 / DAO 治理
- 完整 DeFi 协议(借贷、清算、治理)
工具链
- 开发:Remix IDE、Foundry、Hardhat、VSCode
- 测试:Foundry Test、Hardhat Test
- 部署:forge script、hardhat deploy、Anvil
- 前端:ethers.js、React、MetaMask
学习路径
- 初学者:第 0-2 课 → 第 3-12 课 → 第 13-16 课 → 第 22-24 课
- 进阶:第 17-21 课 → 第 25-27 课 → 第 28-31 课 → 第 32-36 课
- 专业:第 37-48 课(完整 DeFi 协议开发)
安全原则
- 最小权限原则
- CEI 模式(Check-Effects-Interactions)
- Pull 支付模式
- 输入验证
- 重入防护(ReentrancyGuard)
- 避免时间依赖
- 外部调用谨慎处理
- 重要操作记录事件
- 上线前代码审计
常见陷阱
- 开发:存储槽冲突、函数选择器碰撞、delegatecall 陷阱、Gas 限制
- 安全:重入攻击、整数溢出、权限绕过、时间依赖
- 部署:代理合约构造函数、初始化函数、升级兼容性、事件索引限制
推荐资源
声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。
Author: mengbin
blog: mengbin
Github: mengbin92
腾讯云开发者社区:孟斯特
鸽了大半个月,终于收尾了
1、学习目标
通过本课你将掌握: