世界互联网大会|iOS-代码细节优化四

今天我们接着前面的内容讲 , 都是一些很细的内容 , 但我们还是要在实践中牢记 , 形成一种习惯 。
【世界互联网大会|iOS-代码细节优化四】
一:字符串
1.使用\"\"\" , 在定义复杂字符串时 , 使用多行字符串字面量可以保持原有字符串的换行符号/引号等特殊字符 , 不需要使用转义符 。 2.使用字符串插值可以提高代码可读性 。 这里强调不要使用“+”去拼接字符串 , 使用多了你会发现很耗时 , 运行、打包速度越来越慢 。
3.使用标准库提供的高阶函数 。
二:访问控制
- 使用
private/fileprivate修饰私有属性和方法 。 - 使用
private(set)修饰外部只读/内部可读写属性 。
- 使用参数
默认值, 可以使调用方传递更少的参数 。 - 限制参数数量 , 当方法参数过多时考虑使用
自定义类型代替 。 - 使用
@discardableResult , 一些方法并不一定会处理返回值 , 可以考虑添加@discardableResult标识提示Xcode允许不处理返回值不进行warning提示 。
四:其它一些内容1.避免过长的元组 。 元组虽具有类型信息 , 但并不包含变量名信息 , 使用方并不清晰知道变量的含义 。 所以当元组数量过多时考虑使用自定义类型代替 。2.系统库 。
KVO/Notification 使用 block API 。3.使用
protocol代替继承 。 Swift中针对protocol提供了很多新特性 , 如默认实现、关联类型、支持值类型 。 在代码设计时可以优先考虑使用protocol来避免臃肿的父类同时更多使用值类型 。4.使用
extension组织代码 。 将私有方法/父类方法/协议方法等不同功能代码进行分离更加清晰/易维护 。五:代码风格
我们都知道代码
可读性的重要性 , 良好的代码风格可以提高代码的可读性 , 而统一的风格可以降低团队内相互理解成本 。 Swift的代码格式化建议使用自动格式化工具实现 , 将自动格式化添加到代码提交流程 , 通过定义Lint规则统一团队内代码风格 。 考虑使用SwiftFormat和SwiftLint 。六:性能优化
这里主要关注运行时性能和体积大小 。
1.使用
Whole Module Optimization 。 编译器可以将整个程序编译为一个文件进行更多的优化 。 如通过推断final/函数内联/泛型特化更多使用静态派发 , 并且可以移除部分未使用的代码 。 2.使用
源代码打包 。 在使用组件化时 , 为了提高编译速度和打包效率 , 通常单个组件独立编译生成静态库 , 最后多个组件直接使用静态库进行打包 。 这种场景下WMO仅针对internal以内作用域生效 , 对于public/open缺少外部使用信息所以无法进行优化 。 所以对于大量使用Swift的项目 , 使用
- 滴滴出行|裁员真能拯救中国互联网?
- 早报:华为P50 Pocket新色预售 百度世界大会定档
- 京东|裁员不忘膈应人,这家互联网大厂送的离职礼物恶心到我了!
- 陨石|小行星“打水漂”闯入地球 形成世界最长陨石陨落带
- 创业|八成互联网电视非法采集用户数据, 彩电企业怎么办?
- 世界最干旱沙漠传来消息,长出18亿棵树,科学家:令人担忧
- 量子专家的硬核实验1:宇宙共有3个世界,人类可进阶高层次世界
- 地心世界存在吗?多个地下隧道被发现,地下或存在高级文明(上)
- 世界上最孤独的“手”,他握住一棵树长达50年,却从来没有松过手
- 华为|中国第二家“华为”诞生,国产品牌正悄悄征服世界!
