Fork me on GitHub
楚权的世界

Seek the wonder of life.


  • 首页

  • 相册

  • 分类

  • 关于

  • 归档

  • 标签

  • 公益

  • 搜索

深入理解 Linux Ext 文件系统设计原理

发表于 2022-05-01 | 更新于 2022-05-02 | 分类于 计算机原理
硬盘格式化我们知道,一个硬盘必须要经过格式化之后才能使用。那么,格式化到底做了什么呢? 本质上,硬盘格式化可以分为两个步骤,分别是: 低级格式化,或称 物理格式化。 高级格式化,或称 逻辑格式化。 低级格式化在 《计算机那些事(1)——硬盘》 一文中,我们介绍了硬盘的两种寻址方式,分别是: C ...
阅读全文 »

源码解读——getopt

发表于 2022-04-04 | 更新于 2022-04-09 | 分类于 GNU
作为程序员的你是否有过疑问:为什么命令行工具用法都差不多?事实上,这是因为早期基于 C/C++ 开发的命令行工具都使用了 getopt 工具来进行选项和参数的解析。 getopt 定义了命令行的两种选项:长选项、短选项,其分别以 - 和 -- 作为前缀,从而使得命令行工具的使用方式基本都差不多。 为 ...
阅读全文 »

CocoaPods Source 管理机制

发表于 2022-01-07 | 更新于 2022-01-07 | 分类于 CocoaPods
CocoaPods-Core 主要包括三部分功能,分别是:Podfile 解析、Podspec 解析、Source 管理,前两个功能我们在之前的文章中已经分别进行了介绍,本文我们再来介绍一下最后一个功能——CocoaPods Source 管理机制。 基本原理Source,即 podspec 源。S ...
阅读全文 »

CocoaPods Podspec 解析原理

发表于 2022-01-03 | 更新于 2022-01-03 | 分类于 CocoaPods
在 CocoaPods 中,podspec 文件主要用于描述一个 pod 库的基本信息,包括:名称、版本、源、依赖等等。本文,我们来介绍一下 CocoaPods-Core 中另一个重要的部分——podspec。 Podspec 初始化当执行 pod install 时,CocoaPods 会从本地的 ...
阅读全文 »

2021 年度总结

发表于 2022-01-02 | 更新于 2022-06-16 | 分类于 生活

阅读全文 »

CocoaPods Podfile 解析原理

发表于 2021-12-24 | 更新于 2022-01-03 | 分类于 CocoaPods
作为 iOS 开发者,我们都知道 Podfile 是 CocoaPods 用于描述 Xcode 项目依赖的配置文件。当需要为项目添加依赖时,我们只需要在 Podfile 中声明一个 pod 即可,比如: 1pod 'Alamofire', '~> 5.4' 当我们执行了 pod install ...
阅读全文 »

理解 Xcode 中的各种文件

发表于 2021-12-14 | 更新于 2021-12-25 | 分类于 Xcode
上一篇文章我们介绍了 Xcode 中的各种概念,本文我们来看看这些概念在 Xcode 中的具体表示。其中,有一个最常见的文件 project.pbxproj,其描述了描述了整个 Xcode Project 的相关信息,包括:文件、Target、Product 等。另外,Xcode Workspace ...
阅读全文 »

理解 Xcode 中的各种概念

发表于 2021-12-03 | 更新于 2021-12-24 | 分类于 Xcode
Xcode 有非常多的概念,比如:workspace、project、target、product、scheme 等,这些概念之间有着千丝万缕的关系,当我们理解了这些概念及其关系之后,会对整个 Xcode 工程体系有一个整体的理解,对我们自身工程能力的提升也会有所帮助。本文将对这些概念及其关系进行梳 ...
阅读全文 »

如何使用 CLAide 开发命令行工具?

发表于 2021-11-21 | 更新于 2021-11-21 | 分类于 Ruby
在 CLAide 一文中,我们了解到 CocoaPods 是基于 CLAide 开发的一款依赖管理工具,也是一款命令行工具。本文,我们将基于 CLAide 开发一款简易的命令行工具——饮料制作器(BeverageMaker)。 在本项目中,我们将使用 bundler 作为项目管理工具和依赖管理工具, ...
阅读全文 »

源码解读——CLAide

发表于 2021-11-04 | 更新于 2022-01-12 | 分类于 Ruby
CLAide 是 CocoaPods 社区开发的一款命令行解析工具,其提供了一系列 API 允许我们快速创建自定义的命令行工具。iOS 开发者常用的依赖管理工具 CocoaPods 就是基于 CLAide 开发实现的。CocoaPods 通过各种子命令、参数、选项提供了诸多依赖管理相关功能。那么,C ...
阅读全文 »

源码解读——Codable

发表于 2021-10-18 | 更新于 2021-10-18 | 分类于 Swift
Swift 4.0 支持了一个新的语言特性——Codable,其提供了一种非常简单的方式支持模型和数据之间的转换。 关于 Codable,今年年初的时候,我在调研如何让 Codable 在数据转模型时支持默认值,为了能够对 Codable 有个整体印象,我简单阅读了一下源码。当时感觉 Codable ...
阅读全文 »

Swift 类型擦除

发表于 2021-10-10 | 更新于 2021-10-17 | 分类于 Swift
在 《Swift 泛型协议》 中,我们探讨了如何基于类型擦除技术解决 Swift 泛型协议的存储问题,通过定义一个类型擦除包装器 AnyPrinter 解决了泛型协议 Printer 的存储问题。但是,AnyPrinter 并没有显式地引用 base 实例,因为当我们定义一个泛型类型的属性时,编译器 ...
阅读全文 »

Swift 泛型协议

发表于 2021-09-25 | 更新于 2022-05-25 | 分类于 Swift
之前在一些分享会上经常听到 类型擦除(Type Erase)这个概念,从其命名上大概知道它要干什么,但是对于为什么要用它?以及什么场景下使用它?对此,我并没有深刻的理解。于是,借着假期好好研究了一下。问题的一切要从泛型协议说起。 协议如何支持泛型?我们知道,在 Swift 中,protocol 支持 ...
阅读全文 »

如何使用 Swift Package Manager 开发命令行工具?

发表于 2021-08-25 | 更新于 2021-11-21 | 分类于 Swift
最近准备魔改一下 R.swift 以支持 Pod 库生成对应的 R.generated.swift 文件。经研究后发现,R.swift 的本质是使用 Swift Package Manager(简称 SPM) 开发了一个命令行工具 rswift。很显然,要想魔改 R.swift,必须要学习如何使用 ...
阅读全文 »

源码解读——Resolver

发表于 2021-07-01 | 更新于 2021-10-30 | 分类于 iOS

阅读全文 »

控制反转、依赖注入、服务定位

发表于 2021-06-07 | 更新于 2022-09-09 | 分类于 软件架构

阅读全文 »

初识协程

发表于 2021-05-05 | 更新于 2021-09-10 | 分类于 计算机原理
工作中经常会听到 “协程” 这个概念,第一次听到时,我就去查阅相关教材,发现根本就没有介绍“协程”的。于是上网查阅了相关的解释,当时大概理解了它是干什么的,但是深入的细节并不了解。为了搞明白协程,趁着假期我好好研究了一下协程,然后产出本文作为学习笔记进行总结,以用于后续进行回顾。 要说明白“协程”, ...
阅读全文 »

如何优雅地管理你的 shell 脚本?

发表于 2021-04-05 | 更新于 2021-04-21 | 分类于 Shell

阅读全文 »

Xcode 构建幕后原理

发表于 2021-02-16 | 更新于 2022-01-13 | 分类于 Xcode
Xcode 10 中的 new build system 是使用 Swift 从零开始编写实现的,其在性能和可靠性方面有着显著的提升。 本文,我们将来探索一下 Xcode 构建的幕后原理,这一切都是从在我们点击了 Xcode 的 “build” 按钮(或按下了快捷键 Command + B)之后开始 ...
阅读全文 »

系统理解 iOS 库与框架

发表于 2021-02-14 | 更新于 2021-02-21 | 分类于 iOS
在软件开发中,静态库和动态库在各个方面为我们提供了便利。在计算机专业相关课程中,我们学习过静态库和动态库的一些理论,那么这些理论如何映射到 iOS 开发之中呢?iOS 中有很多相关概念和术语,对此,我并不是非常清晰。为了能够向编译优化的最终目标更近一步,我花了些时间进行了学习,并总结此文以供回顾复习 ...
阅读全文 »
123…7
Bao Chuquan

Bao Chuquan

积累,沉淀,吸收,转换

123 日志
27 分类
260 标签
RSS
GitHub 微博 Facebook Instagram
© 2018 - 2023 Bao Chuquan
由 Hexo 强力驱动
主题 - NexT.Pisces
浙ICP备16031766号-1
本站总访客 人次 本站总访问量 次