Swift改善既有代码的设计 - 翁阳
0 码力 | 48 页 | 4.68 MB | 1 年前37-韦泽华-一键将C和Cpp代码转换为Python能调用的代码
一键将 C/C++ 代码转换为 Python 能调用的代码 韦泽华 大家以前都是怎样调用C++代码呢? 1. Cython 2. boost.python/pybind11 3. ctypes 先不讨论这些工具的优劣 先给大家介绍一下 如何使用c2py来调用C++代码 在此之前给大家看一下要调用的C++代码源文件 • 我肯定是会拿上期所的API来作示范: (看一眼就好了) so)文件 • 第二步,调用代码,并享受完备的type hint。 与其他工具的用法进行一下比较? 与pybind11进行比较 • c2py:两个命令 • pybind11:1137行代码? • 不, 其实是11,376行代码: 跟pybind11比算个什么事?根本 不在一个次元! 要比就和不需要写C++代码的工 具比! 与ctypes进行比较 • c2py:调用代码,并享受type hint。 hint。 • ctypes:调用代码?? 如果把调用C++代码当作吃饭,那么: 工具 科技等级 手撸Cython 手撕猎物;钻木取火 Boost.python/pybind11 用猎枪打猎;在现代化的厨房里做菜 ctypes 在某个便利店里买吃的。(只卖番茄炒蛋) c2py 外卖app 所以 调用C++,认准 现代化的外卖app:c2py https://github.com/nanoric/c2py0 码力 | 12 页 | 1.24 MB | 1 年前3Gitea,新一代的代码托管平台
向中国数字化团队交付被广泛验证、可信赖的通用工具软件。 新一代的代码托管平台 Star 39,000+ 飞致云 上海吉谛 1 Gitea 开源项目介绍 Gitea 企业版介绍 3 Gitea 优势总结 2 代码托管平台的发展历程 阶段一 阶段二 阶段三 •单用户本地编辑; •没有网络功能; •典型产品:RCS、SCCS。 本地代码管理 •C/S 架构体系,支持网络化协作; •依赖中央存储库; •依赖中央存储库; •典型产品:CVS、 SVN、VSS、 TFS、 ClearCase。 集中式代码管理 •去中心化,稳定性和可用性增强; •更高效的代码协同机制; •典型产品:GitHub、GitLab、 Gitea。 分布式代码管理 基于 Git 的分布式 代码托管 具备 DevSecOps 延伸能力 Gitea 是谁? • 2016 年 11 月 fork 自 gogs,开始独立发展; GitHub 使用体验、可私有化部署的新一代的代码托管平台 DevSecOps 延伸能力 CI / CD 包/发布管理 依赖项扫描 百科管理 项目管理 其他能力… 合并请求 代码审查 分支管理 代码仓库 Git代码托管 核心能力 新一代的代码托管平台 Gitea 的定位 遵循典型的 Git flow 工作流程 编写代码 01 创建仓库 管理员创建仓库,分支保护策略0 码力 | 30 页 | 14.34 MB | 1 年前3如何向Go官方提交代码-蒙卓
如何向Go官方提交代码 蒙卓 hi@mzh.io 自我介绍 ● 后端工程师,主要写Go ● 业余搞Go官方库开发 ● 主要喜欢折腾ARM/MIPS 性能优化 ● 第一个中国Go 官方MIPS64 builder 维护者 目录 1. 为啥参与Go开发 2. 如何提交CL 3. 交流技巧 4. 参考资料 为啥参与Go开发? 解决BUG 4000+ issue 2510 TODO AFAIK:As Far As I Know (据我所知) c. IMHO:In My Humble Opition (鄙人认为) One More Thing 版权问题 1. 抄也要抄BSD兼容的代码 a. GPL 不行 b. 闭源更不行 谢谢各位 参考资料 https://github.com/golang/go/issues https://stackoverflow.com/qu0 码力 | 38 页 | 5.95 MB | 1 年前3实现PostgreSQL逻辑复制实战
Postgres Conference China 2016 中国用户大会 实现PostgreSQL逻辑复制实战 王青松 神州飞象(北京)数据科技有限公司 Your Logo 2016Postgres中国用户大会 Postgres Conference China 2016 中国用户大会 简介 逻辑复制的功能是从PG的WAL日志中,读取数 据库更新信息,然后“翻译”(Decode)成逻 Pg的逻辑复制可以根据需求把WAL日志直接翻译成 可以直接解析的SQL语句,并通过槽技术向不同DB 进行传递,从而实现不同DB数据库的复制。 2016Postgres中国用户大会 Postgres Conference China 2016 中国用户大会 如何自定义输出插件 我们所要实现以下几个回调函数: LogicalDecodeStartupCB startup_cb; LogicalDecodeBeginCB0 码力 | 17 页 | 1.90 MB | 1 年前3邓良驹 编写更安全的Python代码
编写安全的Python代码 邓良驹 2019.10.19 思考题 if user.balance >= product.price: user.balance -= product.price ? 目录 CONTENTS 常见不安全代码 代码检查的工具 总结:如何规避风险 常见不安全代码 小心 eval 应对: 在生产环境中,任何情况下都不要使用eval。 import sys 更不要以为 PyPI 源中的包就不存在恶意代码; 不要以为你import的就是你实际要import的*; 每个 PyPI 包都可能存在前述所有风险点, 有的甚至是故意、恶意为之。 应对: 谨慎选择第三方 PyPI 包,尽量少导入 PyPI 包; 利用 https://pyup.io/ 等服务保持检查和更新依赖; 利用 Chef InSpect 落实代码安全规范的检查。 *参考资料:“驹说码事” *参考资料:“驹说码事” 《如何import一个不存在的对象》 https://mp.weixin.qq.com/s/0_ivKVDU-nKf3r-c96sqrA 利用 Bandit 检查代码 记不住那么多点?交给Bandit! https://github.com/PyCQA/bandit https://bandit.readthedocs.io/en/latest/ B101 assert_used B1020 码力 | 18 页 | 988.40 KB | 1 年前3CurveFS rename 接口实现方案
rename 接口实现方案(已实现,选用方案二)© XXX Page 2 of 15 1. 2. 3. 4. 1. 2. 1. 3. 1. 2. 背景 方案调研 Chubaofs Juicefs 方案实现 方案一:chubaofs 方案二:事务方案 方案三:利用 KV 自带的分布式事务 Q&A 1. 是否需要实现跨文件系统的 rename 2:rename A→C (A 存在,而 C 存在) 4. 当 2 个操作的 dentry 属于同一个 copyset 有什么不一样? 背景 当前 curvefs 并没有实现 rename 接口,本文档是对 rename 接口实现的调研及方案设计。 rename 操作,主要操作的是 dentry,如 rename /dir1/file1 /dir2/file2,主要有 2 个步骤:(1) 删除 file1 等同 file1 的 inode id)。 关于 rename 接口的实现,主要调研了 chubaofs 和 juicefs,而 rename 的实现难点主要在于其原子性的保证。 方案调研 Chubaofs chubaofs 中的 rename 实现不是原子性的,它是通 用创建源文件的硬连接,然后删除源文件的方式来实现的,主要有以下 4 步 : 将源文件的 nlink 加一 创建目标文件的0 码力 | 15 页 | 555.93 KB | 5 月前3基于gRPC go实现消息发布订阅
使用gRPC go实现 基于Topic的高效消息订阅发布模型 姓名 张凯 中国电子云 目 录 gRPC go 介绍 01 gRPC四种通信模式及落地场景 02 根据proto生成go桩代码 03 订阅者动态注册 04 发布者消息推送 05 现场案例演示 06 gRPC go介绍 gRPC是什么? 01. 副标题 开篇思考几个问题 01. 副标题 gRPC介绍 gRPC介绍 01. 副标题 gRPC介绍 01. 副标题 gRPC是框架,七层协议 gRPC go是实现,每个语言都有自己的实现 protobuf介绍 01. 副标题 protobuf示例 01. 副标题 gRPC四种通信模式 gRPC四种通信模式 01. 副标题 gRPC四种通信模式 01. 副标题 gRPC的落地场景 基于通信模式如何落地? 01. 副标题 = 1; } 根据Proto生成桩代码 根据Proto生成桩代码 01. 副标题 protoc --go-grpc_out=. --go_out=. pubsub.proto protoc: 这是 Protocol Buffers 编译器的执行命令。 --go-grpc_out=.: 这个选项指定了输出 gRPC 相关的 Go 语言代码的目标目录,. 表示当前目录。protoc-gen-go-0 码力 | 31 页 | 2.42 MB | 1 年前3通过 Electron 托盘(tray)实现后台执⾏⻓任务
tags: electron, node description: 通过 Electron 托盘(tray)实现后台执⾏⻓任务。 Electron 应⽤在执⾏⼀些⻓时间任务(⽐如上传、下载),我们想关闭界⾯后任务依旧执⾏。再次打开界⾯,依旧可以看到正在执⾏的任务以及任 务进度。托盘可以帮我们实现这个功能。 创建托盘和菜单示例 实例化 Tray 并传⼊图标路径; 创建菜单并配置到托盘中。 true }, { label: 'Item4', type: 'radio' } ]) tray.setContextMenu(contextMenu) }) 基于托盘功能实现后台运⾏应⽤ 关闭应⽤前唤醒对话框⼆次确认 关闭应⽤时,触发对话框,可⽀持 3 种场景: 点击「取消」取消关闭操作; 点击「退出」,「后台运⾏」选中时,界⾯关闭,托盘不关闭,任务继续执⾏; setImage(getTrayIcon())); 托盘其他场景 显示未读消息数 tray.setTitle('6') ; 有未读消息时图标闪动:通过 setImage 定时轮询切换图标实现 注意事项 MacOS 全屏退出界⾯是会出现⿊屏问题,解决⽅案 判断如果全屏,在关闭全屏时,先退出全屏再隐藏界⾯ // 修复全屏 hide ⿊屏问题 // https://github.0 码力 | 6 页 | 1.19 MB | 1 年前3基于amqp实现的golang消息队列MaxQ
7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 1/22 基于amqp实现的golang消息队列 MaxQ 2017-07-01 张培培 饿了么-基础框架组 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 MaxQ架构模型 5. MaxQ相关特性 6. 使用场景和案例 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 3/22 1. 队列 跟消息队列相比,有哪些共性? 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 堆积能力 消息可靠性 生产消费关系 Pull/Push 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 5/22 2. IPC消息队列 跟消息队列相比,有哪些共性? 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq0 码力 | 22 页 | 1.45 MB | 1 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100