2.游戏战中陪伴助手微服务架构设计与应用
游戏战中陪伴助手微服务架构设计与应用 张敏 - AndruZhang 腾讯 - 高级后台工程师 目 录 功能介绍 01 早期探索 02 方案设计和工程实现 03 性能和成本优化 04 DevOps 建设 05 总结 & QA 06 功能介绍 第一部分 战中陪伴助手介绍——和平精英最佳第五人 战中陪伴助手介绍——和平精英最佳第五人 • 游戏战斗中指导 / 建议 • 敌人在附近 敌人在附近 & 装备不好 => 建议苟住 别再打架啦,我们装 备不佳,先去躲躲吧 战中陪伴助手介绍——和平精英最佳第五人 • 游戏战斗中指导 / 建议 • 闲聊、鼓励、攻略 • 取得战绩,赞赏一波 毫不留情! 三杀收下! 早期探索 第二部分 需求思考 • 我们的输入是什么? • 游戏对局事件 • Snapshot • Diffs • 玩家位置 • 安全区 • 航线 • - 实时 Faiss 匹配召回 - 问题: - 特征过多(600多维),无法分析 - 聚类结果趋同 方案探索——关键帧 / 路径推荐 模仿某一个玩家的选择 - 专利:《一种在实时游戏对局中,模仿历史胜利玩家打法,并对当前玩家进行打法推荐的方案》 - 发明点:序列截断、偏移算法、帧前进、…… - 思考: - 学习/模仿历史已吃鸡玩家的走位 - 历史玩家的状态,也可作为策略 - 通过特征向量匹配历史玩家0 码力 | 47 页 | 11.10 MB | 1 年前3领域驱动设计&中台/DDD实践中的那些坑
0 码力 | 28 页 | 2.09 MB | 1 年前3Go 1.18 中的泛型
Go 1.18 中的泛型 欧长坤 changkun.de/s/generics118 2022/03/30 1 语法和使用 2 什么时候需要泛型? 3 当使用接口作为函数的形参类型时,函数调用方传递的实际参数可以是完全不同的 类型: type T interface { Add(T) T } func Sum(elems ...T) (sum T) { // T 可以是任何实现 uncomparable type func() } 35 comparable 的困境 Issue #49587, #50646, #50791, #51257, #51338 在 Go1.18 的 spec 中, comparable 的定义: The predeclared interface type comparable denotes the set of all non-interface types Bar(int) 方法 类型集的本质 类型集的基本想法是设计一种能够表达一类类型的机制,这就是集合论的基本想法.设计这种机制的核心难点 是保证不会出现罗素悖论.例如不加以限制的 分类公理是朴素集合论中的导致矛盾的根源. 类型集可以从 ZF 系统来考虑: 外延公理:两个类型集相等,当且仅当他们包含的类型相同 分类公理:给出一个类型集和一个普通接口,存在同 时满足他们的子集 并集公理:两个类型集可以求并集0 码力 | 45 页 | 501.50 KB | 1 年前3领域驱动设计&中台/DDD在旅游电商架构演进中的实践
0 码力 | 47 页 | 1.45 MB | 1 年前3理解Python中的AST 何翔宇
理理解 Python 中的 AST 何翔宇(正⼩小歪) 字节跳动 · 效率⼯工程 · 后端开发⼯工程师 ⽬目录 CONTENTS Intro CPython’s Compiler How to Use AST Library Use AST to Solve Problems Suggestion and Reference Intro CPython’s Compiler Intro tokenize Intro CPython’s Compiler - transform and emit Transform: - 使⽤用 Python/ast.c 中的 PyAST_FromNode() 从解析树中读取 - 根据转换规则 Parser/Python.asdl 使⽤用 Python/python-ast.c ⽣生成 AST - PyAST_CompileObject Library How to Use AST Library 什什么是抽象语法树? 在计算机科学中,抽象语法树(Abstract Syntax Tree,AST),或简称语法树 (Syntax tree),是源代码语法结构的⼀一种抽象表示。它以树状的形式表现编程语⾔言 的语法结构,树上的每个节点都表示源代码中的⼀一种结构。之所以说语法是“抽象” 的,是因为这⾥里里的语法并不不会表示出真实语法中出现的每个细节。0 码力 | 39 页 | 6.95 MB | 1 年前3领域驱动设计&中台/基于DDD的领域建模中的模版和工具实践
0 码力 | 36 页 | 3.81 MB | 1 年前31.8 Go 在持续交付中的实践
0 码力 | 33 页 | 7.85 MB | 1 年前3Rust在Substrate 开发框架中的使用
孙凯超 Rust 在 Substrate 开发框架 中的使用 内容 ● Rust 简介 ● Rust 特性 ● Why blockchain ● 什么是Substrate ● Substrate Runtime 组件 ● Substrate 应用开发 Bugs from Chrome Rust 简介 Performance Safety C, C++ Java JS, Python0 码力 | 37 页 | 967.22 KB | 1 年前3领域驱动设计&中台/Every Entity as A Microservice
0 码力 | 87 页 | 4.02 MB | 1 年前3Raft在Curve存储中的工程实践
r a f t 在 C u r v e 存 储 中 的 工 程 实 践 陈威Curve介绍 01 02 raft和braft 03 raft在Curve中的应用 05 Q&A 04 Curve对raft的优化项目背景 Curve是一个 高性能、更稳定、易运维 的 云原生 分布式存储系统,支持 块存储 和 文件存储 2018~2021 Curve块存储 2021~2022 Curve文件存储 目标 方法 影响力 降本 获客 用户 开发者 操作系统 芯片 数据库 云原生 AI训练 大数据 社区生态Curve介绍 01 02 raft和braft 03 raft在Curve中的应用 05 Q&A 04 Curve对raft的优化RAFT协议简介 什么是raft • raft 是一种新型易于理解的分布式一致性复制协议,由斯坦福大学的Diego Ongaro和John 更完整更清晰的协议描述,更容易理解和实现。 • raft可以解决分布式理论中的CP,即一致性和分区容忍性 • 大多数副本成功即可返回成功 • 速度取决于写的较快的大多数RAFT协议简介 • Leader:负责从客户端接受日志,把日志复制到其 他服务器,当保证安全性的时候告诉其他服务器应用 日志条目到他们的状态机中。 • Candidate: 发起选举。获取大多数选票的候选人将 成为领导者。0 码力 | 29 页 | 2.20 MB | 5 月前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100