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
Gitea,新一代的代码托管平台向中国数字化团队交付被广泛验证、可信赖的通用工具软件。 新一代的代码托管平台 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
邓良驹 编写更安全的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
Gitea v1.21.1 中文文档目 录 致谢 Gitea是什么? 安装 对比 Gitea 与其它 Git 托管工具 数据库准备 使用二进制文件安装 使用包管理器安装 使用源代码安装 在 Linux 中以 service 方式运行 注册为Windows服务 使用 Docker 安装 (rootless) 使用 Docker 安装 在 Kubernetes 中安装 Gitea 在云服务器中安装 Gitea 平台软件。从开发计划到产品成型的整个软件生命周期,他都能够高效而轻松的帮 助团队和开发者。包括 Git 托管、代码审查、团队协作、软件包注册和 CI/CD。它与 GitHub、Bitbucket 和 GitLab 等比较类似。 Gitea 最初是从 Gogs 分支而来,几乎所有代码都已更改。对于我们Fork的原因可以看 这里。 Gitea的首要目标是创建一个极易安装,运行非常快速,安装和使用体验良好 x86,amd64、 ARM 和 PowerPC等架构。 代码托管:Gitea⽀持创建和管理仓库、浏览提交历史和代码⽂件、审查和合并代码提交、管理协作者、管理分 ⽀等。它还⽀持许多常见的Git特性,⽐如标签、Cherry-pick、hook、集成协作⼯具等。 轻量级和快速: Gitea 的设计目标之一就是轻量级和快速响应。它不像一些大型的代码托管平台那样臃肿,因 此在性能方面表现出色,适用于资源0 码力 | 303 页 | 3.88 MB | 1 年前3
2024 中国开源开发者报告Agent 逐渐成为 AI 应用的核心架构 68 | 谈开源大模型的技术主权问题 72 | 2024:大模型背景下知识图谱的理性回归 77 | 人工智能与处理器芯片架构 89 | 大模型生成代码的安全与质量 93 | 2024 年 AI 大模型如何影响基础软件行业中 的「开发工具与环境」 98 | 推理中心化:构建未来 AI 基础设施的关键 Part 1:中国开源开发者生态数据 04 生产力-协作开发指数 本部分图表仅用于数据展示,不涉及先后排名 作为国内及业内领先的 AI 开发基础设施,本部分图表 中的开发框架、向量数据库、 开发平台、大模型均表现出 色,代表着它们的代码提交 频率、参与者、代码合并比 率等协作开发工作保持着较 高的水平。 17 / 111 OSS Compass Insight 本部分图表仅用于数据展示,不涉及先后排名 稳健性-活跃度 作为 AI 开发生态中的关键组 例外是 图片、视频等基于扩散模型的生成模型,在创作需求简单的情况下,未必需要通用语言模型这么 大,是一个差异化竞争的机会。 随着专业模型编程能力的提升和 AI Agent 工作流进一步成熟,低代码编程将成为可能,很 36 / 111 多人心中的想法将可以快速转化成应用,应用创业的试错成本已经大幅降低,未来甚至可能出现 Sam Altman 所说的“仅有一个人的 10 亿美金公司”。0 码力 | 111 页 | 11.44 MB | 8 月前3
2.1 gofmt 的文化演变Go源代码格式化工具 定义了“标准“格式 golang.org代码库中所有提交的Go代码都必须通过gofmt格式化过 除了gofmt之外,相同功能可以通过go/format库获得 不需要设置! 4/21/2015 gofmt 的文化演变 http://127.0.0.1:3999/gofmt-cn.slide#1 3/34 初衷 代码审查是软件工程的最佳实践 代码审查是基于代码规范和正规格式的 代码审查是基于代码规范和正规格式的 太多时间浪费在审查格式上而不是代码本身了 但是这工作对机器来说是最好不过了的 第一个决定就是要写一个好的格式美化器 4/21/2015 gofmt 的文化演变 http://127.0.0.1:3999/gofmt-cn.slide#1 4/34 历史 格式美化器和代码美化工具在计算机发展的早期就已出现 对于产生可读的Lisp代码很重要的: GRINDEF (Bill PL/1格式器,作为(早期的)纠错工具 cb (Unix Version 7, 1979) C程序美化器 indent (4.2 BSD, 1983) 缩进和格化化C代码 等等 最近的: ClangFormat C/C++/Objective-C 格式器 Uncrustify0 码力 | 34 页 | 9.97 MB | 1 年前3
Rust语言核心竞争力-庄晓立{ &self.x } struct Foo<'a, T: 'a> { x: &'a T, } Borrow Checker Borrowck是编译器内部组件,负责在 “编译期” 追踪审查引 用的有效性,是保证内存安全的重要功臣。运行时零开销。 fn main() { let mut v = vec![0, 1, 2, 3, 4, 5, 6]; let deleted does // not live long enough } 因为t将先于v被析构(这一点易被忽视) v的析构函数可能访问到无效的t引用! 此处潜在的内存“不安全”代码没能逃过borrowck的法眼。 http://is.gd/HVy7yk fn test1(s: String) {} fn test2(s: &String) {} fn main() { { // B } // A Rust类型系统和编译器从机制上保证,unsafe 代码块以外的代码(A区),一定是内存安全的。 不能被编译器确认是内存安全的代码,必须且 只能写在unsafe代码块内(B区)。 尽量把unsafe代码块限制在最小范围内,并且 用关键字unsafe突出标识出来,便于集中审查 review。 Redox OS kernel: 16.52%, userspace:0 码力 | 51 页 | 1.09 MB | 1 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













