Swift 迁移之路 - 唐巧猿辅导公司的 Swift 迁移之路路 唐巧 公司简介 • K12 领域的独⻆角兽公司。 • 拥有 2 亿⽤用户,⽉月活⼏几千万。 • 互联⽹网⼥女女皇报告中的在⼈人⼯工智能领域崛起的 中国公司。 旗下产品 关于我 • 唐巧,⼩小猿搜题产品技术负责⼈人 • ⻓长期分享技术,拥有共计 10 万的微 博和微信公众号粉丝 • 《iOS 开发进阶》、《iOS ⾯面试之 道》作者 道》作者 ⼤大纲 • 猿辅导 App 的 Swift 迁移之路路 • 猿辅导⽼老老师端 App 的 Swift 迁移之路路 • ⼩小猿搜题 App 的 Swift 迁移之路路 Date Version 2014-09-09 Swift 1.0 2014-10-22 Swift 1.1 2015-04-08 Swift 1.2 2015-09-21 Swift 2.0 2016-09-13 2016-09-13 Swift 3.0 2017-09-19 Swift 4.0 2018-03-29 Swift 4.1 2018-07-05 Swift 4.2 猿辅导 的 Swift 迁移之路路 决策回顾 • 背景 • 时间:2016 年年 6 ⽉月 • Swift 版本:Swift 2 • 依赖很重的 C++ 直播库 • 历史 Objective-C 代码⾏行行数:80 码力 | 43 页 | 1.37 MB | 1 年前3
统一建模语言 UML 参考手册 - 基本概念���������������������������������������������������������������������������������������������� ��� 迁移��������������������������������������������������������������������������������������������������� 有两种方式来建模行为 一种是通过与外界交互的对象的生命史 另一种是使 用一系列对象的通信模式 这些相互连接的对象交互实现行为 状态机是被隔离的对象视 图 视图中 对象依照当前状态对事件响应 执行动作 迁移至新状态 状态机在状态 图中显示 � 相互交互对象的系统视图是一种协作 即依赖上下文的对象和互相之间链的视图 连同 对象间数据链上的消息流 该视点在单张视图中统一了数据结构 控制流和数据流 协作 和交互在顺序图和协作图中表达 可替换的系统组成部分 它可以作为满足 相同说明的其它构件替代品 结点是定义了位置的运行时段的运算资源 它可以容纳构件 和对象 配置视图描述了运行系统中结点的配置 构件和对象在结点中的分布 及包括结 点内容的可能迁移 � 模型组织 模型组织 模型组织 模型组织 计算机可以处理大型的模型 但人不可以 大型系统中 建模信息必须划分成 条理分明的单元 以使开发团队可以并发的工作在不同的部分 即使在小型系统中 人类0 码力 | 123 页 | 2.61 MB | 1 年前3
Nacos架构&原理
虎牙直播在微服务改造的实践总结 239 虎牙在全球 DNS 秒级生效上的实践 249 叽里呱啦 Nacos 1.1.2 升级 1.4.1 最佳实践 267 服务发现最佳实践 281 Eureka 平滑迁移 Nacos 方案 281 Nacos 打通 CMDB 实现就近访问 288 跨注册中心服务同步实践 298 配置管理最佳实践 310 Nacos 限流最佳实践 310 Nacos 无缝支持 的通用模型。 Zookeeper、Consul 和 Eureka 在开源层面都没有很明确的针对服务隔离的模型,Nacos 则在⼀ 开始就考虑到如何让用户能够以多种维度进行数据隔离,同时能够平滑的迁移到阿里云上对应的商 业化产品。 Nacos 架构 < 66 图 3 服务的逻辑隔离模型 Nacos 提供了四层的数据逻辑隔离模型,用户账号对应的可能是⼀个企业或者独立的个体,这个数 据⼀般 据⼀般情况下不会透传到服务注册中心。⼀个用户账号可以新建多个命名空间,每个命名空间对应 ⼀个客户端实例,这个命名空间对应的注册中心物理集群是可以根据规则进行路由的,这样可以让 注册中心内部的升级和迁移对用户是无感知的,同时可以根据用户的级别,为用户提供不同服务级 别的物理集群。再往下是服务分组和服务名组成的二维服务标识,可以满足接口级别的服务隔离。 Nacos 1.0.0 介绍的另外⼀个新特性是0 码力 | 326 页 | 12.83 MB | 9 月前3
Laravel 5.2 中文文档目录包含了少许文件用于框架的启动和自动载入配置,还有一个 cache 文件夹 用于包含框架生成的启动文件以提高性能; config 目录包含了应用所有的配置文件; database 目录包含了数据迁移及填充文件,如果你喜欢的话还可以将其作为 SQLite 数据 库存放目录; public 目录包含了前端控制器和资源文件(图片、JavaScript、CSS 等); resources 目录 ->get(); 迁移 1、简介 迁移就像数据库的版本控制,允许团队简单轻松的编辑并共享应用的数据库表结构,迁移 通常和 Laravel 的结构构建器结对从而可以很容易地构建应用的数据库表结构。 Laravel 的 Schema 门面提供了与数据库系统无关的创建和操纵表的支持,在 Laravel 所支 持的所有数据库系统中提供一致的、优雅的、平滑的 API。 2、生成迁移 使用 Artisan make:migration 来创建一个新的迁移: php artisan make:migration create_users_table 新的迁移位于 database/migrations 目录下,每个迁移文件名都包含时间戳从而允许 Laravel 判断其顺序。 --table 和--create 选项可以用于指定表名以及该迁移是否要创建一个新的数据表。这些 选项只需要简单放在上述迁移命令后面并指定表名:0 码力 | 377 页 | 4.56 MB | 1 年前3
Yii 2.0 权威指南輮 輲 輲 輶 輶 輮 輳 活动记录(轁 轣 轴 轩 轶 轥 轒 轥 轣 软 轲 轤 ) 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輲 輴 輳 輶 輮 輴 数据库迁移 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輲 輷 輶 匷 接 接 接收 收 收用 用 用户 户 户数 数 数据 据 据( ( 譨 譥 类看一下它是如何申明和使 用 d b 属性的。 如果你的扩展需要创建特定的数据库表,或者修改数据库结构,你应当 • 提供 数据迁移 来操作数据库的结构修改,而不是使用轓 轑 轌 文本文 件; • 尽量使迁移文件适用于不同的 轄 轂 轍 轓 ; • 在迁移文件中避免使用 轁 轣 轴 轩 轶 轥 轒 轥 轣 软 轲 轤 。 使 使 使用 用 用 十 即 即 卥 却 即 如 如 如果你的扩 互。 • 轹 轩 轩 轳 软 车 轴 輯 轹 轩 轩 輲 輭 轭 软 轮 轧 软 轤 轢 7 7 : 提供了对 轍 软 轮 轧 软 轄 轂 7 8 的使用支持。它包含 基本 的查询、活动记录、数据迁移、缓存、代码生成等特性。 • 轹 轩 轩 轳 软 车 轴 輯 轹 轩 轩 輲 輭 轱 轵 轥 轵 轥 7 9 : 通过队列异步提供运行任务的支持。 它支持 基于 轄 轂 ,轒 轥 轤 轩 轳 ,轒0 码力 | 537 页 | 4.66 MB | 1 年前3
Laravel 5.1 中文文档方法来修改,现 在依然可以这么做;但是为了更加方便可以在模型中简单通过指定$dateFormat 属性来替代 重写方法。 在序列化模型到数组或 JSON 时日期格式也被应用到,当从 Laravel 5.0 迁移到 5.1 时,这 将会改变 JSON 序列化的日期字段的格式。想要在序列化模型中设置指定的日期格式,你 可以在模型中重写 serializeDate(DateTime $date)方法,这样就可以在不改变字段存储格 目录包含了少许文件用于框架的启动和自动载入配置,还有一个 cache 文件夹用 于包含框架生成的启动文件以提高性能; config 目录包含了应用所有的配置文件; database 目录包含了数据迁移及填充文件,如果你喜欢的话还可以将其作为 SQLite 数据库 存放目录; public 目录包含了前端控制器和资源文件(图片、js、css 等); resources 目录包含了视图文件及 get(); 迁移 1、简介 迁移就像数据库的版本控制,允许团队简单轻松的编辑并共享应用的数据库表结构,迁移通 常和 Laravel 的结构构建器结对从而可以很容易地构建应用的数据库表结构。 Laravel 的 Schema 门面提供了与数据库系统无关的创建和操纵表的支持,在 Laravel 所支持 的所有数据库系统中提供一致的、优雅的、平滑的 API。 2、生成迁移 使用 Artisan0 码力 | 307 页 | 3.46 MB | 1 年前3
Laravel 5.3 中文文档........................................................................................ 433 10.4 迁移 .................................................................................................. AC1982(微信号)提供翻译支持。 数据库 集合 查询构建器现在返回 Illuminate\Support\Collection 实例而不是原生数组,以便保持和 Eloquent 返回结果类型一致。 如果你不想要迁移查询构建器结果到 Collection 实例,可以在查询构建器的 get 方法后调用 call 方法,这将会返回原生的 PHP 数组结果,从而保证向后兼容: $users = DB::t 属性已经被移除,以便定义一个“morph map”(变形 映射),定义变形映射可以支持渴求式加载并且解决使用多态关联关系引起的额外 bugs,如果你 之前使用了$morphClass 属性,需要使用如下语法将其迁移到 morphMap: Relation::morphMap([ 'YourCustomMorphName' => YourModel::class, 本文档由 Laravel0 码力 | 691 页 | 9.37 MB | 1 年前3
Laravel 5.6 中文文档$decayMinutes 参数被移除。如果你通过自己的实现重写了该方法,也要从方法签名中移除该参数。 数据库 Morph 列的索引顺序 为了获得更好的性能,迁移方法 morphs 构建的列索引顺序倒过来了,如果你在某个迁移中使用了 morphs 方法,尝试运行该迁移的 down 方法时会报 错。如果应用还在开发中,可以使用 migrate:fresh 命令重构数据库结构;如果应用已经上线,需要显式传递索引名称到 Config 目录 config 目录包含了应用所有的配置文件,建议通读一遍这些配置文件以便熟悉 Laravel 所有默认配置项; Database 目录 database 目录包含了数据库迁移文件及填充文件,如果有使用 SQLite 的话,你还可以将其作为 SQLite 数据库存放目录; Public 目录 public 目录包含了应用入口文件 index.php 和前端资源文件(图片、JavaScript、CSS DB_DATABASE=valet DB_USERNAME=root DB_PASSWORD= 具体配置值以你自己的开发环境设置为准。我们将基于 Laravel 强大的数据库迁移功能创建 users 表,关于数据库迁移后面在数据库部分会详细讨 论,这里我们通过以下命令来生成 users 表即可: php artisan migrate 进入数据库可以看到该表已经生成: 这时,users0 码力 | 377 页 | 14.56 MB | 1 年前3
Laravel 6.0 中文文档Email Trait,可以忽略此更新, 因为该 Trait 内部已经帮我们实现好了。 辅助函数 字符串 & 数组辅助函数包 影响级别:高 所有的 str_ 和 array_ 辅助函数都被迁移到新 的 laravel/helpers Composer 扩展包,如果你使用了这些辅助函数, 需要更新所有调用为使 用 Illuminate\Support\Str 和 Illuminate\Support\Arr queue:work --tries=0 此外,请确保你的应用数据库包含了 failed_jobs 数据表,你可以 通过运行 Artisan 命令 queue:failed-table 来生成这个迁移: php artisan queue:failed-table 请求 Input 门面 影响级别:中等 Input 门面是 Request 门面的翻版,已经被移除,如果你在使 用 Input::get 成的文件,如路由和服务缓存文件。 配置目录 config 目录包含了应用所有的配置文件,建议通读一遍这些配置文 件以便熟悉 Laravel 所有默认配置项。 数据库目录 database 目录包含了数据库迁移文件及填充文件,如果有使用 SQLite 的话,你还可以将其作为 SQLite 数据库存放目录。 对外公开目录 public 目录包含了应用入口文件 index.php 和前端资源文件(图 片、JavaScript、CSS0 码力 | 1442 页 | 14.66 MB | 1 年前3
分布式 KV 存储系统 Cellar 演进之路桶号 存储节点 固定HASH算 法 固定数目 数据分片 桶->存储节点 对照表 Cellar起源—Tair架构 服务层 请求 mdb 响应 ldb fdb rdb 引擎层 迁移 复制 • 中心化集群问题 • 可用性问题 • 性能问题 • 运维问题 Cellar起源—Tair问题 Cellar起源 架构升级 性能优化 可用性优 化 可运维性 Cellar 机器宕机五分钟,数据补全两小时 节点升级,先切走流量再操作? • 节点流量只能切到有其他副本的节点 • 升级后的节点缺少升级期间的写入 Cellar—节点高可用 Cellar—节点高可用 • 秒级容灾 无数据迁移 • 节点静默升级 中心节点 A节点 1分片主 2分片备 B节点 1分片备 2分片主 分片1复制 回写增量log 分片2复制 分片2复制 分片1复制 客户端 分片1&2 log Cellar规划 目录 影响可用性的问题 • 数据迁移 • 请求超时抖动 Cellar—服务可用性提升 Cellar—无损数据迁移 数据迁移的问题 • 迁移速度不可控,易影响业务请求 • 路由表更新瞬间请求失败 • key级别迁移写入,引擎压力大 节点状态指标 • 引擎压力 • 网卡 • 队列 • QPS • ··· Cellar—无损数据迁移 智能调速+全程代理 A节点 B节点 桶20 码力 | 34 页 | 1.66 MB | 1 年前3
共 239 条
- 1
- 2
- 3
- 4
- 5
- 6
- 24













