draveness

138
获赞数
3
关注数
126
粉丝数
IP 属地未知
2014-04-23 加入
浏览 15.1k
╭╮╱╭┳━━━┳╮╱╭╮
┃┃╱┃┃╭━╮┃┃╱┃┃
┃╰━╯┃┃┃┃┃╰━╯┃
╰━━╮┃┃┃┃┣━━╮┃
╱╱╱┃┃╰━╯┃╱╱┃┃
个人简介什么都没有
892 声望|达人
全站排名超越 98% 用户
ios
582
objective-c
438
go
296
服务器开发
117
编译原理
117
1 黄金勋章
白银勋章
暂未获得该勋章
如何获得
个人动态
  • 发布了文章2020-03-08
    Go 语言内存分配器的实现原理
    程序中的数据和变量都会被分配到程序所在的虚拟内存中,内存空间包含两个重要区域 — 栈区(Stack)和堆区(Heap)。函数调用的参数、返回值以及局部变量大都会被分配到栈上,这部分内存会由编译器进行管理;不同编程语言使用不同的方法管理堆区的内存,C++ 等编程语...
  • 发布了文章2019-12-22
    技术博客配图指南
    这可能是一篇很多博客的读者都期待的文章,我最终还是决定说一说『如何为技术文章配图』这一话题,过去的几年一直都有非常多的读者在博客、微博和公众号下面提出这样的问题 —— 『你的图是用什么工具画的?』,对于这种问题我我一直都很少回复,一方面是因为我在博客...
  • 发布了文章2019-11-29
    技术文章配图指南
    这可能是一篇很多博客的读者都期待的文章,我最终还是决定说一说『如何为技术文章配图』这一话题,过去的几年一直都有非常多的读者在博客、微博和公众号下面提出这样的问题 —— 『你的图是用什么工具画的?』,对于这种问题我我一直都很少回复,一方面是因为我在博客...
  • 发布了文章2019-11-06
    为什么 TCP 建立连接需要三次握手 · Why's THE Design?
    为什么这么设计(Why's THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点、对具体实现造成的影响。如果你有想要了解的问题,可以在原文下面留言。原文链接:[链接]
  • 发布了文章2019-07-04
    Golang 并发编程与同步原语
    当提到并发编程、多线程编程时,我们往往都离不开『锁』这一概念,Go 语言作为一个原生支持用户态进程 Goroutine 的语言,也一定会为开发者提供这一功能,锁的主要作用就是保证多个线程或者 Goroutine 在访问同一片内存时不会出现混乱的问题,锁其实是一种并发编程中...
  • 发布了文章2019-06-05
    如何写出优雅的 Golang 代码
    Go 语言是一门简单、易学的编程语言,对于有编程背景的工程师来说,学习 Go 语言并写出能够运行的代码并不是一件困难的事情,对于之前有过其他语言经验的开发者来说,写什么语言都像自己学过的语言其实是有问题的,想要真正融入生态写出优雅的代码就一定要花一些时间...
  • 发布了文章2019-02-11
    Go 语言编译过程概述
    Golang 是一门需要编译才能运行的编程语言,也就说代码在运行之前需要通过编译器生成二进制机器码,随后二进制文件才能在目标机器上运行,如果我们想要了解 Go 语言的实现原理,理解它的编译过程就是一个没有办法绕过的事情。
  • 赞了文章2016-10-14
    深入理解Block之Block的类型
    当我在 2012 年刚刚开始从事 iOS 开发工作时,对 Block 的使用开始逐渐在 iOS 开发者中推广开来(Block 的第一个稳定 ABI 版本是在 Mac OS X 10.6 被引入的。)。作为 iOS 开发中非常吸引我的一个特性,对其的深入分析自然必不可少。
  • 赞了文章2016-10-14
    讲讲你不知道的 ARC (一)
    首先让我们先感谢以 Blaine Garst 和 Patrick Beard 为代表的开发者。他们为 Objective-C 这门语言添加了众多特性,而其中最令人喜爱的莫过于 ARC。
  • 发布了文章2016-10-08
    谈谈 DSL 以及 DSL 的应用(以 CocoaPods 为例)
    最近在公司做了一次有关 DSL 在 iOS 开发中的应用的分享,这篇文章会简单介绍这次分享的内容。 因为 DSL 以及 DSL 的界定本身就是一个比较模糊的概念,所以难免有与他人观点意见相左的地方,如果有不同的意见,我们可以具体讨论。
  • 发布了文章2016-07-30
    如何在 iOS 中解决循环引用的问题
    稍有常识的人都知道在 iOS 开发时,我们经常会遇到循环引用的问题,比如两个强指针相互引用,但是这种简单的情况作为稍有经验的开发者都会轻松地查找出来。
  • 发布了文章2016-07-26
    动态修改 C 语言函数的实现
    Objective-C 作为基于 Runtime 的语言,它有非常强大的动态特性,可以在运行期间自省、进行方法调剂、为类增加属性、修改消息转发链路,在代码运行期间通过 Runtime 几乎可以修改 Objecitve-C 层的一切类、方法以及属性。
  • 发布了文章2016-06-22
    『零行代码』解决键盘遮挡问题(iOS)
    最近在项目中使用了 IQKeyboardManager 来解决 UITextField 被键盘遮挡的问题,这个框架的使用方法可以说精简到了极致,只需要将 IQKeyboardManager 加入 Podfile,然后 pod install 就可以了。
  • 发布了文章2016-05-30
    黑箱中的 retain 和 release
    关注仓库,及时获得更新:iOS-Source-Code-Analyze Follow: Draveness · Github 由于 Objective-C 中的内存管理是一个比较大的话题,所以会分为两篇文章来对内存管理中的一些机制进行剖析,一部分分析自动释放池以及 autorelease 方法,另一部分分析 retain、release...
  • 发布了文章2016-05-26
    神奇的 BlocksKit (一)
    高能预警:本篇文章非常长,因为 BlocksKit 的实现还是比较复杂和有意的。这篇文章不是为了剖析 iOS 开发中的 block 的实现以及它是如何组成甚至使用的,如果你想通过这篇文章来了解 block 的实现,它并不能帮到你。
  • 发布了文章2016-05-16
    自动释放池的前世今生
    关注仓库,及时获得更新:iOS-Source-Code-Analyze Follow: Draveness · Github 由于 Objective-C 中的内存管理是一个比较大的话题,所以会分为两篇文章来对内存管理中的一些机制进行剖析,一部分分析自动释放池以及 autorelease 方法,另一部分分析 retain、release...
  • 发布了文章2016-05-04
    成熟的夜间模式解决方案
    在正式介绍目前版本的实现之前,我会先简单介绍一下 1.0 时代的 DKNightVersion 的实现,为各位读者带来一些新的思路,也确实想梳理一下这个框架是如何演变的。
  • 发布了文章2016-04-30
    懒惰的 initialize 方法
    关注仓库,及时获得更新:iOS-Source-Code-AnalyzeFollow: Draveness · Github 因为 ObjC 的 runtime 只能在 Mac OS 下才能编译,所以文章中的代码都是在 Mac OS,也就是 x86_64 架构下运行的,对于在 arm64 中运行的代码会特别说明。
  • 发布了文章2016-04-28
    你真的了解 load 方法么?
    关注仓库,及时获得更新:iOS-Source-Code-AnalyzeFollow: Draveness · Github 因为 ObjC 的 runtime 只能在 Mac OS 下才能编译,所以文章中的代码都是在 Mac OS,也就是 x86_64 架构下运行的,对于在 arm64 中运行的代码会特别说明。
  • 发布了文章2016-04-28
    AFNetworking 概述(一)
    在这一系列的文章中,我会对 AFNetworking 的源代码进行分析,深入了解一下它是如何构建的,如何在日常中完成发送 HTTP 请求、构建网络层这一任务。