Awesome Open Source
Awesome Open Source

Halfrost-Field 冰霜之地

visitor badge

GitHub

⭐️ 为什么要建这个仓库

世人都说阅读开源框架的源代码对于功力有显著的提升,所以我也尝试阅读开源框架的源代码,并对其内容进行详细地分析和理解。在这里将自己阅读开源框架源代码的心得记录下来,希望能对各位开发者有所帮助。我会不断更新这个仓库中的文章,如果想要关注可以点 star。

📖 目录

🐳 Go

Project Version Article
Go 1.16 darwin/amd64 Go 初学者的成长之路
初探 Go 的编译命令执行过程
深入解析 Go Slice 底层实现
如何设计并实现一个线程安全的 Map ?(上篇)
如何设计并实现一个线程安全的 Map ?(下篇)
面试中 LRU / LFU 的青铜与王者
深入研究 Go interface 底层实现
Go reflection 三定律与最佳实践
深入 Go 并发原语 — Channel 底层实现
空间搜索 golang/geo 如何理解 n 维空间和 n 维时空
高效的多维空间点索引算法 — Geohash 和 Google S2
Google S2 中的 CellID 是如何生成的 ?
Google S2 中的四叉树求 LCA 最近公共祖先
神奇的德布鲁因序列
四叉树上如何求希尔伯特曲线的邻居 ?
Google S2 是如何解决空间覆盖最优解问题的?
-----------------------------------------------------------------------------
Code <T> share keynote

🍉 Machine Learning

Project Version Article
机器学习 Andrew Ng Stanford University 目录
-----------------------------------------------------------------
Week1 —— What is Machine Learning
Week1 —— Linear Regression with One Variable (Gradient Descent)
Week2 —— Multivariate Linear Regression
Week2 —— Computing Parameters Analytically
Week2 —— Octave Matlab Tutorial
Week3 —— Logistic Regression
Week3 —— Regularization
Week4 —— Neural Networks Representation
Week5 —— Neural Networks Learning
Week5 —— Backpropagation in Practice
Week6 —— Advice for Applying Machine Learning
Week6 —— Machine Learning System Design
Week7 —— Support Vector Machines
Week8 —— Unsupervised Learning
Week8 —— Dimensionality Reduction
Week9 —— Anomaly Detection
Week9 —— Recommender Systems
Week10 —— Large Scale Machine Learning
Week11 —— Application Example: Photo OCR

🚀 JavaScript

Project Version Article
JavaScript ECMAScript 6 JavaScript 新手的踩坑日记
从 JavaScript 作用域说开去
揭开 this & that 之迷
JSConf China 2017 Day One — JavaScript Change The World
JSConf China 2017 Day Two — End And Beginning
Vue.js 2.3.4 Vue 全家桶 + Electron 开发的一个跨三端的应用
大话大前端时代(一) —— Vue 与 iOS 的组件化
Ghost 1.24.8 Ghost 博客搭建日记
Ghost 博客升级指南
Ghost 博客炫技"新"玩法
博客跑分优化
--------------------------------------------------------------------------------

📱 iOS

Project Version Article
Weex 0.10.0 Weex 是如何在 iOS 客户端上跑起来的
由 FlexBox 算法强力驱动的 Weex 布局引擎
Weex 事件传递的那些事儿
Weex 中别具匠心的 JS Framework
iOS 开发者的 Weex 伪最佳实践指北
BeeHive v1.2.0 BeeHive —— 一个优雅但还在完善中的解耦框架
组件化 路由与解耦 iOS 组件化 —— 路由设计思路分析
ReactiveObjC 2.1.2 函数响应式编程 (FRP) 从入门到 "放弃"—— 基础概念篇
函数响应式编程 (FRP) 从入门到 "放弃"—— 图解 RACSignal 篇
ReactiveCocoa 中 RACSignal 是如何发送信号的
ReactiveCocoa 中 RACSignal 所有变换操作底层实现分析(上)
ReactiveCocoa 中 RACSignal 所有变换操作底层实现分析(中)
ReactiveCocoa 中 RACSignal 所有变换操作底层实现分析(下)
ReactiveCocoa 中 RACSignal 冷信号和热信号底层实现分析
ReactiveCocoa 中 集合类 RACSequence 和 RACTuple 底层实现分析
ReactiveCocoa 中 RACScheduler 是如何封装 GCD 的
ReactiveCocoa 中 RACCommand 底层实现分析
ReactiveCocoa 中 奇妙无比的“宏”魔法
Aspect iOS 如何实现Aspect Oriented Programming (上)
iOS 如何实现Aspect Oriented Programming (下)
ObjC objc runtime 680 神经病院 Objective-C Runtime 入院第一天—— isa 和 Class
神经病院 Objective-C Runtime 住院第二天——消息发送与转发
神经病院 Objective-C Runtime 出院第三天——如何正确使用 Runtime
ObjC 对象的今生今世
iOS Block 深入研究 Block 捕获外部变量和 __block 实现原理
深入研究 Block 用 weakSelf、strongSelf、@weakify、@strongify 解决循环引用
iOS Simulator 给iOS 模拟器“安装”app文件
Remote debugging on iOS with Safari Web Inspector
xcconfig 手把手教你给一个 iOS app 配置多个环境变量
Jenkins Weekly Release 2.15 手把手教你利用 Jenkins 持续集成 iOS 项目
StoryBoard 关于 IB_DESIGNABLE / IBInspectable 的那些需要注意的事
WWDC 2016 WWDC2016 Session 笔记 - Xcode 8 Auto Layout 新特性
WWDC2016 Session 笔记 - iOS 10 UICollectionView 新特性
WWDC2016 Session 笔记 - iOS 10 推送 Notification 新特性
Jekyll 如何快速给自己构建一个温馨的"家"——用 Jekyll 搭建静态博客
Swift 2.2 iOS如何优雅的处理“回调地狱Callback hell”(二)——使用Swift
PromiseKit iOS如何优雅的处理“回调地狱Callback hell”(一)——使用PromiseKit
WebSocket 微信,QQ 这类 IM app 怎么做——谈谈 Websocket
Realm Realm 数据库 从入门到“放弃”
手把手教你从 Core Data 迁移到 Realm
Core Data iOS Core Data 数据迁移 指南
Cordova iOS Hybrid 框架 ——PhoneGap
Remote debugging on iOS with Safari Web Inspector
Animation iOS app 旧貌换新颜(一) — Launch Page 让 Logo "飞"出屏幕
Interview iOS 面试总结
Phabricator 搭建Phabricator我遇到的那些坑
Code review - Phabricator Use guide introduce
-----------------------------------------------------------------------

📝 Protocol

Project Version Article
HTTP 1.1 HTTP 基础概述
HTTP 2 [RFC 7540] Hypertext Transfer Protocol Version 2 (HTTP/2)
解开 HTTP/2 的面纱:HTTP/2 是如何建立连接的
HTTP/2 中的 HTTP 帧和流的多路复用
HTTP/2 中的帧定义
HTTP/2 中的 HTTP 语义
HTTP/2 中的注意事项
HTTP/2 中的常见问题
[RFC 7541] HPACK: Header Compression for HTTP/2
详解 HTTP/2 头压缩算法 —— HPACK
HTTP/2 HPACK 实际应用举例
[RFC 7301] TLS Application-Layer Protocol Negotiation Extension
WebSocket Version 13 全双工通信的 WebSocket
Protocol-buffers proto3 高效的数据压缩编码方式 Protobuf
高效的序列化/反序列化数据方式 Protobuf
FlatBuffers 1.9.0 深入浅出 FlatBuffers 之 Schema
深入浅出 FlatBuffers 之 Encode
深入浅出 FlatBuffers 之 FlexBuffers
TCP TCP/IP 基础概述
Advance_TCP
TLS Cryptography
密码学概述
漫游对称加密算法
翱游公钥密码算法
消息的“指纹”是什么?
消息认证码是怎么一回事?
无处不在的数字签名
随处可见的公钥证书
秘密的实质——密钥
无法预测的根源——随机数
TLS TLS 1.3
如何部署 TLS 1.3 ?
[RFC 6520] TLS & DTLS Heartbeat Extension
[RFC 8446] The Transport Layer Security (TLS) Protocol Version 1.3
TLS 1.3 Introduction
TLS 1.3 Handshake Protocol
TLS 1.3 Record Protocol
TLS 1.3 Alert Protocol
TLS 1.3 Cryptographic Computations
TLS 1.3 0-RTT and Anti-Replay
TLS 1.3 Compliance Requirements
TLS 1.3 Implementation Notes
TLS 1.3 Backward Compatibility
TLS 1.3 Overview of Security Properties
HTTPS TLS 1.2/TLS 1.3 HTTPS 温故知新(一) —— 开篇
HTTPS 温故知新(二) —— TLS 记录层协议
HTTPS 温故知新(三) —— 直观感受 TLS 握手流程(上)
HTTPS 温故知新(四) —— 直观感受 TLS 握手流程(下)
HTTPS 温故知新(五) —— TLS 中的密钥计算
HTTPS 温故知新(六) —— TLS 中的 Extensions
QUIC v44 如何部署 QUIC ?
------------------------------------------------------------------------

❄️ 星霜荏苒

Project Version Article
开篇 开篇
2017 【星霜荏苒】 - 程序员如何在技术浪潮的更迭中保持较高的成长速度 ?
2018 【星霜荏苒】 - 如何看待软件开发 ?
-----------------------------------------------------------------------------------------

❗️ 勘误

  • 如果在文章中发现了问题,欢迎提交 PR 或者 issue,欢迎大神们多多指点🙏🙏🙏

♥️ 感谢

感谢Star!

Stargazers over time

🌈 公众号

©️ 转载

知识共享许可协议
本作品由 halfrost 创作,采用知识共享署名 4.0 国际许可协议进行许可。


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
javascript (70,403) 
go (15,165) 
objective-c (10,944) 
swift (7,759) 
golang (3,885) 
machine-learning (3,648) 
ios (3,618) 
blog (683) 
algorithm (509) 
network (479) 
article (80) 
source-code (55)