Mind and Hand Help

Coding

Different Stages

第一阶段

对语言的学习应用,掌握语言的基础用法

第二阶段

对语言生态的学习应用。

面对问题,从生态中寻求到解决方法,并不断尝试寻找环境下相对的最优方法

第三阶段

深入理解语言生态,从语言生态中总结出场景设计的对象或方法

第四阶段

深入理解语言,编程语言对于解决问题意义在于描述问题

结合语言的特性描述问题

从语言的特性(自身的特性、描述能力的特性)正向推导出生态的特性(应用的特性)

深入理解语言,同样包含着基于语言本身的性能优化

第五阶段

结合语言、结合语言的生态,构造自我可迭代的生态。

整个生态的构建在于,不断丰富底层,提升上层能力,同时不断优化丰富承上启下的过程

原则上 DogFooding

Reading Framework

阅读一个框架源码,最重要的一点是不能深究某一个细节,阅读源码框架,最终要的是理解源码框架实现功能的过程

Framework 看成一个 Function ,去理解 FunctionInputOutput

拆分结构

overall structure 由多个 local structure 组成

  • overall structurelocal structure 的关系是递归存在的

  • 某个 local structure 也可是另外一个 overall structure

local structurelocal structure之前为了保证信息的使用, 存在引用

  • 这里所说的引用包含了语言本身的特性(不局限于引用)

  • local structure 不一定是真正的代码的抽象,有时候也是为了解决某些问题而存在的一个过程、概念的抽象

    • 这种表现行为一般在面向对象中,不同的角度看待同一个对象,会获取所需的不同的信息

  • 因此在阅读源码的时候要抓住关键的local structure的引用

  • 理解一个 关键的 local structure 可能会帮助理解整个从前到后的过程

拆分行为

尝试 猜想、验证、校正 + 质疑

  • 猜想 框架使用过程中对于使用对象的抽象

    • 面向对象语言中,大部分框架都会抽象使用过程中的对象

  • 猜想 overall structure 的 可能存在的各个 local structure 的组成部分

  • 猜想 local structurelocal structure 之间的关联与应用

  • 猜想 local structure 对于 Input, Output, Function的抽象

    • 为什么这么思考,因为高级编程语言是可自举的,所以高级编程语言实现的框架,如果抽象程度足够,也是可自举的

    • Input, Output, Function 一般对应的就是框架的实践

不要尝试完全理解某个框架,应当是去理解某个 local structure 解决的某个问题

一般意义上基于问题可以拆分的原则,整体问题的解决可以分割为多个小问题的解决

阅读思路

栈式: 为了实现overall structure ,进而设计了某些 local structure

  1. step1: 猜想: overall structure 实现了什么,猜想组成 overall structurelocal structure

  2. step2: 验证:具体阅读 local structure 的实现内容

  3. step3: 校正:根据阅读内容的结果,校正 step1

  4. 顺序循环 step1, step2, step3, 中间穿插 质疑 ,一般质疑是否为最优解

链式: 一些 local structure 的先后以及关联 组成了 overall structure

  • 注重解决实际问题的顺序,思考为什么先,思考为什么后,思考为什么回调

  • 总结先、后、回调等,泛化框架设计思路

27 January 2026