-
Rust 工程结构初探
Rust 项目的依赖管理机制 Rust 的依赖管理是基于项目的根 Cargo.toml 文件,而不是子目录中的 Cargo.toml 文件。如果再子目录的 Cargo.toml 文件中描述,即使同样在子目录中的.rs文件,也会出现识别不到的问题。 我们需要明确 Rust 项目的依赖管理机制。在 Rust 中,依赖管理是基于项目的根 Cargo.toml 文件进行的,而不是子目录中的 Cargo …
-
iOS 图像聚合加载视图 YCImageView 架构设计 & 使用
架构设计 执行设计 使用教程Objective - C使用 URL 加载12345678910111213141516171819202122232425262728293031/// 常规使用/// - Note: 不需要的回调直接传入 nil 即可/// - Note: 注意,以下所有 回调内容 及 option 仅支持 PNG / JPG / JPEG / WebP / GIF 类型UI …
-
字符串最短循环子串
问题问题描述小M在研究字符串时发现了一个有趣的现象:某些字符串是由一个较短的子串反复拼接而成的。如果能够找到这个最短的子串,便可以很好地还原字符串的结构。你的任务是给定一个字符串,判断它是否是由某个子串反复拼接而成的。如果是,输出该最短的子串;否则,输出空字符串""。 例如:当输入字符串为 abababab 时,它可以由子串 ab 反复拼接而成,因此输出 ab;而如果输入 ab …
-
Rust - 值的借用
值的借用是如何工作的?当我们进行变量赋值、传参和函数返回时,如果涉及的数据结构没有实现 Copy trait,就会默认使用 Move 语义转移值的所有权,失去所有权的变量将无法继续访问原来的数据;如果数据结构实现了 Copy trait,就会使用 Copy 语义,自动把值复制一份,原有的变量还能继续访问。 虽然,单一所有权解决了其它语言中值被任意共享带来的问题,但也引发了一些不便。我们上一讲提到: …
-
Rust - 值的所有权
值的生杀大权究竟在谁手上?进入内存管理以后,我们就会一起研究 Rust 学习过程中最难啃的硬骨头:所有权和生命周期。为什么要从这个知识点开始呢?因为,所有权和生命周期是 Rust 和其它编程语言的主要区别,也是 Rust 其它知识点的基础。 其实,所有权和生命周期之所以这么难学明白,除了其与众不同的解决内存安全问题的角度外,另一个很大的原因是,目前的资料对初学者都不友好,上来就讲 Copy &#x …
-
iPhone/iPad AutoLayout 框架 Kirov 架构设计
架构设计Kirov 的能力非常强大,可以让工程师以最快速度还原设计稿,一次编码同时适配 iPhone/iPad 的不同比例设计,同时它非常的轻量化,支持绝对布局与相对布局以及自动适配子视图。 核心代码设计基准整体布局的核心来源于通用抽象出来的设计基准类KirovDesignBasic,其负责承接外部使用者填充进来的设计稿基准值: 123456789101112131415161718 …
-
从零开始的 Rust 修炼生活
前言在当今这个快速发展的软件开发领域,掌握一门高效且安全的编程语言显得尤为重要。Rust,作为一门集性能与安全性于一身的现代系统编程语言,自2010年首次公开以来,便以其独特的所有权系统和零成本抽象理念吸引了大量开发者的关注。本系列文章旨在为初学者提供一条系统学习Rust的道路,从基础语法到高级特性,再到运行机制的深入理解,帮助读者逐步提升,最终达到能够熟练运用Rust解决实际问题的能力。 Ru …
-
找出最长的神奇数列
问题问题描述小F是一个好学的中学生,今天他学习了数列的概念。他在纸上写下了一个由 0 和 1 组成的正整数序列,长度为 n。这个序列中的 1 和 0 交替出现,且至少由 3 个连续的 0 和 1 组成的部分数列称为「神奇数列」。例如,10101 是一个神奇数列,而 1011 不是。现在,小F想知道在这个序列中,最长的「神奇数列」是哪一个。你能帮他找到吗? 如果有多个神奇数列,那么输出最先出现的一个 …
-
洋葱学园 iOS 端组件化重构之路[二]-实施方案
背景基于洋葱学园 iOS 端组件化重构之路[一]-现状梳理 得出的结论与方案,需要验证方案的可行性及实施成本,设计完整架构图和演示工程,包括后续持续集成的改造思路等。 实施目标 中间件的方案,产出完整调度能力的中间件Demo,包含下沉依赖关系演示 列出现有功能的基于中间件改造成本 如何梳理职能范围,拆分力度如何确认(依赖链是否保持单一) 设计完整架构图,确保双端都可基于组件的独立运行单元测试、 …
-
洋葱学园 iOS 端组件化重构之路[一]-现状梳理
背景当前,洋葱学园 iOS 端工程的组件化水平过低,在影响工程师开发效率的同时,又难以兜住持续集成的影响范围,不利于整体工程的高质量建设,已无法满足日益增长的工程预期与精细化控制的需求。 现存问题如下 缺乏组件必要的独立运作能力 缺乏统一中间件进行调度 无法进行单元测试,回归测试成本高 组件间依赖链紊乱,维护成本高 组件化颗粒度过粗,服务下沉不达标,多端引用成本高 目标收益我们期望组件化重 …