-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcoding.html
More file actions
16 lines (16 loc) · 13.6 KB
/
Copy pathcoding.html
File metadata and controls
16 lines (16 loc) · 13.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="en-US" data-preset="contrast" data-primary-color="#307FFF" data-link-color="#307FFF" data-link-dark-color="#90C695" data-content-max-width="1350" data-resizable-sidebar="true" data-sidebar-width="300"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="UTF-8"><meta name="built-on" content="2026-06-30T14:11:42.358819133"><link rel="canonical" href="https://blog.kubectl.org/coding.html" data-react-helmet="true"><title>Coding | Mind and Hand</title><script type="application/json" id="virtual-toc-data">[{"id":"different-stages","level":0,"title":"Different Stages","anchor":"#different-stages"},{"id":"-qjug40_8","level":1,"title":"第一阶段","anchor":"#-qjug40_8"},{"id":"-qjug40_9","level":1,"title":"第二阶段","anchor":"#-qjug40_9"},{"id":"-qjug40_10","level":1,"title":"第三阶段","anchor":"#-qjug40_10"},{"id":"-qjug40_11","level":1,"title":"第四阶段","anchor":"#-qjug40_11"},{"id":"-qjug40_12","level":1,"title":"第五阶段","anchor":"#-qjug40_12"},{"id":"reading-framework","level":0,"title":"Reading Framework","anchor":"#reading-framework"},{"id":"-qjug40_27","level":1,"title":"拆分结构","anchor":"#-qjug40_27"},{"id":"-qjug40_28","level":1,"title":"拆分行为","anchor":"#-qjug40_28"},{"id":"-qjug40_29","level":1,"title":"阅读思路","anchor":"#-qjug40_29"}]</script><script type="application/json" id="topic-shortcuts"></script><link href="https://resources.jetbrains.com/writerside/apidoc/6.27.0-b1156/app.css" rel="stylesheet"><link href="static/custom.css" rel="stylesheet"><meta name="msapplication-TileColor" content="#000000"><link rel="apple-touch-icon" sizes="180x180" href="https://jetbrains.com/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="https://jetbrains.com/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="https://jetbrains.com/favicon-16x16.png"><meta name="msapplication-TileImage" content="https://resources.jetbrains.com/storage/ui/favicons/mstile-144x144.png"><meta name="msapplication-square70x70logo" content="https://resources.jetbrains.com/storage/ui/favicons/mstile-70x70.png"><meta name="msapplication-square150x150logo" content="https://resources.jetbrains.com/storage/ui/favicons/mstile-150x150.png"><meta name="msapplication-wide310x150logo" content="https://resources.jetbrains.com/storage/ui/favicons/mstile-310x150.png"><meta name="msapplication-square310x310logo" content="https://resources.jetbrains.com/storage/ui/favicons/mstile-310x310.png"><meta name="image" content=""><!-- Open Graph --><meta property="og:title" content="Coding | Mind and Hand"><meta property="og:description" content=""><meta property="og:image" content=""><meta property="og:site_name" content="Mind and Hand Help"><meta property="og:type" content="website"><meta property="og:locale" content="en_US"><meta property="og:url" content="https://blog.kubectl.org/coding.html"><!-- End Open Graph --><!-- Twitter Card --><meta name="twitter:card" content="summary_large_image"><meta name="twitter:site" content=""><meta name="twitter:title" content="Coding | Mind and Hand"><meta name="twitter:description" content=""><meta name="twitter:creator" content=""><meta name="twitter:image:src" content=""><!-- End Twitter Card --><!-- Schema.org WebPage --><script type="application/ld+json">{
"@context": "http://schema.org",
"@type": "WebPage",
"@id": "https://blog.kubectl.org/coding.html#webpage",
"url": "https://blog.kubectl.org/coding.html",
"name": "Coding | Mind and Hand",
"description": "",
"image": "",
"inLanguage":"en-US"
}</script><!-- End Schema.org --><!-- Schema.org WebSite --><script type="application/ld+json">{
"@type": "WebSite",
"@id": "https://blog.kubectl.org/#website",
"url": "https://blog.kubectl.org/",
"name": "Mind and Hand Help"
}</script><!-- End Schema.org --></head><body data-id="coding" data-main-title="Coding" data-article-props="{"seeAlsoStyle":"links"}" data-template="article" data-breadcrumbs="thinking.md|Thinking"><div class="wrapper"><main class="panel _main"><header class="panel__header"><div class="container"><h3>Mind and Hand Help</h3><div class="panel-trigger"></div></div></header><section class="panel__content"><div class="container"><article class="article" data-shortcut-switcher="inactive"><h1 data-toc="coding" id="coding.md">Coding</h1><aside class="prompt" data-type="tip" data-title="" id="-qjug40_4"><p id="-qjug40_7">编码的思考</p></aside><section class="chapter"><h2 id="different-stages" data-toc="different-stages">Different Stages</h2><section class="chapter"><h3 id="-qjug40_8" data-toc="-qjug40_8">第一阶段</h3><p id="-qjug40_13">对语言的学习应用,掌握语言的基础用法</p></section><section class="chapter"><h3 id="-qjug40_9" data-toc="-qjug40_9">第二阶段</h3><p id="-qjug40_14">对语言生态的学习应用。</p><p id="-qjug40_15">面对问题,从生态中寻求到解决方法,并不断尝试寻找环境下相对的最优方法</p></section><section class="chapter"><h3 id="-qjug40_10" data-toc="-qjug40_10">第三阶段</h3><p id="-qjug40_16">深入理解语言生态,从语言生态中总结出场景设计的对象或方法</p></section><section class="chapter"><h3 id="-qjug40_11" data-toc="-qjug40_11">第四阶段</h3><p id="-qjug40_17">深入理解语言,编程语言对于解决问题意义在于描述问题</p><p id="-qjug40_18">结合语言的特性描述问题</p><p id="-qjug40_19">从语言的特性(自身的特性、描述能力的特性)正向推导出生态的特性(应用的特性)</p><p id="-qjug40_20">深入理解语言,同样包含着基于语言本身的性能优化</p></section><section class="chapter"><h3 id="-qjug40_12" data-toc="-qjug40_12">第五阶段</h3><p id="-qjug40_21">结合语言、结合语言的生态,构造自我可迭代的生态。</p><p id="-qjug40_22">整个生态的构建在于,不断丰富底层,提升上层能力,同时不断优化丰富承上启下的过程</p><p id="-qjug40_23">原则上 <code class="code" id="-qjug40_24">DogFooding</code></p></section></section><section class="chapter"><h2 id="reading-framework" data-toc="reading-framework">Reading Framework</h2><p id="-qjug40_25">阅读一个框架源码,最重要的一点是不能深究某一个细节,阅读源码框架,最终要的是<span class="control" id="-qjug40_30">理解源码框架实现功能的过程</span>。</p><p id="-qjug40_26">把 <code class="code" id="-qjug40_31">Framework</code> 看成一个 <code class="code" id="-qjug40_32">Function</code> ,去理解 <code class="code" id="-qjug40_33">Function</code> 的 <code class="code" id="-qjug40_34">Input</code> 和 <code class="code" id="-qjug40_35">Output</code></p><section class="chapter"><h3 id="-qjug40_27" data-toc="-qjug40_27">拆分结构</h3><p id="-qjug40_36"><span class="control" id="-qjug40_40"><code class="code" id="-qjug40_41">overall structure</code> 由多个 <code class="code" id="-qjug40_42">local structure</code> 组成</span></p><ul class="list _bullet" id="-qjug40_37"><li class="list__item" id="-qjug40_43"><p id="-qjug40_45"><code class="code" id="-qjug40_46">overall structure</code> 和 <code class="code" id="-qjug40_47">local structure</code> 的关系是递归存在的</p></li><li class="list__item" id="-qjug40_44"><p id="-qjug40_48">某个 <code class="code" id="-qjug40_49">local structure</code> 也可是另外一个 <code class="code" id="-qjug40_50">overall structure</code></p></li></ul><p id="-qjug40_38"><code class="code" id="-qjug40_51">local structure</code>和<code class="code" id="-qjug40_52">local structure</code>之前为了保证信息的使用, <span class="control" id="-qjug40_53">存在引用</span></p><ul class="list _bullet" id="-qjug40_39"><li class="list__item" id="-qjug40_54"><p id="-qjug40_58">这里所说的<span class="control" id="-qjug40_59">引用</span>包含了语言本身的特性(不局限于引用)</p></li><li class="list__item" id="-qjug40_55"><p id="-qjug40_60"><code class="code" id="-qjug40_62">local structure</code> 不一定是真正的代码的抽象,有时候也是为了解决某些问题而存在的一个过程、概念的抽象</p><ul class="list _bullet" id="-qjug40_61"><li class="list__item" id="-qjug40_63"><p id="-qjug40_64">这种表现行为一般在面向对象中,不同的角度看待同一个对象,会获取所需的不同的信息</p></li></ul></li><li class="list__item" id="-qjug40_56"><p id="-qjug40_65">因此在阅读源码的时候要<span class="control" id="-qjug40_66">抓住关键的<code class="code" id="-qjug40_67">local structure</code>的引用</span></p></li><li class="list__item" id="-qjug40_57"><p id="-qjug40_68">理解一个 <span class="control" id="-qjug40_69">关键的 <code class="code" id="-qjug40_70">local structure</code></span> 可能会帮助理解整个从前到后的过程</p></li></ul></section><section class="chapter"><h3 id="-qjug40_28" data-toc="-qjug40_28">拆分行为</h3><p id="-qjug40_71">尝试 <span class="control" id="-qjug40_75">猜想、验证、校正</span> + <span class="control" id="-qjug40_76">质疑</span></p><ul class="list _bullet" id="-qjug40_72"><li class="list__item" id="-qjug40_77"><p id="-qjug40_81">猜想 <span class="control" id="-qjug40_83">框架使用过程中对于使用对象的抽象</span></p><ul class="list _bullet" id="-qjug40_82"><li class="list__item" id="-qjug40_84"><p id="-qjug40_85">面向对象语言中,大部分框架都会抽象使用过程中的对象</p></li></ul></li><li class="list__item" id="-qjug40_78"><p id="-qjug40_86">猜想 <code class="code" id="-qjug40_87">overall structure</code> 的 可能存在的各个 <code class="code" id="-qjug40_88">local structure</code> 的组成部分</p></li><li class="list__item" id="-qjug40_79"><p id="-qjug40_89">猜想 <code class="code" id="-qjug40_90">local structure</code> 和 <code class="code" id="-qjug40_91">local structure</code> 之间的关联与应用</p></li><li class="list__item" id="-qjug40_80"><p id="-qjug40_92">猜想 <code class="code" id="-qjug40_94">local structure</code> 对于 <code class="code" id="-qjug40_95">Input</code>, <code class="code" id="-qjug40_96">Output</code>, <code class="code" id="-qjug40_97">Function</code>的抽象</p><ul class="list _bullet" id="-qjug40_93"><li class="list__item" id="-qjug40_98"><p id="-qjug40_100">为什么这么思考,因为高级编程语言是可自举的,所以高级编程语言实现的框架,如果抽象程度足够,也是可自举的</p></li><li class="list__item" id="-qjug40_99"><p id="-qjug40_101"><code class="code" id="-qjug40_102">Input</code>, <code class="code" id="-qjug40_103">Output</code>, <code class="code" id="-qjug40_104">Function</code> 一般对应的就是框架的实践</p></li></ul></li></ul><p id="-qjug40_73">不要尝试完全理解某个框架,应当是去理解某个 <code class="code" id="-qjug40_105">local structure</code> 解决的某个问题</p><p id="-qjug40_74">一般意义上基于问题可以拆分的原则,整体问题的解决可以分割为多个小问题的解决</p></section><section class="chapter"><h3 id="-qjug40_29" data-toc="-qjug40_29">阅读思路</h3><p id="-qjug40_106"><span class="control" id="-qjug40_110">栈式:</span> 为了实现<code class="code" id="-qjug40_111">overall structure</code> ,进而设计了某些 <code class="code" id="-qjug40_112">local structure</code></p><ol class="list _decimal" id="-qjug40_107" type="1"><li class="list__item" id="-qjug40_113"><p id="-qjug40_117"><span class="control" id="-qjug40_118"><code class="code" id="-qjug40_122">step1</code></span>: 猜想: <code class="code" id="-qjug40_119">overall structure</code> 实现了什么,猜想组成 <code class="code" id="-qjug40_120">overall structure</code> 的 <code class="code" id="-qjug40_121">local structure</code></p></li><li class="list__item" id="-qjug40_114"><p id="-qjug40_123"><span class="control" id="-qjug40_124"><code class="code" id="-qjug40_126">step2</code></span>: 验证:具体阅读 <code class="code" id="-qjug40_125">local structure</code> 的实现内容</p></li><li class="list__item" id="-qjug40_115"><p id="-qjug40_127"><span class="control" id="-qjug40_128"><code class="code" id="-qjug40_130">step3</code></span>: 校正:根据阅读内容的结果,校正 <span class="control" id="-qjug40_129"><code class="code" id="-qjug40_131">step1</code></span></p></li><li class="list__item" id="-qjug40_116"><p id="-qjug40_132">顺序循环 <code class="code" id="-qjug40_133">step1</code>, <code class="code" id="-qjug40_134">step2</code>, <code class="code" id="-qjug40_135">step3</code>, 中间穿插 <code class="code" id="-qjug40_136">质疑</code> ,一般质疑是否为最优解</p></li></ol><p id="-qjug40_108"><span class="control" id="-qjug40_137">链式:</span> 一些 <code class="code" id="-qjug40_138">local structure</code> 的先后以及关联 组成了 <code class="code" id="-qjug40_139">overall structure</code></p><ul class="list _bullet" id="-qjug40_109"><li class="list__item" id="-qjug40_140"><p id="-qjug40_142">注重解决实际问题的顺序,思考为什么先,思考为什么后,思考为什么回调</p></li><li class="list__item" id="-qjug40_141"><p id="-qjug40_143">总结先、后、回调等,泛化框架设计思路</p></li></ul></section></section><div class="last-modified">30 June 2026</div><div data-feedback-placeholder="true"></div><div class="navigation-links _bottom"><a href="continuity.html" class="navigation-links__prev">Continuity</a><a href="design-pattern.html" class="navigation-links__next">Design Pattern</a></div></article><div id="disqus_thread"></div></div></section></main></div><script src="https://resources.jetbrains.com/writerside/apidoc/6.27.0-b1156/app.js"></script></body></html>