本期概要
- 本期论题:DevOps 再了解
- 本周学习:OC 类信息解析
- 内容引荐: WWDC 2022 上推出的新技能(三番)
- 摸一下鱼:一款跨渠道摸鱼神器 Thief,一款用来生成骚话生成器的生成器 sao-gen-gen
本期论题
DevOps 再了解
CI/CD 和 DevOps 有什么区别?假如你不能精确答复的话,能够读一下这篇介绍,对 DevOps 再次加深了解。内容首要参考自《软件研制效能提高之美》。
DevOps 是 Development和 Operations 的组合,即开发和运维,再加上确保质量的测验,就构成了完好的 DevOps。一般 DevOps 会用下图表明:
DevOps 要处理的问题首要有两个:
1、开发流程中本来的三方是各自独立且顺序依托的。这样功率会很低,DevOps 将开发流程中本来独立的三方进行聚合,这也是为什么它的结构是一个堆叠的环形结构。
2、传统的开发形式更新迭代比较慢。DevOps 接纳灵敏开发中快速迭代思想,将各个开发环节都规划成自动化、可继续的流程。
DevOps 不是详细的开发东西,而是一种软件研制管理形式和思想,是一种文化实践,所有在确保质量的前提下提高效能的办法都归于 DevOps 的领域。围绕这个理念催生出了很多开发东西和技能实践。
依据业界主流观点,DevOps 的生命周期能够化为这 7 个阶段:继续开发、继续集成、继续测验、继续监控、继续反馈、继续布置和继续运营。继续开发对应于编码作业,这个阶段需求用到代码库房、版本控制东西、包管理东西等。继续集成是频繁的提交代码、编译代码、执行单测等,尽或许早的发现问题。继续测验是确保代码的每次提交都能够被及时验证。继续布置是指频繁的把构建出的产品发布到测验环境、出产环境的流程,以尽早接纳检验。CI/CD 对应的是继续集成和继续布置,它是 DevOps 生命周期里最重要也是最基本的两个阶段,也能够说它们是 DevOps 概念的实践办法。
DevOps 的 7 个阶段都用到了「继续」一词,为了完成继续,需求串联开发中的各项任务,由此引出了流水线的概念。流水线是考究顺序的,任何一个节点犯错都会导致任务的失利,这能够加快了周转速度,也利于尽早露出问题。像是 Jenkins、GitLab、Github 都会 CI/CD 供给了便捷的流水线装备计划。
DevOps 还常会跟容器技能一同出现,无容积化流程一般是这样的:
任务量小时这样没问题,但当面临大规模的提交时多场景的提交时,机器的执行功率就显得尤为重要。除了添加机器外,还能够运用容积化技能最大化机器的运用功率。Kubernetes 是用于优化容积化流程的技能计划,它能够供给容积化负载均衡、弹性弹性等服务。
DevOps 理念的发展又推动了其他开发环节的进化,并演化出了这些开发实践。
- DevSecOps:Sec 表明 Secure,便是将安全防护与 DevOps 结合起来。需求监控 DevOps 各个阶段的安全问题,一般会经过扫描代码、交互式安全扫描、模仿攻击等办法来确保安全性。
- DevPerfOps:Perf 表明 Performance,便是将功用保证与 DevOps 结合起来。它需求监控各个阶段的功用指标,开发阶段的技能计划有:代码静态功用问题、算法时刻复杂度、接口级并发测验、功用基线比较等。继续集成阶段有模块级扩缩容测验、压力测验等。继续发布有体系等级的功用基准测验、毛病搬迁测验、全链路压力测验等。
- BizDevOps:Biz 表明 Business,便是将事务与 DevOps 结合起来。BizDevOps 的概念是将不写代码的事务团队,像是产品和运行也参与进来。它要处理的问题源于三个不等式:部分功率不等于高效交给,高效交给不等于继续高效,高效交给不等于事务成功。为了起到真实助力事务的方针,需求落地产品导向的交给,建设标准化基础设施,不断堆集技能财物,一同还需求与事务之间树立快速的反馈闭环。
- AIOps:AI 表明 Artificial Intelligence,便是在原有 DevOps 的各个阶段都融入 AI 能力。经过不断的数据收集和剖析,依据算法自动的下发或变更执行规则。更进一步,经过自动化测验,不断的剖析测验结果,还能够用于反常检测、瓶颈剖析、毛病预测甚至于毛病自愈。
Apple 计划推出 Lockdown 形式,保护用户免遭特务软件损害
Apple 宣布将发布突破性的安全功用,为或许成为高度针对性网络攻击方针的用户供给特别的额定保护。这些网络攻击来自利欲熏心、受国家支撑开发特务软件的私人企业。在 iOS 16、iPadOS 16 和 macOS Ventura 中敞开 Lockdown 形式将进一步加强设备防护,严格限制部分功用,大幅减少受攻击面,避免给具高度针对性的特务软件待机而动。
本周学习
整理修改:JY
OC所运用的类信息存储在哪? 怎么从Macho中找到?
首要咱们需求读取到 __DATA,__objc_classlist
的信息,存储结构是8个字节指针,读取到对应的指针数据 data
data
数据是 VM Address
地址,咱们需求经过转换拿到对应的 offset
- 需求判别是否在对应的
segmentCommand
当中
offset = address - (segmentCommand.vmaddr - segmentCommand.fileoff)
拿到偏移地址之后,咱们就能够依据 Class64
的数据结构,在 machoData
当中找到对应的数据 Class
数据,其间的 data
数据才是真实 Class
信息的数据
struct Class64 {
let isa: UInt64
let superClass: UInt64
let cache: UInt64
let vtable: UInt64
let data: UInt64
}
Class64.data
数据是 VM Address
地址,咱们需求经过转换后拿到 offset
,在 machData
当中找到对应的 ClassInfo64
数据,然后其间 name
便是对应的 className
struct Class64Info
{
let flags: Int32 //objc-runtime-new.h line:379~460
let instanceStart: Int32
let instanceSize: Int32
let reserved: Int32
let instanceVarLayout: UInt64
let name: UInt64
let baseMethods: UInt64
let baseProtocols: UInt64
let instanceVariables: UInt64
let weakInstanceVariables: UInt64
let baseProperties: UInt64
};
假如想要了解详细源码完成,能够经过另一位主编皮拉夫大王的开源项目 WBBlades 学习
内容引荐
本期内容仍以介绍 WWDC 2022 上推出的新技能为主
1、Grid 格狀排版 — 来自:Jane
@东坡肘子:这个视频会介绍 iOS16 新推出的 Grid —— 网格排版 View 。Grid 是一个非常强壮的网格排版东西,极大地改进了 SwiftUI 的版式控制能力。视频会从经典的网格处理计划 GeometryReader 写法讲起,更详细地出现 Grid 所处理的问题。接着会介绍与 Grid 相关的四个 modifier。
2、SwiftUI 布局 —— 对齐 — 来自:东坡肘子
@东坡肘子:“对齐”是 SwiftUI 中极为重要的概念,但是相当多的开发者并不能很好地驾御这个布局利器。在 WWDC 2022 中,苹果为 SwiftUI 增添了 Layout 协议,让咱们有了更多的时机了解和验证 SwiftUI 的布局原理。本文将结合 Layout 协议的内容对 SwiftUI 的“对齐”进行梳理,希望能让读者对“对齐”有更加清晰地认识和掌握。
3、Swift Protocol 背面的故事 —— Swift 5.6/5.7 — 来自:雪峰
@东坡肘子:本文是系列文章的第三篇( 前两篇为 Swift Protocol 背面的故事 —— 实践、Protocol 背面的故事 —— 理论 ),介绍了 Swift 5.6/5.7 在 Protocol 上的相关扩展和优化,首要包括:any、Opaque Parameter、Unlock existentials for all protocols 以及 Primary Associated Types 等内容。
4、运用 SwiftUI 的新 Charts API 輕鬆树立漂亮的折線圖 — 来自:Simon Ng
@远恒之义:在 iOS 16 的新版 SwiftUI 中,Apple 重磅更新带来了 Charts 框架。在此之前,咱们需求自定义构建图表,或者是依托第三方库来树立图表。比及现在,咱们简略运用 Charts API,就能轻松上手构建折线图。除此之外,开发者还能够更方便地创立动画化和互动的其他图表。
5、How to Use ShareLink for Sharing Data Like Text and Photos — 来自:Simon Ng
@远恒之义:当时在 SwiftUI 项目中,咱们假如需求调用体系同享数据,必须经过桥接 UIActivityViewController 来完成。在 iOS 16 中,SwiftUI 推出一个名为 ShareLink 的视图控件,当用户点击同享链接时,它会弹出显现体系同享列表,让用户将内容同享到其他应用程序或复制数据以供以后运用。本文将向你展现怎么运用 ShareLink 来同享文本、URL 链接和图画等数据。
6、Implementing a custom native calendar using UICalendarView in iOS16 and Swift — 来自:Rizwan Ahmed
@远恒之义:以前,面临复杂的日历显现交互需求,咱们一般挑选第三方日历组件或者自定义日历视图来完成。本年,Apple 引入了原生 UICalendarView,支撑在 iOS 16 创立自定义日历视图。本文将介绍怎么运用 UICalendarView 来完成自定义原生日历,并支撑单选与多选日期。
7、How to change status bar color in SwiftUI — 来自:sarunw
@远恒之义:在 UIKit 中,咱们有很多办法能够改变状态栏的款式。 但是在 SwiftUI 中,咱们无法直接更改状态栏款式,需求经过视图修饰符 .preferredColorScheme 来直接修改。这种办法将影响应用程序中的每个视图,相当于手动设置了浅色与深色形式。在 iOS 16 中,咱们运用新的修饰符 .toolbarColorScheme 来影响特定导航堆栈上的状态栏,也能够单独在方针视图中再次设置来覆盖此值。
摸一下鱼
整理修改:师大小海腾
1、iOS Icon Gallery:一个收录 App Store 上精美的 iOS/macOS/watchOS icon 的网站,能够为作为规划师的你在规划 icon 时供给杰出的规划创意。
2、Thief:Thief
是一款基于 Electron
开发的跨渠道多功用(真实创新的
)摸鱼软件,为了上班族打造的上班必备神器
,运用此软件能够让上班倍感轻松
,远离 ICU
。
-
多功用 不仅仅支撑
小说摸鱼
,还支撑股票
、基金
、网页
、视频
、直播
、PDF
、游戏
等摸鱼形式 - 隐蔽性 每种摸鱼形式都供给了不同的摸鱼 技巧,能够很隐秘地进行摸鱼
-
跨渠道 支撑
Win
+Mac
+Linux
, 不论你用什么体系,Thief
都让你无缝隙摸鱼
3、Objective-See’s Tools:供给了一系列保护 Mac 的免费、开源的东西。
4、sao-gen-gen 骚话生成器生成器:一款用来生成骚话生成器的生成器,你能够经过提交 GitHub Issue 来创立你的生成器!
关于咱们
iOS 摸鱼周报,首要同享开发过程中遇到的经验教训、优质的博客、高质量的学习资料、有用的开发东西等。周报库房在这里:github.com/zhangferry/… ,假如你有好的的内容引荐能够经过 issue 的办法进行提交。另外也能够申请成为咱们的常驻修改,一同保护这份周报。另可关注大众号:iOS生长之路,后台点击进群沟通,联系咱们,获取更多内容。
往期引荐
iOS 摸鱼周报 #58 | 极客风听歌网站,纯文字音乐播放器
iOS 摸鱼周报 #57 | 周报改版,WWDC22 讲座集锦
iOS 摸鱼周报 #56 | WWDC 进行时
iOS 摸鱼周报 #55 | WWDC 码上就位