Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Read A Lot #19

Open
ShannonChenCHN opened this issue Apr 24, 2017 · 9 comments
Open

Read A Lot #19

ShannonChenCHN opened this issue Apr 24, 2017 · 9 comments

Comments

@ShannonChenCHN
Copy link
Owner

ShannonChenCHN commented Apr 24, 2017

每天半小时,吸收点滴营养

关于读中文翻译的文章还是英文原文:

  • 中文翻译的读起来更快,省时间
  • 如果时间充足,不急于获得结果,读读英文还是有利于锻炼英语阅读能力的,而且很多中文翻译并没有很好地表达出作者本意。

用百度还是 google?

  • 能用 google 还是尽量用 google,搜索更专业,更精准、更高效
  • 不能用 google 时再用百度也行,都是工具

精读与泛读

  • 精读:长时间、连续、深入、研究
  • 泛读:广度、浏览、快速抓住关键信息、筛选、归纳整理

如何泛读

平时每天浏览到一些比较不错的文章、源码时,可以先记下来,晚上再读一遍,做个简评。

读什么

  • 博客
  • 文章
  • 文档
  • 技术资讯
  • 源码

值得浏览的一些资料

网站

新媒体

  • 微博
  • 微信公众号
  • 知识星球(小密圈)
  • 极客时间
  • 小专栏
@ShannonChenCHN ShannonChenCHN changed the title 【新技术】WebP 图片 xxx Apr 28, 2017
@ShannonChenCHN ShannonChenCHN changed the title xxx 【记录】闲逛 May 5, 2017
@ShannonChenCHN
Copy link
Owner Author

ShannonChenCHN commented May 5, 2017

【Objc.io issue 2-1】并发编程:API 及挑战

  • 线程

  • 介绍 OS X 和 iOS 中的并发编程技术

    • pthread
    • NSThread
    • GCD
    • NSOperationQueue
    • NSRunLoop
  • 并发编程中面临的挑战

    • 资源竞争
    • 互斥锁
    • 死锁
    • 资源饥饿(Starvation)
    • 优先级反转

@ShannonChenCHN
Copy link
Owner Author

ShannonChenCHN commented May 5, 2017

【Objc.io issue 2-2】常见的后台实践

  • Operation Queues 还是 GCD ?
  • 非主线程操作 Core Data
    • 基本介绍
    • 更新 Main Context
    • 其他考虑
  • 非主线程执行 UI 代码
    • 将与 UIKit 不直接相关,却会消耗大量时间的 UI 代码移动到后台去处理
    • 后台绘制 UI
  • 异步网络请求处理
    • 使用 NSURLConnection 的异步方法,并且把所有操作转化为 operation 来执行
    • 建立一个独立的线程,为建立的线程设置自己的 run loop,然后在其中调度 URL 连接
  • 进阶:后台文件 I/O(NSInputStream)

@ShannonChenCHN
Copy link
Owner Author

ShannonChenCHN commented May 5, 2017

【Objc.io issue 2-3】底层并发 API

通常来说,高层的 API 会提供更好的性能,除非你能承受起使用底层 API 带来的纠结于调试代码的时间和努力。 尽管如此,了解深层次下的软件堆栈工作原理还是有很有帮助的。

  • GCD
    • dispatch_once
    • dispatch_after
    • 队列
      • 队列 dispatch queue
      • 目标队列 target queue
      • 优先级 DISPATCH_QUEUE_PRIORITY
    • 隔离
      • 资源保护
      • 单一资源的多读单写 dispatch_barrier_async
      • 锁竞争
      • 全都使用异步分发
      • 如何写出好的异步 API
      • 迭代执行 dispatch_apply
    • Dispatch Group
    • 事件源 dispatch_source_t
      • 监视进程 DISPATCH_SOURCE_TYPE_PROC
      • 监视文件 DISPATCH_SOURCE_TYPE_VNODE
      • 定时器 DISPATCH_SOURCE_TYPE_TIMER
      • 取消 dispatch_source_set_cancel_handler()
    • 输入输出
      • dispatch_data_t 和缓冲区
      • Dispatch I/O 读写
    • dispatch_benchmark
  • 原子操作
    • 计数器(OSAtomicIncrement 和 OSAtomicDecrement)
    • 原子队列(OSAtomicEnqueue() 和 OSAtomicDequeue() )
    • 自旋锁(OSSpinLock)

延伸阅读:

@ShannonChenCHN
Copy link
Owner Author

ShannonChenCHN commented May 5, 2017

【Objc.io issue 2-4】线程安全类的设计

这篇文章主要介绍了一些实用技巧,设计模式,以及对于写出线程安全类和使用 GCD 来说所特别需要注意的一些 anti-pattern 做法。

  • 线程安全
    • Apple 的 UIKit 框架
      • 为什么 UIKit 不是线程安全的?
      • 内存回收 (deallocation) 问题
      • Collection 类
    • 原子属性 (Atomic Properties)
      • atomic 的实现
      • 为何不用 @synchronized
    • 你自己的类
      • 面临的问题
      • 可行的线程安全设计(GCD 和 @synchronized
  • GCD 的陷阱
    • 将 GCD 当作递归锁使用
    • 用 dispatch_async 修复时序问题
    • 在性能关键的代码中混用 dispatch_sync 和 dispatch_async
    • 使用 dispatch_async 来派发内存敏感的操作

@ShannonChenCHN
Copy link
Owner Author

ShannonChenCHN commented May 8, 2017

【Objc.io issue 2-5】测试并发程序

  • 异步测试的问题
  • 关于SenTestingKit
  • SenTestingKit的异步扩展
  • 设计异步测试
    • 示例工程
    • 模型层
    • 服务器接口控制器
    • 资源管理器

@ShannonChenCHN
Copy link
Owner Author

ShannonChenCHN commented May 9, 2017

HIT-Alibaba/interviewGitbook 在线阅读地址

看 AFNetworking 源码讲解的文章时,找到不少好东西,这篇文章是有人专门总结的 Alibaba 面试题,里面的内容也比较详实,包括引用的一些参考文章,质量都很高,如果能把这份大纲中的内容都掌握,应该可以算是很厉害的一个工程师了。实际上这份面试更像是针对应届生的,对于已经工作的同学来讲,全部啃下来倒也没有太大必要,主要还是在工作实战的过程中查漏补缺,该了解的了解,该深入的深入,就行了。

  • 基础知识
    • 计算机网络
      • HTTP 协议
      • TCP 协议
      • IP 协议
      • Socket 编程
    • 数据结构和算法
      • 链表
      • 哈希表
      • 排序
      • 搜索
      • 字符串
      • 向量/矩阵
      • 随机
      • 贪心
      • 动态规划
    • 体系结构与操作系统
      • 体系结构基础
      • 操作系统基础
      • 并发技术
      • 内存管理
      • 磁盘与文件
    • 数据库系统
      • 事务处理
      • 索引
    • 编译原理
      • 编译器架构
    • 设计模式
      • 面向对象基础
      • 四人帮设计模式
      • MVC 与 MVVM
    • 版本控制
      • Git
      • SVN
  • iOS 开发
    • Objective-C 语言基础
      • 类与对象
      • Block 编程
      • runtime
      • 内存管理
      • runloop
    • Cocoa Touch
      • 事件处理
      • UIApplication
      • UIView
      • UIViewController
      • 动画
      • 网络编程
      • 并发编程
      • 文件系统
      • 设计模式
      • 性能
      • 其他
    • Swift
      • 类与对象
      • 结构体与枚举
      • 函数与闭包
      • 其他
    • 面试问题
    • 相关资料
  • Android 开发
    • Java 基础
    • Android 基础
      • Android 系统架构
      • Activity/Service 生命周期
      • Android 中的动画(补帧与逐帧)
      • Activity 的 4 种启动模式
      • ListView原理与优化
      • 其他
    • 面试问题

@ShannonChenCHN
Copy link
Owner Author

【Objc.io issue 3-1】绘制像素到屏幕上

  • 图形堆栈
  • 软件组成
  • 硬件参与者
  • 合成
  • 不透明 VS 透明
  • 像素对齐 VS 不重合在一起
  • Masks
  • 离屏渲染(Offscreen Rendering)

@ShannonChenCHN
Copy link
Owner Author

ShannonChenCHN commented May 9, 2017

[iOS]iOS开发初学者记录(bang's blog)

一直都很喜欢 bang 的文章,文字朴实,思路清晰,今天无意中看到了他初学 iOS 时的博客,才发现原来大神也是一步一步走过来的。很值得学习的一点就是思考和写作,bang 从十多年前就开始写博客了,这个习惯真是棒,对我自己来讲,平时多思考点有意义的问题,有空记录下来,一来可以整理思路,二来可以锻炼思维能力,三来还可以留作记录。

@ShannonChenCHN ShannonChenCHN changed the title 【记录】闲逛 【记录】Read A Lot Jun 19, 2017
@ShannonChenCHN
Copy link
Owner Author

ShannonChenCHN commented Jul 21, 2017

【Objc.io issue 3-2】理解 Scroll Views

  • 光栅化和组合
  • Scroll View 的 Content Offset
  • 世界之窗:Content Size
  • 用 Content Insets 对窗口稍作调整

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant