Repository: halfrost/Halfrost-Field
Stars: 13239
README.md
Halfrost-Field 冰霜之地
<p align='center'>
<img src='contents/images/background-cover_.png'>
</p>
<p align='center'>
<img src="https://img.shields.io/badge/Total%20Reading-3.18M-success">
<img src="https://img.shields.io/badge/Total%20Word%20Count-578129-success">
<img src="https://img.shields.io/badge/build-passing-brightgreen.svg">
<img src="https://img.shields.io/badge/platform-%20iOS | Android | Mac | Web%20-ff69b4.svg">
<img src="https://img.shields.io/badge/language-Objective--C-orange.svg">
<img src="https://img.shields.io/badge/language-Swift-abcdef.svg">
<img src="https://img.shields.io/badge/language-JavaScript-yellow.svg">
<img src="https://img.shields.io/badge/language-Golang-26C2F0.svg">
<img src="https://visitor-badge.laobi.icu/badge?page_id=halfrost.Halfrost-Field" alt="visitor badge"/>
</p>
<p align='center'>
<a href="https://github.com/halfrost/Halfrost-Field/blob/master/LICENSE"><img alt="GitHub" src="https://img.shields.io/github/license/halfrost/Halfrost-Field?label=License"></a>
<a href="https://halfrost.com"><img src="https://img.shields.io/badge/Blog-Halfrost--Field-80d4f9.svg?style=flat"></a>
<a href="http://weibo.com/halfrost"><img src="https://img.shields.io/badge/[email protected]?style=flat&colorA=f4292e"></a>
<a href="https://twitter.com/halffrost"><img src="https://img.shields.io/badge/[email protected]?style=flat&colorA=009df2"></a>
<a href="https://www.zhihu.com/people/halfrost/activities"><img src="https://img.shields.io/badge/%E7%9F%A5%E4%B9%[email protected]?style=flat&colorA=0083ea"></a>
<img src="https://img.shields.io/badge/made%20with-=1-blue.svg">
<a href="https://github.com/halfrost/Halfrost-Field/pulls"><img src="https://img.shields.io/badge/PR-Welcome-brightgreen.svg"></a>
</p>
⭐️ 为什么要建这个仓库
世人都说阅读开源框架的源代码对于功力有显著的提升,所以我也尝试阅读开源框架的源代码,并对其内容进行详细地分析和理解。在这里将自己阅读开源框架源代码的心得记录下来,希望能对各位开发者有所帮助。我会不断更新这个仓库中的文章,如果想要关注可以点 star。
📖 目录
🐳 Go
| Project | Version | Article |
|:-------:|:-------:|:------|
|Go|1.16 darwin/amd64| Go 初学者的成长之路<br>初探 Go 的编译命令执行过程<br>深入解析 Go Slice 底层实现<br>如何设计并实现一个线程安全的 Map ?(上篇)<br>如何设计并实现一个线程安全的 Map ?(下篇)<br>面试中 LRU / LFU 的青铜与王者<br>深入研究 Go interface 底层实现<br>Go reflection 三定律与最佳实践<br>深入 Go 并发原语 — Channel 底层实现<br>|
|空间搜索|golang/geo|如何理解 n 维空间和 n 维时空<br>高效的多维空间点索引算法 — Geohash 和 Google S2<br>Google S2 中的 CellID 是如何生成的 ?<br>Google S2 中的四叉树求 LCA 最近公共祖先<br>神奇的德布鲁因序列<br>四叉树上如何求希尔伯特曲线的邻居 ?<br>Google S2 是如何解决空间覆盖最优解问题的?<br>-----------------------------------------------------------------------------<br> Code \<T\> share keynote|
----------------------------
🍉 Machine Learning
| Project | Version | Article |
|:-------:|:-------:|:------|
|机器学习|Andrew Ng Stanford University|目录<br>-----------------------------------------------------------------<br>Week1 —— What is Machine Learning<br>Week1 —— Linear Regression with One Variable (Gradient Descent)<br>Week2 —— Multivariate Linear Regression <br>Week2 —— Computing Parameters Analytically<br>Week2 —— Octave Matlab Tutorial<br>Week3 —— Logistic Regression<br>Week3 —— Regularization<br>Week4 —— Neural Networks Representation<br>Week5 —— Neural Networks Learning<br>Week5 —— Backpropagation in Practice<br>Week6 —— Advice for Applying Machine Learning<br>Week6 —— Machine Learning System Design<br>Week7 —— Support Vector Machines<br>Week8 —— Unsupervised Learning<br>Week8 —— Dimensionality Reduction<br>Week9 —— Anomaly Detection<br>Week9 —— Recommender Systems<br>Week10 —— Large Scale Machine Learning<br>Week11 —— Application Example: Photo OCR|
---------------------------
🚀 JavaScript
| Project | Version | Article |
|:-------:|:-------:|:------|
| JavaScript | ECMAScript 6 | JavaScript 新手的踩坑日记 <br> 从 JavaScript 作用域说开去<br> 揭开 this & that 之迷<br>JSConf China 2017 Day One — JavaScript Change The World <br> JSConf China 2017 Day Two — End And Beginning|
| Vue.js | 2.3.4 | Vue 全家桶 + Electron 开发的一个跨三端的应用 <br> 大话大前端时代(一) —— Vue 与 iOS 的组件化%20%E2%80%94%E2%80%94%20Vue%20%E4%B8%8E%20iOS%20%E7%9A%84%E7%BB%84%E4%BB%B6%E5%8C%96.md) <br>|
| Ghost | 1.24.8 | Ghost 博客搭建日记<br> Ghost 博客升级指南 <br>Ghost 博客炫技"新"玩法 <br>博客跑分优化<br>--------------------------------------------------------------------------------<br>|
-------
📱 iOS
| Project | Version | Article |
|:-------:|:-------:|:------|
| Weex | 0.10.0 | Weex 是如何在 iOS 客户端上跑起来的<br> 由 FlexBox 算法强力驱动的 Weex 布局引擎<br> Weex 事件传递的那些事儿 <br>Weex 中别具匠心的 JS Framework<br>iOS 开发者的 Weex 伪最佳实践指北<br> |
| BeeHive | v1.2.0 | BeeHive —— 一个优雅但还在完善中的解耦框架<br>|
| 组件化 | 路由与解耦 | iOS 组件化 —— 路由设计思路分析<br>|
| ReactiveObjC | 2.1.2 |函数响应式编程 (FRP) 从入门到 "放弃"—— 基础概念篇 <br> 函数响应式编程 (FRP) 从入门到 "放弃"—— 图解 RACSignal 篇 <br> ReactiveCocoa 中 RACSignal 是如何发送信号的 <br> ReactiveCocoa 中 RACSignal 所有变换操作底层实现分析(上)<br>ReactiveCocoa 中 RACSignal 所有变换操作底层实现分析(中) <br> ReactiveCocoa 中 RACSignal 所有变换操作底层实现分析(下) <br> ReactiveCocoa 中 RACSignal 冷信号和热信号底层实现分析<br> ReactiveCocoa 中 集合类 RACSequence 和 RACTuple 底层实现分析 <br> ReactiveCocoa 中 RACScheduler 是如何封装 GCD 的 <br> ReactiveCocoa 中 RACCommand 底层实现分析<br> ReactiveCocoa 中 奇妙无比的“宏”魔法|
| Aspect | | iOS 如何实现Aspect Oriented Programming (上)<br>iOS 如何实现Aspect Oriented Programming (下)<br> |
| ObjC | objc runtime 680 | 神经病院 Objective-C Runtime 入院第一天—— isa 和 Class<br>神经病院 Objective-C Runtime 住院第二天——消息发送与转发 <br>神经病院 Objective-C Runtime 出院第三天——如何正确使用 Runtime <br> ObjC 对象的今生今世<br>|
| iOS Block | | 深入研究 Block 捕获外部变量和 __block 实现原理 <br> 深入研究 Block 用 weakSelf、strongSelf、@weakify、@strongify 解决循环引用<br> |
| iOS Simulator | | 给iOS 模拟器“安装”app文件 <br> Remote debugging on iOS with Safari Web Inspector |
| xcconfig | | 手把手教你给一个 iOS app 配置多个环境变量 <br> |
| Jenkins | Weekly Release 2.15 | 手把手教你利用 Jenkins 持续集成 iOS 项目 <br> |
| StoryBoard | | 关于 IB_DESIGNABLE / IBInspectable 的那些需要注意的事 <br> |
| WWDC 2016 | | WWDC2016 Session 笔记 - Xcode 8 Auto Layout 新特性 <br>WWDC2016 Session 笔记 - iOS 10 UICollectionView 新特性 <br>WWDC2016 Session 笔记 - iOS 10 推送 Notification 新特性 <br> |
| Jekyll | | 如何快速给自己构建一个温馨的"家"——用 Jekyll 搭建静态博客 <br>|
| Swift | 2.2 | iOS如何优雅的处理“回调地狱Callback hell”(二)——使用Swift <br> |
| PromiseKit | | iOS如何优雅的处理“回调地狱Callback hell”(一)——使用PromiseKit <br> |
| WebSocket | | 微信,QQ 这类 IM app 怎么做——谈谈 Websocket <br>|
| Realm | | Realm 数据库 从入门到“放弃” <br>手把手教你从 Core Data 迁移到 Realm <br> |
| Core Data | | iOS Core Data 数据迁移 指南 <br> |
| Cordova | | iOS Hybrid 框架 ——PhoneGap<br> Remote debugging on iOS with Safari Web Inspector <br>|
| Animation | | iOS app 旧貌换新颜(一) — Launch Page 让 Logo "飞"出屏幕 <br> |
| Interview | | iOS 面试总结 <br> |
| Phabricator | | 搭建Phabricator我遇到的那些坑<br> Code review - Phabricator Use guide introduce<br>-----------------------------------------------------------------------<br>|
----------------------------
📝 Protocol
| Project | Version | Article |
|:-------:|:-------:|:------|
|HTTP|1.1|HTTP 基础概述<br>|
|HTTP|2|[[RFC 7540] Hypertext Transfer Protocol Version 2 (HTTP/2)](https://github.com/halfrost/Halfrost-Field/blob/master/contents/Protocol/HTTP:2_RFC7540.md)<br>解开 HTTP/2 的面纱:HTTP/2 是如何建立连接的<br>HTTP/2 中的 HTTP 帧和流的多路复用<br>HTTP/2 中的帧定义<br>HTTP/2 中的 HTTP 语义<br>HTTP/2 中的注意事项<br>HTTP/2 中的常见问题<br>[[RFC 7541] HPACK: Header Compression for HTTP/2](https://github.com/halfrost/Halfrost-Field/blob/master/contents/Protocol/HTTP:2_RFC7541.md)<br>详解 HTTP/2 头压缩算法 —— HPACK<br>HTTP/2 HPACK 实际应用举例<br>[[RFC 7301] TLS Application-Layer Protocol Negotiation Extension](https://github.com/halfrost/Halfrost-Field/blob/master/contents/Protocol/TLS_ALPN.md)|
|WebSocket|Version 13|全双工通信的 WebSocket<br>|
|Protocol-buffers|proto3|高效的数据压缩编码方式 Protobuf<br>高效的序列化/反序列化数据方式 Protobuf|
| FlatBuffers |1.9.0|深入浅出 FlatBuffers 之 Schema<br>深入浅出 FlatBuffers 之 Encode<br>深入浅出 FlatBuffers 之 FlexBuffers|
|TCP||TCP/IP 基础概述<br>Advance\_TCP|
|TLS|Cryptography<br>|密码学概述<br>漫游对称加密算法<br>翱游公钥密码算法<br>消息的“指纹”是什么?<br>消息认证码是怎么一回事?<br>无处不在的数字签名<br>随处可见的公钥证书<br>秘密的实质——密钥<br>无法预测的根源——随机数
|TLS|TLS 1.3<br>|如何部署 TLS 1.3 ?<br>[[RFC 6520] TLS & DTLS Heartbeat Extension](https://github.com/halfrost/Halfrost-Field/blob/master/contents/Protocol/TLS_Heartbeat.md)<br>[[RFC 8446] The Transport Layer Security (TLS) Protocol Version 1.3](https://github.com/halfrost/Halfrost-Field/blob/master/contents/Protocol/TLS_1.3_RFC8446.md)<br>TLS 1.3 Introduction<br>TLS 1.3 Handshake Protocol<br>TLS 1.3 Record Protocol<br>TLS 1.3 Alert Protocol<br>TLS 1.3 Cryptographic Computations<br>TLS 1.3 0-RTT and Anti-Replay<br>TLS 1.3 Compliance Requirements<br>TLS 1.3 Implementation Notes<br>TLS 1.3 Backward Compatibility<br>TLS 1.3 Overview of Security Properties|
|HTTPS|TLS 1.2/TLS 1.3|HTTPS 温故知新(一) —— 开篇<br>HTTPS 温故知新(二) —— TLS 记录层协议<br>HTTPS 温故知新(三) —— 直观感受 TLS 握手流程(上)<br>HTTPS 温故知新(四) —— 直观感受 TLS 握手流程(下)<br>HTTPS 温故知新(五) —— TLS 中的密钥计算<br>HTTPS 温故知新(六) —— TLS 中的 Extensions<br>|
|QUIC|v44|如何部署 QUIC ?<br>------------------------------------------------------------------------<br>|
----------------------------
❄️ 星霜荏苒
| Project | Version | Article |
|:-------:|:-------:|:------|
| 开篇 | | 开篇|
| 2017 | |【星霜荏苒】 - 程序员如何在技术浪潮的更迭中保持较高的成长速度 ?|
| 2018 | |【星霜荏苒】 - 如何看待软件开发 ?|
| 2019 | |【星霜荏苒】 - 不甘当学渣,努力作学霸,最终是学民|
| 2020 | |【星霜荏苒】 - 下一个五年计划起航 !|
| 2021 | |后疫情时代下美国留学 CS Master 申请纪实<br>-----------------------------------------------------------------------------------------<br>|
❗️ 勘误
+ 如果在文章中发现了问题,欢迎提交 PR 或者 issue,欢迎大神们多多指点🙏🙏🙏
♥️ 感谢
感谢Star!

🌈 公众号

©️ 转载
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="知识共享许可协议" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />本<span xmlns:dct="http://purl.org/dc/terms/" href="http://purl.org/dc/dcmitype/Text" rel="dct:type">作品</span>由 <a xmlns:cc="http://creativecommons.org/ns#" href="https://github.com/halfrost/Halfrost-Field" property="cc:attributionName" rel="cc:attributionURL">halfrost</a> 创作,采用<a rel="license" href="http://creativecommons.org/licenses/by/4.0/">知识共享署名 4.0 国际许可协议</a>进行许可。