VeighNa · 第 5 章 网关与应用抽象


文档摘要

VeighNa · 第 5 章 网关与应用抽象 章节摘要:本章精读 VeighNa 的"契约层"——BaseGateway、BaseApp、BaseDatabase、BaseDatafeed 四个抽象基类。它们定义了所有插件(网关/应用/数据库/数据服务)必须遵守的接口契约,是"核心+插件"架构能落地的根基。BaseGateway 最重:它定义了网关开发的三大铁律(线程安全/非阻塞/自动重连),7 个抽象方法(connect/sendorder/...),以及 onxxx 回调如何把数据封装成 Event 并投递到事件总线。BaseApp 极简(纯类属性契约)。BaseDatabase/BaseDatafeed 用 importmodule 动态加载。本章共 2 节,前置依赖为第 14 章。

VeighNa · 第 5 章 网关与应用抽象

章节摘要:本章精读 VeighNa 的"契约层"——BaseGateway、BaseApp、BaseDatabase、BaseDatafeed 四个抽象基类。它们定义了所有插件(网关/应用/数据库/数据服务)必须遵守的接口契约,是"核心+插件"架构能落地的根基。BaseGateway 最重:它定义了网关开发的三大铁律(线程安全/非阻塞/自动重连),7 个抽象方法(connect/send_order/...),以及 on_xxx 回调如何把数据封装成 Event 并投递到事件总线。BaseApp 极简(纯类属性契约)。BaseDatabase/BaseDatafeed 用 import_module 动态加载。本章共 2 节,前置依赖为第 1~4 章。

学习目标

阅读完本章,你应当能够:

  1. 理解 BaseGateway 的三大铁律与契约设计。
  2. 逐行读懂 on_tick/on_order 等 on_xxx 回调如何封装 Event 并 put。
  3. 说清 7 个抽象方法(send_order 返回 vt_orderid 等)。
  4. 理解 BaseApp 为何是"纯类属性契约"。
  5. 说清 BaseDatabase/BaseDatafeed 的 import_module + 单例工厂模式。

核心概念速览

抽象基类定义契约,插件实现契约,核心零硬依赖——开闭原则的落地。

子章节导航

01 BaseGateway 网关契约与 on_xxx 回调

三大铁律;default_name/default_setting/exchanges 类属性;on_event 通用入口 + on_tick 推送全局+按 vt_symbol 双 topic;7 个抽象方法;send_quote/query_history 默认实现。

02 BaseApp 与 BaseDatabase/BaseDatafeed 动态加载

BaseApp 纯类属性契约(app_name/engine_class/widget_name...);BaseDatabase 8 个抽象方法 + get_database 单例工厂 + import_module;BaseDatafeed 同构设计(默认空实现优雅失败)。

子章节之间的逻辑关系

本章第 01 节(BaseGateway) ──► 第 02 节(BaseApp/Database/Datafeed) │ ▼ 下一章(第 6 章 BarGenerator 与 ArrayManager)

前置知识与后续延伸

前置知识:

  • 第 1~4 章(理解事件引擎与 MainEngine 装配)

后续延伸:

  • 外部包 vnpy_ctp 实现 BaseGateway(本教程不展开外部包)
  • 第 6~8 章讲网关之上策略怎么用工具

发布者: 作者: 灏天文库 转发
评论区 (0)
U