 应用 waPC (rust) 做软件测试工具第三届中国 Rust 开发者大会 应用 waPC (rust) 做软件测试工具 Alan poon 潘泳权 大家好! @rustropy_gaming ruito_89 PhoTto / image / chart Webassembly Procedures Call waPC 协议标准化了本机代码调用 WebAssembly 和 WebAssembly 调用本机代码的通信 (messaging) Microservices • Multiple backend product line with complex upstream • Common testing platform 大公司抓包工具的需求 软件测试工具 • 模拟数据规则 • 自动化测试 • Supports http/https/tcp/websocket(MITM) • Can use rust to construct own Support websocket stand in for wasm API 抓包 - Wasm Mock Server wasm 工具 does not invent the wheel 软件测试工具 • 模拟数据规则 • 自动化测试 ModifyRequest(req *http.Request) error{ … req_,err:=wasm.Invoke(ctx,req.url0 码力 | 30 页 | 2.50 MB | 1 年前3 应用 waPC (rust) 做软件测试工具第三届中国 Rust 开发者大会 应用 waPC (rust) 做软件测试工具 Alan poon 潘泳权 大家好! @rustropy_gaming ruito_89 PhoTto / image / chart Webassembly Procedures Call waPC 协议标准化了本机代码调用 WebAssembly 和 WebAssembly 调用本机代码的通信 (messaging) Microservices • Multiple backend product line with complex upstream • Common testing platform 大公司抓包工具的需求 软件测试工具 • 模拟数据规则 • 自动化测试 • Supports http/https/tcp/websocket(MITM) • Can use rust to construct own Support websocket stand in for wasm API 抓包 - Wasm Mock Server wasm 工具 does not invent the wheel 软件测试工具 • 模拟数据规则 • 自动化测试 ModifyRequest(req *http.Request) error{ … req_,err:=wasm.Invoke(ctx,req.url0 码力 | 30 页 | 2.50 MB | 1 年前3
 Zadig 面向开发者的云原生 DevOps 平台xN 监控 / 告警 xN 版本归档 xN 交付追踪 xN 数据度量 xN 服务、工单管理 事件、缺陷管理 想 法 用 户 运行阶段 需求阶段 研发阶段 现代软件交付挑战:开发 5 分钟,上线 2 小时 服务一:设计 | 代码编写 | 构建 | 测试 | 部署 | 发布 服务二:设计 | 开发工程师自助式进行版本发布 • 平台团队可支撑 5 倍以上研发规模扩充 极氪汽车平台工程落地成果 随着中国车企全球增长,海外业务拓展带来全球研发、交付、推广和运营挑战,在这出海挑战中,早期路特斯的软件交付流程 是基于 Jenkins 流水线设计的, Jenkins 的部署与数据中心一一对应。由于路特斯使用的是混合云,且数据中心遍布海外,导 致 Jenkins 数量庞大,随着业务扩张, 构建 DevOps 流程,以减少 整体耗时、提升运维效率和 开发者体验。 解决方案 Zadig 自身秉持 " 云原 生 " 、 " 多环境 " 、 " 无缝接 入 " 等理念,完美契合路特斯 改进软件交付流程的需求。 在多轮方案选型和对比后, 路特斯最终选择 Zadig 作为 新一代 DevOps 平台。 效果收益 1. 每月节省 15 人天 2. 新项目接入效率提升 80 码力 | 59 页 | 81.43 MB | 1 年前3 Zadig 面向开发者的云原生 DevOps 平台xN 监控 / 告警 xN 版本归档 xN 交付追踪 xN 数据度量 xN 服务、工单管理 事件、缺陷管理 想 法 用 户 运行阶段 需求阶段 研发阶段 现代软件交付挑战:开发 5 分钟,上线 2 小时 服务一:设计 | 代码编写 | 构建 | 测试 | 部署 | 发布 服务二:设计 | 开发工程师自助式进行版本发布 • 平台团队可支撑 5 倍以上研发规模扩充 极氪汽车平台工程落地成果 随着中国车企全球增长,海外业务拓展带来全球研发、交付、推广和运营挑战,在这出海挑战中,早期路特斯的软件交付流程 是基于 Jenkins 流水线设计的, Jenkins 的部署与数据中心一一对应。由于路特斯使用的是混合云,且数据中心遍布海外,导 致 Jenkins 数量庞大,随着业务扩张, 构建 DevOps 流程,以减少 整体耗时、提升运维效率和 开发者体验。 解决方案 Zadig 自身秉持 " 云原 生 " 、 " 多环境 " 、 " 无缝接 入 " 等理念,完美契合路特斯 改进软件交付流程的需求。 在多轮方案选型和对比后, 路特斯最终选择 Zadig 作为 新一代 DevOps 平台。 效果收益 1. 每月节省 15 人天 2. 新项目接入效率提升 80 码力 | 59 页 | 81.43 MB | 1 年前3
 C++高性能并行编程与优化 -  课件 - 16 现代 CMake 模块化项目管理指南# 只有清理了 build 以后, • cmake -B build -DQt5_DIR=D:/Qt5 # 才需要重新指定。 科普:类似 Qt 这种亲 Unix 软件,在 Windows 下的目录组织格式 • 例如你安装 Qt 时设置安装路径为 D:/Qt5.12.1 。 • 则你会看到他下面有几个子目录: • D:/Qt5.12.1/msvc2017_64 同目录的限制,所以可以照常放到 lib 目录。 (他真的我哭死) 科普:类似 Qt 这种亲 Unix 软件,在 Linux 下的目录组织格式 • Linux 用户从源码安装 Qt 这种库时,会有一个 --prefix 选项,指定安装的根路径。 • 默认的 --prefix 是 /usr ,这个路径由全部软件共享, Qt 会把他的文件安装到以下目录: • /usr/include/qt/QtCore/qstring /usr/lib/cmake/Qt5/Qt5Config.cmake (包配置文件,用于 find_package ) • 假如你指定 --prefix=/usr/local ,这个路径通常是用户自己手动装的软件,那么就会变成: • /usr/local/lib/cmake/Qt5/Qt5Config.cmake • 假如你指定 --prefix=/opt/myqtroot ,那么就会变成: • /o0 码力 | 56 页 | 6.87 MB | 1 年前3 C++高性能并行编程与优化 -  课件 - 16 现代 CMake 模块化项目管理指南# 只有清理了 build 以后, • cmake -B build -DQt5_DIR=D:/Qt5 # 才需要重新指定。 科普:类似 Qt 这种亲 Unix 软件,在 Windows 下的目录组织格式 • 例如你安装 Qt 时设置安装路径为 D:/Qt5.12.1 。 • 则你会看到他下面有几个子目录: • D:/Qt5.12.1/msvc2017_64 同目录的限制,所以可以照常放到 lib 目录。 (他真的我哭死) 科普:类似 Qt 这种亲 Unix 软件,在 Linux 下的目录组织格式 • Linux 用户从源码安装 Qt 这种库时,会有一个 --prefix 选项,指定安装的根路径。 • 默认的 --prefix 是 /usr ,这个路径由全部软件共享, Qt 会把他的文件安装到以下目录: • /usr/include/qt/QtCore/qstring /usr/lib/cmake/Qt5/Qt5Config.cmake (包配置文件,用于 find_package ) • 假如你指定 --prefix=/usr/local ,这个路径通常是用户自己手动装的软件,那么就会变成: • /usr/local/lib/cmake/Qt5/Qt5Config.cmake • 假如你指定 --prefix=/opt/myqtroot ,那么就会变成: • /o0 码力 | 56 页 | 6.87 MB | 1 年前3
 Zadig 产品使用手册Tekton Jenkins KubeSphere 1 、 敏捷协作方案介绍 持续集成 (CI) -> 持续交付 (CD) -> 持续部署 (CD) -> 持续运营 (CO) 质量右移 质量左移 软件研发核心工程实践:基于质量工程的持续交付体系( CI/CD 、 CO 、 CT 、 CS ) 工 程 实 践 : • 持 续 集 成 ( C I 针 对 代 码 ) • 持 续 交 付 ( C / 基 础 设 施 • 测 试 / 安 全 团 队 持续测试 (Continuous Testing) 持续安全 (Continuous Security) 软件研发核心工程实践:交付工程 CI/CD 开发者实践 软件研发核心工程实践:全流程质量工程实践 - 持续测试 CT/ 持续安全 CS 协 同 特 点 : • 流 程 可 定 义 • 工 具 可 扩 展 • 能 力 可 编0 码力 | 52 页 | 22.95 MB | 1 年前3 Zadig 产品使用手册Tekton Jenkins KubeSphere 1 、 敏捷协作方案介绍 持续集成 (CI) -> 持续交付 (CD) -> 持续部署 (CD) -> 持续运营 (CO) 质量右移 质量左移 软件研发核心工程实践:基于质量工程的持续交付体系( CI/CD 、 CO 、 CT 、 CS ) 工 程 实 践 : • 持 续 集 成 ( C I 针 对 代 码 ) • 持 续 交 付 ( C / 基 础 设 施 • 测 试 / 安 全 团 队 持续测试 (Continuous Testing) 持续安全 (Continuous Security) 软件研发核心工程实践:交付工程 CI/CD 开发者实践 软件研发核心工程实践:全流程质量工程实践 - 持续测试 CT/ 持续安全 CS 协 同 特 点 : • 流 程 可 定 义 • 工 具 可 扩 展 • 能 力 可 编0 码力 | 52 页 | 22.95 MB | 1 年前3
 C++高性能并行编程与优化 -  课件 - 05 C++11 开始的多线程编程中的工程实践:从 primitive 说起 13.结业典礼:总结所学知识与优秀作业点评 I 硬件要求: 64 位( 32 位时代过去了) 至少 2 核 4 线程(并行课…) 英伟达家显卡( GPU 专题) 软件要求: Visual Studio 2019 ( Windows 用户) GCC 9 及以上( Linux 用户) CMake 3.12 及以上(跨平台作业) Git 2.x (作业上传到 GitHub 章:线程 进程与线程 • 进程是一个应用程序被操作系统拉起来加载到内存之后从开始执行到执行结束的这样一个 过程。简单来说,进程是程序(应用程序,可执行文件)的一次执行。比如双击打开一个 桌面应用软件就是开启了一个进程。 • 线程是进程中的一个实体,是被系统独立分配和调度的基本单位。也有说,线程是 CPU 可 执行调度的最小单位。也就是说,进程本身并不能获取 CPU 时间,只有它的线程才可以。 不同在于:他的解构函数里会 自动调用 join() 函数,从而保证 pool 解 构时会自动等待全部线程执行完毕。 小彭老师快乐吐槽时间 • 多线程、异步、无阻塞、并发,能提升程序响应速度,对现实世界中的软件工程至关重要 。 • 反面教材: blender 在运行物理解算的时候,界面会卡住,算完一帧后窗口才能刷新一遍 ,导致解算过程中基本别想做事,这一定程度上归功于 opengl 原始的单线程设计。0 码力 | 79 页 | 14.11 MB | 1 年前3 C++高性能并行编程与优化 -  课件 - 05 C++11 开始的多线程编程中的工程实践:从 primitive 说起 13.结业典礼:总结所学知识与优秀作业点评 I 硬件要求: 64 位( 32 位时代过去了) 至少 2 核 4 线程(并行课…) 英伟达家显卡( GPU 专题) 软件要求: Visual Studio 2019 ( Windows 用户) GCC 9 及以上( Linux 用户) CMake 3.12 及以上(跨平台作业) Git 2.x (作业上传到 GitHub 章:线程 进程与线程 • 进程是一个应用程序被操作系统拉起来加载到内存之后从开始执行到执行结束的这样一个 过程。简单来说,进程是程序(应用程序,可执行文件)的一次执行。比如双击打开一个 桌面应用软件就是开启了一个进程。 • 线程是进程中的一个实体,是被系统独立分配和调度的基本单位。也有说,线程是 CPU 可 执行调度的最小单位。也就是说,进程本身并不能获取 CPU 时间,只有它的线程才可以。 不同在于:他的解构函数里会 自动调用 join() 函数,从而保证 pool 解 构时会自动等待全部线程执行完毕。 小彭老师快乐吐槽时间 • 多线程、异步、无阻塞、并发,能提升程序响应速度,对现实世界中的软件工程至关重要 。 • 反面教材: blender 在运行物理解算的时候,界面会卡住,算完一帧后窗口才能刷新一遍 ,导致解算过程中基本别想做事,这一定程度上归功于 opengl 原始的单线程设计。0 码力 | 79 页 | 14.11 MB | 1 年前3
 C++高性能并行编程与优化 -  课件 - 11 现代 CMake 进阶指南CMake 和古代 CMake 相比,使用 更方便,功能更强大。 为什么要学习现代 CMake ? 现代 CMake : 古代 CMake : 第 0 章:命令行小技巧 传统的 CMake 软件构建 / 安装方式 • mkdir build • cd build • cmake .. • make -j4 • sudo make install • cd .. • 需要先创建 是一个跨平台的构建系统,可以从 CMakeLists.txt 生成不同类型的构建系 统(比如 Linux 的 make , Windows 的 MSBuild ),从而让构建规则可以只写一份,跨平 台使用。 • 过去的软件(例如 TBB )要跨平台,只好 Makefile 的构建规则写一份, MSBuild 也写一份 。 • 现在只需要写一次 CMakeLists.txt ,他会视不同的操作系统,生成不同构建系统的规则文件。 图形界面编辑各个缓存选项。 • 当然,直接用编辑器打开 build/CMakeCache.txt 修改后保存也是可以的。 • CMakeCache.txt 用文本存储数据,就是可供用 户手动编辑,或是被第三方软件打开并解析的。 缓存变量到底该如何更新?暴力解决:删 build 大法 用万能的“删 build 大法”当然是可以的。这样重新执行的时候缓存变量不存在, 从而 set 会重新设置缓存的值为 world0 码力 | 166 页 | 6.54 MB | 1 年前3 C++高性能并行编程与优化 -  课件 - 11 现代 CMake 进阶指南CMake 和古代 CMake 相比,使用 更方便,功能更强大。 为什么要学习现代 CMake ? 现代 CMake : 古代 CMake : 第 0 章:命令行小技巧 传统的 CMake 软件构建 / 安装方式 • mkdir build • cd build • cmake .. • make -j4 • sudo make install • cd .. • 需要先创建 是一个跨平台的构建系统,可以从 CMakeLists.txt 生成不同类型的构建系 统(比如 Linux 的 make , Windows 的 MSBuild ),从而让构建规则可以只写一份,跨平 台使用。 • 过去的软件(例如 TBB )要跨平台,只好 Makefile 的构建规则写一份, MSBuild 也写一份 。 • 现在只需要写一次 CMakeLists.txt ,他会视不同的操作系统,生成不同构建系统的规则文件。 图形界面编辑各个缓存选项。 • 当然,直接用编辑器打开 build/CMakeCache.txt 修改后保存也是可以的。 • CMakeCache.txt 用文本存储数据,就是可供用 户手动编辑,或是被第三方软件打开并解析的。 缓存变量到底该如何更新?暴力解决:删 build 大法 用万能的“删 build 大法”当然是可以的。这样重新执行的时候缓存变量不存在, 从而 set 会重新设置缓存的值为 world0 码力 | 166 页 | 6.54 MB | 1 年前3
 Rust分布式账务系统 - 胡宇资损 bug 不可怕,快速迭代 可靠性 丢数据 = 资损 允许数据丢失 性能 超低延迟 + 高吞吐 超高吞吐 交易日志 审计,监管 调试使用 分布式账务系统 Fintech 领域中的软件与互联网软件的不同 需求分析 支付处理: ● 转账 ● 冻资 / 解资 ● 账户限额 ● 批处理事务 正确性:无双花或少付 审计监管:交易日志不可篡改,交易历史可回溯 条件事务:根据一定的条件决定事务执行与否0 码力 | 27 页 | 12.60 MB | 1 年前3 Rust分布式账务系统 - 胡宇资损 bug 不可怕,快速迭代 可靠性 丢数据 = 资损 允许数据丢失 性能 超低延迟 + 高吞吐 超高吞吐 交易日志 审计,监管 调试使用 分布式账务系统 Fintech 领域中的软件与互联网软件的不同 需求分析 支付处理: ● 转账 ● 冻资 / 解资 ● 账户限额 ● 批处理事务 正确性:无双花或少付 审计监管:交易日志不可篡改,交易历史可回溯 条件事务:根据一定的条件决定事务执行与否0 码力 | 27 页 | 12.60 MB | 1 年前3
 Rust 异步并发框架在移动端的应用 - 陈明煜chenmingyu4@huawei.com 华为 公共开发部 嵌入式软件能力中心 本科就读加州大学圣地亚哥分校,毕业时长两年半, Rustacean 在 华为 目前正在使用 Rust 开发并行调度框架等模块。 Rust 异步并发框架在移动端的应用 陈明煜 chenmingyu4@huawei.com 华为 公共开发部 嵌入式软件能力中心 Applications of Rust Runtime0 码力 | 25 页 | 1.64 MB | 1 年前3 Rust 异步并发框架在移动端的应用 - 陈明煜chenmingyu4@huawei.com 华为 公共开发部 嵌入式软件能力中心 本科就读加州大学圣地亚哥分校,毕业时长两年半, Rustacean 在 华为 目前正在使用 Rust 开发并行调度框架等模块。 Rust 异步并发框架在移动端的应用 陈明煜 chenmingyu4@huawei.com 华为 公共开发部 嵌入式软件能力中心 Applications of Rust Runtime0 码力 | 25 页 | 1.64 MB | 1 年前3
 使用硬件加速Tokio - 戴翔Golangci-lint 的 Maintainer • 现在主要专注于服务网格领域,探索云原生软硬件结 合新范式 • Github ID: daixiang0 自我介绍 Cathy Lu • Intel 软件工程师 • 专注于 NFV, 电信网络云化等方案 Rust currently provides only the bare essentials for writing async code0 码力 | 17 页 | 1.66 MB | 1 年前3 使用硬件加速Tokio - 戴翔Golangci-lint 的 Maintainer • 现在主要专注于服务网格领域,探索云原生软硬件结 合新范式 • Github ID: daixiang0 自我介绍 Cathy Lu • Intel 软件工程师 • 专注于 NFV, 电信网络云化等方案 Rust currently provides only the bare essentials for writing async code0 码力 | 17 页 | 1.66 MB | 1 年前3
 C++高性能并行编程与优化 -  课件 - 01 学 C++ 从 CMake 学起中的工程实践:从 primitive 说起 13.结业典礼:总结所学知识与优秀作业点评 I 硬件要求: 64 位( 32 位时代过去了) 至少 2 核 4 线程(并行课…) 英伟达家显卡( GPU 专题) 软件要求: Visual Studio 2019 ( Windows 用户) GCC 9 及以上( Linux 用户) CMake 3.12 及以上(跨平台作业) Git 2.x (作业上传到 GitHub0 码力 | 32 页 | 11.40 MB | 1 年前3 C++高性能并行编程与优化 -  课件 - 01 学 C++ 从 CMake 学起中的工程实践:从 primitive 说起 13.结业典礼:总结所学知识与优秀作业点评 I 硬件要求: 64 位( 32 位时代过去了) 至少 2 核 4 线程(并行课…) 英伟达家显卡( GPU 专题) 软件要求: Visual Studio 2019 ( Windows 用户) GCC 9 及以上( Linux 用户) CMake 3.12 及以上(跨平台作业) Git 2.x (作业上传到 GitHub0 码力 | 32 页 | 11.40 MB | 1 年前3
共 16 条
- 1
- 2













