Swift改善既有代码的设计 - 翁阳0 码力 | 48 页 | 4.68 MB | 1 年前3
7-韦泽华-一键将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 年前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
邓良驹 编写更安全的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 年前3
面向亿行 C/C++ 代码的静态分析系统设计及实践-肖枭面向亿行C/C++代码的 静态分析系统设计及实践 肖枭 自我介绍 2016年香港科技大学取得博士学位 过去10年一直以极高的热情从事静态 分析技术的学术用研究 合作创办源伞科技,致力于推动静态 分析技术在企业中的应用 目录 代码质量管理是个大问题 静态分析+代码评审的实践 学习和强调,红线和惩罚,100%的测试 覆盖率,和事后复盘并不够 有经验的程序员也会犯错 对代码提要求很难监督落实 代码的快速变化使质量更难管 生产质量是责任 靠运维和事后复盘善后够吗? 静态分析工具:半智能的代码分析机器人 静态分析辅助代码评审 自动化工具+流程才是未来 Bug! Thx! Bug! 投入大 KPI不痛不痒 使用主体和责任主体不一致 一步登天想要终极AI 代码质量改进工具、流程落地难 Bug! No Thx! DevOps: 代码质量责任应该左移 代码质量责任应该左移 设计 代码 开发 代码 评审 入库 测试 发布 1. 非研发人员主导,沟通成本高,推动修复周期长 2. 很难形成标准推动研发实施 3. 形成技术债,偿债成本高 1. 代码签入前,研发人员有义务修复问题 2. 测试人员早期加入,更懂项目研发的情况,沟通成本低,加快上线 3. 能逐步形成好的编码规范和最佳实践 检查代码风格问题挺准,但是 我warning都不看,还看这个?0 码力 | 39 页 | 6.88 MB | 1 年前3
CmlPHP v2.x 开发手册
'engine'=>''//数据库引擎 ], 'slaves'=> [], //从库配置 //查询数据缓存时间,表数据有变动会自动更新缓存。设置为0表示表数据没变动时缓存不过期。 //这边设置为3600意思是即使表数据没变动也让缓存每3600s失效一次,这样可以让缓存空间更合理的 利用. //如果不想启用缓存直接配置为false //是否开启数据库长连接 'engine' => ''//数据库引擎 ], 'slaves'=>[], //查询数据缓存时间,表数据有变动会自动更新缓存。设置为0表示表数据没变动时缓存不过期。 //这边设置为3600意思是即使表数据没变动也让缓存每3600s失效一次,这样可以让缓存空间更合理的 利用. //如果不想启用缓存直接配置为false product / 某个应用/Config 下创建 api.php 文件在文件中编写以下代码 'http://api.com', 'key' => 'fdfdf' ]; 使用的时候使用以下代码调用即可 $config = Cml\Config::load('api'); //上层Co0 码力 | 143 页 | 1.54 MB | 1 年前3
CmlPHP v2.x 开发手册
'engine'=>''//数据库引擎 ], 'slaves'=> [], //从库配置 //查询数据缓存时间,表数据有变动会自动更新缓存。设置 为0表示表数据没变动时缓存不过期。 //这边设置为3600意思是即使表数据没变动也让缓存每 3600s失效一次,这样可以让缓存空间更合理的利用. //是否开启数据库长连接 'engine' => ''//数据库引擎 ], 'slaves'=>[], //查询数据缓存时间,表数据有变动会自动更新缓存。设置 为0表示表数据没变动时缓存不过期。 //这边设置为3600意思是即使表数据没变动也让缓存每 3600s失效一次,这样可以让缓存空间更合理的利用. product / 某个应 用/Config 下创建 api.php 文件在文件中编写以下代码 'http://api.com', 'key' => 'fdfdf' ]; 使用的时候使用以下代码调用即可 $config = Cml\Config::load('api'); //上层Config目录下0 码力 | 245 页 | 720.67 KB | 1 年前3
CmlPHP v2.x 开发手册
'engine'=>''//数据库引擎 ], 'slaves'=> [], //从库配置 //查询数据缓存时间,表数据有变动会自动更新缓存。设置为0表示表数据没变动时缓存不过期。 //这边设置为3600意思是即使表数据没变动也让缓存每3600s失效一次,这样可以让缓存空间更合理的 利用. //如果不想启用缓存直接配置为false //是否开启数据库长连接 'engine' => ''//数据库引擎 ], 'slaves'=>[], //查询数据缓存时间,表数据有变动会自动更新缓存。设置为0表示表数据没变动时缓存不过期。 //这边设置为3600意思是即使表数据没变动也让缓存每3600s失效一次,这样可以让缓存空间更合理的 利用. //如果不想启用缓存直接配置为false product / 某 个 应 用/Config 下创建 api.php 文件在文件中编写以下代码 'http://api.com', 'key' => 'fdfdf' ]; 使用的时候使用以下代码调用即可 $config = Cml\Config::load('api'); // 上 层 Config0 码力 | 251 页 | 973.37 KB | 1 年前3
ThinkJS 2.2 中文文档result); return this.success(); } } 上面的代码我们使用了 ES6 里的 class , export , let 以及 ES7 里的 async/await 等特性,虽然 查询数据库和写入 Session 都是异步操作,但借助 async/await ,代码都是同步书写的。最后 使用 Babel 进行编译,就可以稳定运行在 Node.js 的环境中了。 ThinkJS 2.1 开始支持了创建 TypeScript 类型的项目,并且开发时会自动编译、自动更新,无需手 工编译等复杂的操作。具体请见这里。 断点调试 从 ThinkJS 2.2.0 版本开始,支持对 ES2015+ 和 TypeScript 项目的断点调试,并且报错信息也会定 位到源代码下,这样可以给开发和调试带来巨大的便利,具体请见断点调试。 支持多种项目结构和多种项目环境 项 语句,还可以自动防止 SQL 注入等安全漏洞。同时支持事务、关联模型等高级 功能。 代码自动更新 ThinkJS 内置了一套代码自动更新的机制,文件修改后立即生效,不用重启 Node.js 服务,也不用 借助第三方模块。 自动创建 REST 接口 使用 thinkjs 命令可以自动创建 REST 接口,不用写任何的代码即可完成 REST API 的开发。如果 想在 REST 接口中过滤字段或者进行权限校验,也很方便处理。0 码力 | 277 页 | 3.61 MB | 1 年前3
百度超级链 XuperChain 3.12-a中文文档} } 接下来 账号管理 预备知识 合约权限管理 共识 智能合约 自研并实现了一套智能合约虚拟机XVM。特点如下: 1. 合约状态数据与合约代码运行环境分离,从而能够支持多语言虚拟机且 各种合约虚拟机只需要做纯粹的无状态合约代码执行; 2. 支持执行消耗资源,避免恶意攻击; 3. 支持丰富的智能合约开发语言,比如go,Solitidy,C/C++,Java等; 4. 利用读写集确 下图是可信账本的系统架构设计 TEESDK是与TEE服务请求的入口,将编译为动态链接库被超级链调用,实 现链上的隐私计算。 可信账本目前支持数据加密存储、数据权限管理、秘钥托管和基本的密文计 算功能,此部分代码暂未开源。 重要接口和数据结构 TEESDK // 提交任务到TEE服务,返回计算结果 func (s *TEEClient) Submit(method string, cipher string) cnt + 1); ctx->put_object(key, buf); ctx->ok(buf); } DEFINE_METHOD(Counter, get) { 代码解析 下面我们逐行解析合约代码: #include为必须的,里面包含了编写合约所需要 的库。 struct Counter : public xchain::Contract 0 码力 | 336 页 | 12.62 MB | 1 年前3
共 551 条
- 1
- 2
- 3
- 4
- 5
- 6
- 56













