# 词汇表

这是这篇文章里用到的一些短语的词汇表。它们不一定是人们熟悉的标准含义，Eric S. Raymond 曾经编译过一份信息量巨大的词汇表 \[HackerDict],如果你能理解其中的一些片段，阅读这个词汇表将是惊喜而愉悦的。

**unk-unk** : unknown-unknown 的简写。指的是一些暂时不能被概念化的问题，它们会偷走项目的时间并且阻塞时间表。

**boss** : 给你任务的人或实体，有些地方可能泛指公众。

**printlining** : 在严格的临时机制上，在程序中插入一些语句，为调试输出一些程序执行过程中的信息。

**logging** : 实践中编写程序的一种方式，使得它能够产生可设置的输出以描述它的执行过程。

**分治** : 一种自上而下设计的技术，更重要的是，一种调试的技术，划分问题或谜题为小的问题或谜题。

**vapour** : 幻觉，而且通常是对还不能出售的软件虚假的承诺，往往不会物质化为任何固定的东西。

**boss** : 给你设定任务的人，有些时候，也指用户。

**tribe** : 与你一同为相同目标奋斗的人们。

**低垂的水果** : 轻易能达到的巨大提升。

**主办人** :项目的发起人

**垃圾** : 不再需要被放在内存中的对象

**商业** : 一群为财富聚合在一起的人

**公司** : 一群为财富聚合在一起的人

**集体** : 一群与你共享文化亲缘与忠诚的人。

**滚动目盲** : 一种由于有效信息被太多无效信息掩盖导致你不能发现它的效应

**挂钟** : 由挂钟测量的现实中真实的时间，与 CPU 时间相对。

**瓶颈** : 系统性能最重要的限制/一个可以限制性能的界限。

**主线** : 一个独特的信息块，所有缓存副本都从它继承而来，作为这份数据的官方版本。

**分配的堆** : 一份内存在这样的情况下可以被称为分配了堆：当释放它的机制已经完成时。

**垃圾** : 已经被分配但不再有有效意义的内存。

**GC** : 一个回收垃圾的系统。

**内存泄露** : 无意持有的一系列对象的引用，它们避免了垃圾回收（或者垃圾回收器或内存管理系统中的 bug！）导致程序随时间逐渐增加了它的内存占用。

**极限编程** : 一种强调与客户交流以及自动化测试的编程风格。

**碰壁** : 因为耗尽了某种特定的资源导致性能突然大幅度地降级

**投机编程** : 在知道一个东西有用前就把它做出来。

**信息隐藏(封装)** : 通过使用尽可能少暴露信息的接口来让事情保持独立解耦的一种设计原则。

**面向对象编程** : 一种强调在对象内部管理状态的编程风格。

**交流语言** : 一种优先为标准化而非执行设计的语言。

**箱子与箭头** : 一种宽松，非正式的，由箱子和箭头组合而成表达关系的图表制作风格，这与正式的图表方法论，比如 UML，相对。

**通用语** : 一种语言是如此受欢迎以至于它成了它的领域中实际上的标准，例如法语一度成为国际外交的手段。

**buy vs. build** : 用来形容购买软件还是自己编写软件这样的选择。

**合并工作** : 需要很少创造力并产生很少风险的工作，合并工作可以被很容易地评估。

**编程符号** : 编程语言的同义词，强调编程语言的数学本质以及它们与自然语言相比的简单之处。

**稻草人** : 一种用来作为技术讨论起点的文档。稻草人也可以引申出火柴人，罐头人，木头人，铁人，等等。

**白纸** : 一种信息文档，通常用来解释或将产品或思想卖给观众而非程序员。

Next [书籍/网站](https://braydie.gitbook.io/how-to-be-a-programmer/zh/5-bibliography)
