<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>05月 on 我要改名叫嘟嘟</title><link>https://biyego.com/docs/2023/05/</link><description>Recent content in 05月 on 我要改名叫嘟嘟</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Mon, 29 May 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://biyego.com/docs/2023/05/index.xml" rel="self" type="application/rss+xml"/><item><title>《编码》，一本很是硬核的计算机科普书</title><link>https://biyego.com/docs/2023/05/2023-05-29-yue-du-shu-mu-bian-ma-yi-ben-hen-shi-ying-he/</link><pubDate>Mon, 29 May 2023 00:00:00 +0000</pubDate><guid>https://biyego.com/docs/2023/05/2023-05-29-yue-du-shu-mu-bian-ma-yi-ben-hen-shi-ying-he/</guid><description>&lt;p&gt;《编码》这本书，是一位PM同事在22年年初于朋友圈推荐的，看过他的推荐文字（具体内容已经记不清楚，只记得推荐语是很诚恳很专业的），我将其加入书架。那时候，我还在用《京东读书》看书，到本周读完本书，我已经连续使用《微信读书》9个月了。&lt;/p&gt;&#10;&lt;p&gt;写本篇读书笔记前，我先统计了阅读时长：《京东读书》上是19小时，《微信读书》为6小时。如果两个APP的统计时长是没错的，那我读完本书，耗时为25小时。&lt;/p&gt;&#10;&lt;p&gt;《编码》并不长，只25.4万字。花如此长时间且跨越一年多才读完的原因来自于我的执着，我对于搞懂内存实现原理的执着。&lt;/p&gt;&#10;&lt;p&gt;书中内容是逐渐深入的。&lt;/p&gt;&#10;&lt;p&gt;理解摩尔斯电码，让我可以和邻家小伙伴在熄灯后突破物理距离使用手电筒沟通。&lt;/p&gt;&#10;&lt;p&gt;有了摩尔斯电码基础，再理解二进制就简单些了。&lt;/p&gt;&#10;&lt;p&gt;小伙伴搬了家，我有了新朋友，新朋友的房子并不能被手电筒照到，我们便牵了两根电线，用开关、灯泡沟通：我的开关控制朋友的灯泡，朋友的开关控制我的灯泡。这便是电报系统。&lt;/p&gt;&#10;&lt;p&gt;我和朋友的距离越来越远，长电线的电阻越来越大。为了克服更长的距离，我们在电线中间添加进中继系统——继电器。&lt;/p&gt;&#10;&lt;p&gt;继电器与二进制天然契合。如果继电器闭合，就代表二进制数字1，如果断开，则代表二进制数字0。&lt;/p&gt;&#10;&lt;p&gt;布尔代数，并联、串联，AND、OR……&lt;/p&gt;&#10;&lt;p&gt;逻辑门出现了。像让人通过的门一样，逻辑门让电流通过或阻止电流通过，它由继电器串联或并联组合而成。&lt;/p&gt;&#10;&lt;p&gt;通过门，我们可以实现简单的二进制加减法。&lt;/p&gt;&#10;&lt;p&gt;将继电器稍加改造，有了蜂鸣器，蜂鸣器换一种说法，便是振荡器。振荡器不需要人为干预，完全自发工作，它的输出在0和1之间按照固有规律交替变化，被称之为时钟。&lt;/p&gt;&#10;&lt;p&gt;继电器再改造，有了触发器电路，它可以“记住”某些信息，能记住信息的电路被称为锁存器。将锁存器“扩容”，便有了内存。&lt;/p&gt;&#10;&lt;p&gt;为了加法能够自动运行，于是前辈们将执行加法的计算操作进行存储让它变成代码，将执行代码的过程进行封装，则构造出微处理器。&lt;/p&gt;&#10;&lt;p&gt;有了微处理器、内存、键盘、视频显示器和磁盘驱动器，再搭配上操作系统，一台完整的计算机便出现在了我们面前。按照书中步骤，如果有兴趣且有时间，是完全可以自己组装出一台计算机的。&lt;/p&gt;&#10;&lt;p&gt;读完全书，我搞懂了内存实现原理么？我的答案是：“我搞懂过，在将‘存储器组织’相关章节看完第4遍时。”&lt;/p&gt;&#10;&lt;p&gt;但如果您再问我：“那可以解释一遍内存实现原理么？”&lt;/p&gt;&#10;&lt;p&gt;我的答案是：“距离搞懂日期过去半年，我已经忘记了。”&lt;/p&gt;&#10;&lt;p&gt;书中内容，既是如何从零开始搭建一台计算机，也是计算机的发展历史。历史中，既有趣事也有常识：&lt;/p&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;当我们讨论涉及存储器的相关问题时，通常使用的是字节数而非比特（需要的时候可以通过把字节数乘以8将其转换成比特）。有一种情况下我们会经常用到千比特和兆比特，那就是在描述在线路中流动的数据时，很多句子中经常会出现千比特每秒（kbps）或兆比特每秒（mbps）这些用语。例如，一台56K的调制解调器指的是其数据处理速度为56千比特每秒，而不是56千字节每秒。（这就是为什么我100M带宽的下载速度最高只能到12.5M/s的原因，只是计量单位不同而已。）&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;赫尔曼·霍尔瑞斯此后一发不可收拾。1896年，他创办制表机公司（Tabulating Machine Company），租借并出售其穿孔卡片设备。到1911年，由于公司的合并，制表机公司更名为计算制表记录公司（Computing-Tabulating-Recording Company），或者叫做C-T-R公司。再到1915年，托马斯 J·华盛顿（Thomas J.Watson，1874-1956）成为C-T-R公司的总裁，他在1924年将公司的名字更改为国际商业机器公司（International Business Machines Corporation），即IBM。（IBM，竟然在1896年就创建了，真正的百年老店！）&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;1947年发生了一件著名的事故，人们从Mark II计算机的一个继电器中发现了一只飞蛾。格蕾丝·莫瑞·赫柏（Grace Murray Hopper，1906-1992）于1944加入了艾肯的团队，日后成为了计算机编程语言领域非常著名的人物。他将上面提到的那只飞蛾用带子绑在计算机日志（logbook）上，并在其边上注明“第一个被发现的有生命的bug”。（bug的来源，是真的虫子。）&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;当使用电传打字机上打字，一旦到了一行的末尾时，我们通常会按下一个操作杆或按钮。这个操作其实包括两个动作：第一个动作是，使打印机的滑架回到起始位置，这样打印下一行时可以从纸的最左边开始，这就是回车。第二个动作是，将打印机的滑架移至正在使用中的位置的下一行，这就是换行。（换行与回车的来源。）&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;本书的推荐语为：“如果您的工种并非是程序员，但很想了解计算机是什么、计算机是如何搭建起来的、计算机有哪些好玩的历史。我会推荐您阅读《编码：隐匿在计算机软硬件背后的语言》。&lt;/p&gt;&#10;&lt;p&gt;“《编码》这本书，内容层层递进，由浅入深，既有计算机的搭建方式，也有计算机的发展历史。是很适合对计算机历史感兴趣但不需要写代码读者的。&lt;/p&gt;&#10;&lt;p&gt;“当然，如果您是一位程序员，我是强烈推荐阅读《编码》的。书中有内存的构造、处理器的原理，它对计算机原理的剖析，是比CSAPP更底层些的。&lt;/p&gt;&#10;&lt;p&gt;“总之，《编码》这本书，无关专业，大家是都能读懂的，强烈推荐。” &lt;small&gt;（&lt;a href="http://mp.weixin.qq.com/s?__biz=MjM5ODczOTMzMA==&amp;amp;mid=2247485553&amp;amp;idx=1&amp;amp;sn=75c433e6aa343169ba0f759e9cd57543&amp;amp;chksm=a6c7649c91b0ed8aa699e4701ae1e386c5fb6e7f1fc404ddbf1b4346e503ad1d91668dd58ea3" rel="noopener noreferrer"&gt;原文链接&lt;/a&gt;，更新于2023-05-29。）&lt;/small&gt;&lt;/p&gt;</description></item><item><title>在广深待8年半之后，我回重庆了</title><link>https://biyego.com/docs/2023/05/2023-05-28-sheng-huo-ri-ji-zai-guang-shen-dai-8-nian-ban-zhi/</link><pubDate>Sun, 28 May 2023 00:00:00 +0000</pubDate><guid>https://biyego.com/docs/2023/05/2023-05-28-sheng-huo-ri-ji-zai-guang-shen-dai-8-nian-ban-zhi/</guid><description>&lt;p&gt;在我2016年5月1日的日记里，有这样的一句：“坐第一排，在夕阳能照到脸的那边。对着窗外，看过往景色变换，念未来美好愿景，微笑便挂在嘴角，真是一种享受……听《故乡》，又湿了眼眶！”&lt;/p&gt;&#10;&lt;p&gt;坐大巴有夕阳能看窗外，是一种很能让我静心的场景。而听《故乡》掉眼泪，是因为《故乡》的歌词。&lt;/p&gt;&#10;&lt;p&gt;“你站在人群中那么孤单”总会变成我记忆中的场景：江北机场，阿妮第一次送我，我过完安检往前走的每一次回头，阿妮都对我挥手。南坪地铁站，我站在车内，车外阿妮站在人群中，在她周围，是走来走去的人群，不动的只有阿妮，车往前开，阿妮越来越远……&lt;/p&gt;&#10;&lt;p&gt;我不确定许巍是由怎样的经历写成这首《故乡》的，只感觉每一句歌词，都唱在我的软肋上——我是一直念着回到重庆回到阿妮身旁的。&lt;/p&gt;&#10;&lt;p&gt;我是一个不会转弯，不会做长远打算，不懂突破自己认知圈，胆很小的愚人。阿妮研究生找工作，多次提出过将工作找到广州，每一次，我都劝她不要，我心里眼里，只认定自己离开重庆时的想法：“我只是到广州到网易再念4年大学，既念大学又攒首付，等到首付攒够大学念完，我就回重庆了。”&lt;/p&gt;&#10;&lt;p&gt;回重庆，与阿妮住在自己买的房子，然后呢？&lt;/p&gt;&#10;&lt;p&gt;然后我是没有想过的。&lt;/p&gt;&#10;&lt;p&gt;后来的经历告诉我，然后还有很多，这在《&lt;a href="http://mp.weixin.qq.com/s?__biz=MjM5ODczOTMzMA==&amp;amp;mid=2247485135&amp;amp;idx=1&amp;amp;sn=c501d16410f4ea7e555c5bd5205183c3&amp;amp;chksm=a6c76a2291b0e3342cdac2bcf764cde1dcebb9a646d904beb3fc476bbd2e00c1f63e4a5430aa&amp;amp;scene=21#wechat_redirect"&gt;回不回重庆呢？&lt;/a&gt;》中理过一次，大体是围绕着房子、车子与结婚。&lt;/p&gt;&#10;&lt;p&gt;房子、车子与结婚，都需要钱。于是一转眼，我就在广东待了8年半。&lt;/p&gt;&#10;&lt;p&gt;也就异地了8年半。&lt;/p&gt;&#10;&lt;p&gt;回重庆的决定，是刚到广州时便已经做下的。推动我完成这决定的，是对未来的期许，是关于小孩的心理变化。&lt;/p&gt;&#10;&lt;p&gt;我一直很喜欢和小孩一起玩，他们单纯可爱，简单直接。但在我25岁之前，是全没考虑过自己生养小孩的，我的生命中，只有当下的愉悦。25岁之后的三四年，开始意识到自己应该结婚生子，但一想到生小孩，便能很明显地感受到自己没准备好，经济状态或是认知水平，都没准备好。&lt;/p&gt;&#10;&lt;p&gt;大概是29岁，我感觉到自己准备好要小孩了。我不知道这个转变是怎样发生的，也记不起转变具体发生在哪一天。某次下班路上与阿珍讨论起这个问题，我们得出的结论是：“或许是一种刻在人类本能里的自然现象，我们就该在正确的年龄做正确的大家都会做的事。”（到写下这一段，我意识到转变可能来自于我的同龄朋友们，大家都在做的事，也是我会想要做的。）&lt;/p&gt;&#10;&lt;p&gt;到现在，又三年过去，我总是很羡慕，已经有宝宝的好友们。&lt;/p&gt;&#10;&lt;p&gt;不管自己关于小孩的心理如何变化，对于小孩的成长，我一直的观点是：我要陪他一起成长。我认为“言传身教”中更重要些的是“身教”，要求宝宝做某事或者不做某事之前，应该先对自己提出同等要求；自己的行事准则，是会被宝宝模仿的。这观点来自于我做菜的选择：老妈从来没有教过我应该做什么菜，但当我想要做菜时，第一反应，是只会在老妈的菜谱中选择的。（受影响的，不止做菜。）&lt;/p&gt;&#10;&lt;p&gt;于是，我回重庆了，回来和阿妮一起准备人生的下一阶段。&lt;/p&gt;&#10;&lt;p&gt;离开深圳前，大白鹅与好几位同事都问过我相似问题：“当前的心情是怎样的？激动么？”&lt;/p&gt;&#10;&lt;p&gt;我的感觉是还好的。似乎买机票、收拾行李、最后的几天上班、吃饭……每天都在发生的事情，依然是每天都会发生的事情；只“周五离职，周六便离开深圳”有些仓促。&lt;/p&gt;&#10;&lt;p&gt;周六（也就是昨天）的日记是这样的：&lt;/p&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;早上6点醒来，6点40到球场，打球到9点。&lt;/p&gt;&#10;&lt;p&gt;吃一份蛋肠，这蛋肠是我的日常早餐。&lt;/p&gt;&#10;&lt;p&gt;洗漱完毕，眯半小时。&lt;/p&gt;&#10;&lt;p&gt;11点开始收拾行李：毛毯、紫外线灯、被子、小东西、电饭煲和刀具、瑜伽垫、风扇、衣架、鞋子。收拾行李，我按照老妈和阿妮的嘱咐，扔掉了许多很是破旧物品：已经用至少8年的单价99元的两床被子，用不到一年的我不喜欢的记不太清价格的电磁炉，一个我很喜欢的但破了皮的粉色的猪……&lt;/p&gt;&#10;&lt;p&gt;12点外出吃午餐，老板新制了菜单，能看到上面的价钱较之前，都涨了一块两块。土豆片回锅肉，是14元。&lt;/p&gt;&#10;&lt;p&gt;吃过午餐继续收拾，1点感觉有些累，再眯半小时。&lt;/p&gt;&#10;&lt;p&gt;下午3点，德邦快递小哥到房间来拿走需要寄的东西，运费一共262元。&lt;/p&gt;&#10;&lt;p&gt;下午4点将房间收拾完毕，退房。&lt;/p&gt;&#10;&lt;p&gt;4点半，打车到机场。托运、过完安检，在机场吃遇见小面，将储值全部用完。（遇见小面的豌杂，我认为比重庆本地的好吃。）&lt;/p&gt;&#10;&lt;p&gt;现在时间是下午6点35分，我正排在登机口，做这最后一天的记录。&lt;/p&gt;&#10;&lt;p&gt;深圳，再见。&lt;/p&gt;&#10;&lt;p&gt;我最不舍的，是深圳的蓝天白云与不歇的风。&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;上飞机时，我手里提着一个台灯，那是14年跟我从重庆到广州，再到深圳的灯。&lt;/p&gt;&#10;&lt;p&gt;现在，它和我一起回了“故乡”。 &lt;small&gt;（&lt;a href="http://mp.weixin.qq.com/s?__biz=MjM5ODczOTMzMA==&amp;amp;mid=2247485548&amp;amp;idx=1&amp;amp;sn=8ee975931fa4d9f5326b4c9511a2b648&amp;amp;chksm=a6c7648191b0ed979b8a9f18ac7818cc4ce8efcd1b65add282f6cd9a8da97d4be541c0933dc1" rel="noopener noreferrer"&gt;原文链接&lt;/a&gt;，更新于2023-05-28。）&lt;/small&gt;&lt;/p&gt;</description></item><item><title>本周日，我为更新苦恼着</title><link>https://biyego.com/docs/2023/05/2023-05-21-sheng-huo-ri-ji-ben-zhou-ri-wo-wei-geng-xin-ku/</link><pubDate>Sun, 21 May 2023 00:00:00 +0000</pubDate><guid>https://biyego.com/docs/2023/05/2023-05-21-sheng-huo-ri-ji-ben-zhou-ri-wo-wei-geng-xin-ku/</guid><description>&lt;p&gt;本周的更新，本该是“我对成都的印象”。在高铁、地铁上凑出500字，来回改四五遍后，不知道剩下的内容应该如何填充。不管我敲下的句子是怎样的，我都不满意。&lt;/p&gt;&#10;&lt;p&gt;我的脑子，乱成一团。&lt;/p&gt;&#10;&lt;p&gt;“一句总结话语，后面还应该跟一句示例，这样大家才能懂你在说什么。”&lt;/p&gt;&#10;&lt;p&gt;“用词要准确，可我就是不知道该用什么词代替‘位置’，或许应该是‘格局’‘布局’？”&lt;/p&gt;&#10;&lt;p&gt;“成都的路很宽，到底怎样才能让大家都感受到成都路的宽呢？”&lt;/p&gt;&#10;&lt;p&gt;“《猎人笔记》真的有帮助么？每次写不出东西来，就先看一节《猎人笔记》。作者有很多比喻，我写不出那许多比喻。我想要的是，通过我的文字，就能看见街头的样子。”&lt;/p&gt;&#10;&lt;p&gt;“要把去成都的三次经历汇总到一起么？和大仙一起坐火车重要么？晚上不去找酒店在网吧包夜的省钱行为，要先写一篇‘重师’铺垫么？”&lt;/p&gt;&#10;&lt;p&gt;“我到底要不要虚构些内容呢？文中提到的每一位，都要用昵称么？应该用昵称的，那昵称怎么取啊？对长辈的称呼是？”&lt;/p&gt;&#10;&lt;p&gt;……&lt;/p&gt;&#10;&lt;p&gt;我有一个大纲，我有很多细节。那些细节，不能按照大纲的方向拼出一篇文章。&lt;/p&gt;&#10;&lt;p&gt;我本该在周日早上将草稿完成的。我完成不了，我要去打篮球，我想要出出汗，我希望出出汗能让我的身体状态、精神状态好一些。&lt;/p&gt;&#10;&lt;p&gt;球场上的感觉，是很放松很舒爽的。早上的太阳，不热；偶尔的微风吹过，凉意满满；对手队友，都是熟人，赢球输球都能嘻嘻哈哈。&lt;/p&gt;&#10;&lt;p&gt;这样的放松状态，我不想拿出手机写成都，我眼里只有篮球。&lt;/p&gt;&#10;&lt;p&gt;打过球，我买了一个煎饼果子做早餐。我坐在煎饼果子摊与做煎饼果子的阿姨聊了好几分钟的天。&lt;/p&gt;&#10;&lt;p&gt;“阿姨，这个锅要先烘干么？”&lt;/p&gt;&#10;&lt;p&gt;“阿姨，这个锅什么时候能开始的？水滴在上面立马干了就证明可以开始做了？”&lt;/p&gt;&#10;&lt;p&gt;“阿姨，这个浆是用什么做的？面糊？是什么面啊？玉米面么？”&lt;/p&gt;&#10;&lt;p&gt;“啊？阿姨，你不是老板么？你手法这么熟练了，为什么不是老板啊？为什么不自己做呢？”&lt;/p&gt;&#10;&lt;p&gt;“啊？这个地方？就楼梯下面这一个小空间，不到六平米的地方？每个月租金一万么？”&lt;/p&gt;&#10;&lt;p&gt;“那阿姨您的工资是多少钱一个月的？4000？啊？老板还需要租一个仓库啊？那这样算下来，不算水电的话，一个月固定成本就得16000了哦？有房子、有门市租给别人真好……”&lt;/p&gt;&#10;&lt;p&gt;“阿姨？你每天早上都9点开门么？哦，会早一点啊？中午还有午休？那还不错哦。”&lt;/p&gt;&#10;&lt;p&gt;我转变了想法，我想先不写成都，先记一下和阿姨的聊天，记一下深圳这个很偏社区里面的一个位置很好的煎饼果子摊的现状。&lt;/p&gt;&#10;&lt;p&gt;我写了两百字。&lt;/p&gt;&#10;&lt;p&gt;我又写不下去了……&lt;/p&gt;&#10;&lt;p&gt;“写煎饼果子摊，得先把社区什么样子描述一下吧？”&lt;/p&gt;&#10;&lt;p&gt;“得先把煎饼果子摊的位置描述清楚吧？去地铁的路上？去地铁的路那么多，你这条路长什么样子的呢？”&lt;/p&gt;&#10;&lt;p&gt;“煎饼果子摊在楼梯下面，是怎样的楼梯呢？如何能将楼梯描述清楚呢？一楼是门市，二楼也是门市，为了上二楼方便，所以楼梯是建在外面的。那到底要怎样才能说清楚呢？”&lt;/p&gt;&#10;&lt;p&gt;“煎饼果子摊里面都摆了些什么东西，你观察过了么？手抓饼？做煎饼果子的那个圆的会转的下面烧火的机器，你知道叫什么名字么？你问阿姨了么？很多的外卖盒子？煎饼果子摊很乱？怎样的乱？”&lt;/p&gt;&#10;&lt;p&gt;无尽的细节问题等我回答，我答不上来。我再次放弃。&lt;/p&gt;&#10;&lt;p&gt;我微信跟大白鹅说：“我公众号还没搞定，晚上直接吃饭吧？下午不打台球了。”&lt;/p&gt;&#10;&lt;p&gt;可是我是很想打台球的啊，今天不打，下次再打不知道又是多少年后了……&lt;/p&gt;&#10;&lt;p&gt;我为什么没有存稿呢？我将笔记翻开，一篇篇找，全是半截，全不成样子。&lt;/p&gt;&#10;&lt;p&gt;我窝在床上，用很困的脑子，用很快的速度，将当前的状态，记了下来：“周日中午十二点，还没有完成本周更新的我，很困很乱很着急，很想和大白鹅一起打台球。” &lt;small&gt;（&lt;a href="http://mp.weixin.qq.com/s?__biz=MjM5ODczOTMzMA==&amp;amp;mid=2247485542&amp;amp;idx=1&amp;amp;sn=3c5b844c53c0f7d090f6a62ef5fa4877&amp;amp;chksm=a6c7648b91b0ed9de4ac1267c9e25ab3d805e7336fab7d2ec27a819333443f471abd7125efb5" rel="noopener noreferrer"&gt;原文链接&lt;/a&gt;，更新于2023-05-21。）&lt;/small&gt;&lt;/p&gt;</description></item><item><title>读《架构整洁之道》</title><link>https://biyego.com/docs/2023/05/2023-05-15-yue-du-shu-mu-du-jia-gou-zheng-jie-zhi-dao/</link><pubDate>Mon, 15 May 2023 00:00:00 +0000</pubDate><guid>https://biyego.com/docs/2023/05/2023-05-15-yue-du-shu-mu-du-jia-gou-zheng-jie-zhi-dao/</guid><description>&lt;p&gt;《架构整洁之道》这本书，是读完《&lt;a href="http://mp.weixin.qq.com/s?__biz=MjM5ODczOTMzMA==&amp;amp;mid=2247484927&amp;amp;idx=1&amp;amp;sn=ce02a58b0deb671607175c7e339b1bb9&amp;amp;chksm=a6c7691291b0e00469fb728f870522c758baab6d8754acdc8a4a59e1429e3939c109d5221742&amp;amp;scene=21#wechat_redirect"&gt;代码整洁之道&lt;/a&gt;》后添加进书架的。加入书架看六七章停下来，一放半年，终于在上个月将其完整过一遍；全书18万字，过完耗时8小时40分钟。&lt;/p&gt;&#10;&lt;p&gt;这本书，对我来说是比较难的，放着半年便是例证——看不太懂或是不太想看的书我都先放一边。&lt;/p&gt;&#10;&lt;p&gt;本书难点在于，如何将抽象的架构术语与具象的代码表现结合到一起？书中的很多专业名词，对我来说，是比较难以理解的，比如依赖反转、谦卑对象等。&lt;/p&gt;&#10;&lt;h3 id="一全书结构"&gt;一、全书结构&lt;a class="anchor" href="#%e4%b8%80%e5%85%a8%e4%b9%a6%e7%bb%93%e6%9e%84"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;抛开具体细节先不谈，让我先聊一聊全书的“架构”。整本书，被作者分为6个部分：&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;概述&lt;/li&gt;&#10;&lt;li&gt;编程范式&lt;/li&gt;&#10;&lt;li&gt;设计原则&lt;/li&gt;&#10;&lt;li&gt;组件构建原则&lt;/li&gt;&#10;&lt;li&gt;软件架构&lt;/li&gt;&#10;&lt;li&gt;实现细节&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;第一部分是“概述”，介绍了“设计”“架构”是什么，“设计”与“架构”是同一个概念，它们都是“一系列决策组成的连续体”。（此处“一系列决策组成的连续体”便是阅读难点之一，句子中的“连续体”让人摸不着头脑。）&lt;/p&gt;&#10;&lt;p&gt;总之，软件架构的终极目标是，用最小的人力成本来满足构建和维护该系统的需求。在软件开发中，我们不能忽视软件架构的价值，它决定了系统的可维护性与可迭代性。&lt;/p&gt;&#10;&lt;p&gt;书中第二部分介绍的是3种编程范式：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;结构化编程&lt;/li&gt;&#10;&lt;li&gt;面向对象编程&lt;/li&gt;&#10;&lt;li&gt;函数式编程&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;这部分内容，是很好理解的。编程范式的存在，是为了限制和规范程序员的能力，是为了告诉我们不能做什么（而不是可以做什么）。&lt;/p&gt;&#10;&lt;p&gt;第三部分介绍的是5种设计原则：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;单一职责原则&lt;/li&gt;&#10;&lt;li&gt;开闭原则&lt;/li&gt;&#10;&lt;li&gt;里氏替换原则&lt;/li&gt;&#10;&lt;li&gt;接口隔离原则&lt;/li&gt;&#10;&lt;li&gt;依赖反转原则&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;这些原则的设计，在我理解，依然是对程序员能力的限制，通过遵守这些原则，让我们写出更易于迭代的系统。&lt;/p&gt;&#10;&lt;p&gt;第四部分是组件构建原则。组件是什么？组件是软件的部署单元，是整个软件系统在部署过程中可以独立完成部署的最小实体。本部分主要讲的是组件之间的依赖关系应该如何梳理：组件之间是不应该有依赖环存在的，依赖关系必须要指向更稳定的方向等等。&lt;/p&gt;&#10;&lt;p&gt;第五部分是软件架构，也是全书最长的一部分。明确编程范式、设计原则以及组件关系之后，我们就可以谈架构了，这一部分将架构拉回到我能理解的层次。&lt;/p&gt;&#10;&lt;p&gt;架构是什么？&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;架构是：将系统规划成组件，并安排好组件之间的排列关系，以及组件之间互相通信的方式。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;这一部分很多章节讨论的重点，都是“边界”的切分。&lt;/p&gt;&#10;&lt;p&gt;书中第六部分，讨论的是实现细节。当使用架构师思想思考问题时，数据库、Web、应用程序框架等等那些我们耳熟能详平日接触最多的内容，都只是实现细节，是可以被另外的内容替代的。&lt;/p&gt;&#10;&lt;h3 id="二读书感悟"&gt;二、读书感悟&lt;a class="anchor" href="#%e4%ba%8c%e8%af%bb%e4%b9%a6%e6%84%9f%e6%82%9f"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;以上是全书的大体内容。&lt;/p&gt;&#10;&lt;p&gt;《架构整洁之道》这本书，我于一个月前看完，拖到现在才写读书笔记，是因为看完当时不知道如何完成读书笔记。&lt;/p&gt;&#10;&lt;p&gt;我不太理解架构是什么。&lt;/p&gt;&#10;&lt;p&gt;现在完成这读书笔记，也并非意味着只一个月，我便想清楚了架构的意义，我只是在逼自己做出总结。通过总结，让自己对“架构”想得多一些。&lt;/p&gt;&#10;&lt;p&gt;架构是什么呢？&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;在我理解，架构是一种清晰划分系统组件（模块）的方法，它的基础是整洁代码，当我们想要敲出更易理解代码、更易迭代系统时，我们便已经在考虑架构了。架构，是分层（比如MVC），然后分模块（比如功能一、功能二）。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;本书的附录部分，列举了本书作者马丁大叔的部分项目经历。马丁大叔从1970年开始做项目直到现在，拥有50多年编程经验。在他的编程生涯中，他持续总结自己的经验，整理出《代码整洁之道》《架构整洁之道》等经典书籍。&lt;/p&gt;&#10;&lt;p&gt;通过这些书（前人经验），再结合自己的工作经验，我意识到敲代码这件事，其实在两个层次上是不变的。&lt;/p&gt;&#10;&lt;p&gt;一是计算机的底层设计，晶体管、处理器、内存、指令执行流水线，这些是不会变的（我还没有了解过量子计算机是如何实现的）；二是在架构设计上，所有的软件系统，大到操作系统，小到加法计算器，都是分层分模块的，这种设计思路，也是不变的。&lt;/p&gt;&#10;&lt;p&gt;意识到这种不变，对我来说，是一种激励：持续学习持续整理，认清事物的本质，是可以像马丁大叔一样，不落后于时代的。&lt;/p&gt;&#10;&lt;h3 id="三摘抄"&gt;三、摘抄&lt;a class="anchor" href="#%e4%b8%89%e6%91%98%e6%8a%84"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;书中有许多句子，是我会常常回看的，于是摘抄部分于此处：&lt;/p&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;这和现代软件研发工作有点类似，现在的软件研发工程师都有点过于自信。哦，当然，他们确实不会偷懒，一点也不。但是他们真正偷懒的地方在于——持续低估那些好的、良好设计的、整洁的代码的重要性。&lt;/p&gt;&#10;&lt;p&gt;这些工程师们普遍用一句话来欺骗自己：“我们可以未来再重构代码，产品上线最重要！”但是结果大家都知道，产品上线以后重构工作就再没人提起了。市场的压力永远也不会消退，作为首先上市的产品，后面有无数的竞争对手追赶，必须要比他们跑得更快才能保持领先。&lt;/p&gt;&#10;&lt;p&gt;所以，重构的时机永远不会再有了。工程师们忙于完成新功能，新功能做不完，哪有时间重构老的代码？循环往复，系统成了一团乱麻，生产效率持续直线下降，直至为零。&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;通常来说，要想构建一个好的软件系统，应该从写整洁的代码开始做起。毕竟，如果建筑所使用的砖头质量不佳，那么架构所能起到的作用也会很有限。反之亦然，如果建筑的架构设计不佳，那么其所用的砖头质量再好也没有用。&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;首先，软件架构师自身需要是程序员，并且必须一直坚持做一线程序员，绝对不要听从那些说应该让软件架构师从代码中解放出来以专心解决高阶问题的伪建议。&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;h3 id="四推荐语"&gt;四、推荐语&lt;a class="anchor" href="#%e5%9b%9b%e6%8e%a8%e8%8d%90%e8%af%ad"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;本书的推荐语为：“作为程序员，在我们的编程生涯中，总是会需要修改自己或是他人代码的。如何能够让这些修改能够更容易更自然，可以从两方面着手，一是写出更易懂的代码；二是在写代码之前，想想看系统应该如何拆分。&lt;/p&gt;&#10;&lt;p&gt;“系统如何拆分？试试看《架构整洁之道》，书里面是有思路的。” &lt;small&gt;（&lt;a href="http://mp.weixin.qq.com/s?__biz=MjM5ODczOTMzMA==&amp;amp;mid=2247485537&amp;amp;idx=1&amp;amp;sn=73d5c93786125a63d91ab3aadcc01b4e&amp;amp;chksm=a6c7648c91b0ed9a90d2070d2cab850956e5d122450ac236c54ed6a3bd4ba7bc7a9ffee0de94" rel="noopener noreferrer"&gt;原文链接&lt;/a&gt;，更新于2023-05-15。）&lt;/small&gt;&lt;/p&gt;</description></item><item><title>记一次感冒</title><link>https://biyego.com/docs/2023/05/2023-05-14-sheng-huo-ri-ji-ji-yi-ci-gan-mao/</link><pubDate>Sun, 14 May 2023 00:00:00 +0000</pubDate><guid>https://biyego.com/docs/2023/05/2023-05-14-sheng-huo-ri-ji-ji-yi-ci-gan-mao/</guid><description>&lt;p&gt;五一假期结束，回到深圳的第一个周六，感觉嗓子有些干涩，像是上火表现。&lt;/p&gt;&#10;&lt;p&gt;这现象对我来说，是正常的：每次小长假结束，从重庆回到广东的头两天（14/15年最严重，可能会持续半个月），是必然上火的。&lt;/p&gt;&#10;&lt;p&gt;周日早上6点，起床、洗漱、去球场，打篮球到9点半。当天的队伍，是“勇士格林”配3个投手，战术是“格林发牌，投手交叉挡，谁有空间谁投”。这战术是成功的，连赢3轮（一共4支队伍）过后，实在跑不动的我，请求主动下场。&lt;/p&gt;&#10;&lt;p&gt;篮球打得很爽，也很累！&lt;/p&gt;&#10;&lt;p&gt;我在深圳有两把伞，一把落在重庆，一把放在公司。中午暴雨，我没有伞，淋雨跑到饭店，吃过饭，再淋雨跑回房间。&lt;/p&gt;&#10;&lt;p&gt;“男人嘛，淋点雨算什么？”&lt;/p&gt;&#10;&lt;p&gt;周一凌晨，上火症状变得严重些：吞口水嗓子会疼。睡着时能感受到嗓子疼。&lt;/p&gt;&#10;&lt;p&gt;上午新加一条症状：流鼻涕。（此时意识到不是上火，应该是感冒了。）&lt;/p&gt;&#10;&lt;p&gt;下午症状再加一条：脑子发热。&lt;/p&gt;&#10;&lt;p&gt;晚饭食欲不佳。&lt;/p&gt;&#10;&lt;p&gt;下班回到房间，穿两件衣服蜷缩在沙发，脑子是全不想动的。逼自己写《&lt;a href="http://mp.weixin.qq.com/s?__biz=MjM5ODczOTMzMA==&amp;amp;mid=2247485527&amp;amp;idx=1&amp;amp;sn=6f1c4680d1718902df1e8bf053461b61&amp;amp;chksm=a6c764ba91b0edac1ff57aec726c3acaba24518ade2b5774a472bcf9ca5bd3975fb1e4a792a6&amp;amp;scene=21#wechat_redirect"&gt;狂飙&lt;/a&gt;》读后感，内心戏很丰富：“经常看到‘xxx在病中依然坚持研究/创作/讲课’，或许是看的次数太多，只感觉病中坚持做事没什么大不了的。稀松平常的很啦！&lt;/p&gt;&#10;&lt;p&gt;“原来病中做事情是这样的感受啊。我只想躺着，我只想躺着，我只想躺着……&lt;/p&gt;&#10;&lt;p&gt;“不，我既然已经决定要在今天发布笔记，我就要把它写了。&lt;/p&gt;&#10;&lt;p&gt;“嘿嘿，这算不算是为自己负责的？这叫不欺骗自己！一个人，是不应该对自己撒谎的。&lt;/p&gt;&#10;&lt;p&gt;“搞定，帅啊！奖励你有机会去吃一份一个人时不舍得吃的想吃的略贵的鱼！&lt;/p&gt;&#10;&lt;p&gt;“把今晚先撑过去，明天不好转的话再去看医生。相信自己的身体。”&lt;/p&gt;&#10;&lt;p&gt;晚上9点20分洗漱。刷牙刺激到嗓子，狠狠咳嗽；走出浴室后的一分钟，感觉很冷，冷到浑身发抖。&lt;/p&gt;&#10;&lt;p&gt;躺在床上，脑子、上半身发热，四肢发凉。此时起念头：“本周的更新就记录自己的感冒症状了。这样下次感冒，就知道会经历些什么。”&lt;/p&gt;&#10;&lt;p&gt;晚上大概1小时醒一次。每次醒来，都以为已经睡了许久马上便是天亮。睡着时，一直不停地做梦，梦里有很多个我，每一个我都被困住，想动，动不了。&lt;/p&gt;&#10;&lt;p&gt;周二早上，嗓子咽口水很疼，不敢吞口水；头很痛，集中不了注意力。去到社区医院，戳鼻子测核酸、抽指尖血、验体温，医生的结论是：“低烧，普通流感。吃点药，多喝水，多休息。”&lt;/p&gt;&#10;&lt;p&gt;周二请病假一天，躺在床上，身上一直不停冒汗。正常饮食但食欲不佳。晚上睡觉两小时醒一次。&lt;/p&gt;&#10;&lt;p&gt;周三稍好些，脑子不再疼，嗓子症状达到顶峰：不止吞口水嗓子疼，从外面摸脖子，也是会疼的。晚上睡觉只醒一次。&lt;/p&gt;&#10;&lt;p&gt;周四再好些，嗓子感觉好点。在公司拿一份儿试剂测是否新冠，不是的。中午、晚上刚睡着那段时间，会咳嗽。&lt;/p&gt;&#10;&lt;p&gt;周五周六，嗓子好了很多，肿和疼变成痒，受到刺激（多走几步路、忽然的冷空气）时会咳嗽不停。&lt;/p&gt;&#10;&lt;p&gt;周日，感觉身体已经全恢复，嗓子，还有点痒痒的；打哈欠，能感受到牵扯感。&lt;/p&gt;&#10;&lt;p&gt;以上，是最近一周的感冒症状变化，最先有反应的是嗓子，最末恢复的，也是嗓子。&lt;/p&gt;&#10;&lt;p&gt;写完草稿，翻了翻日记：上次感冒是19年4月，游完泳后，凉水洗澡。&lt;/p&gt;&#10;&lt;p&gt;仅以此篇，提醒自己也对大家说：“剧烈运动后注意保暖。” &lt;small&gt;（&lt;a href="http://mp.weixin.qq.com/s?__biz=MjM5ODczOTMzMA==&amp;amp;mid=2247485532&amp;amp;idx=1&amp;amp;sn=9866392877a9ea0960c071ee8b3093be&amp;amp;chksm=a6c764b191b0eda7f2f10f41c88cb0ca5c30887ddb358d4ba8debcf4ac3d9f8c4997cfde4864" rel="noopener noreferrer"&gt;原文链接&lt;/a&gt;，更新于2023-05-14。）&lt;/small&gt;&lt;/p&gt;</description></item><item><title>看《狂飙》</title><link>https://biyego.com/docs/2023/05/2023-05-08-yue-du-shu-mu-kan-kuang-biao/</link><pubDate>Mon, 08 May 2023 00:00:00 +0000</pubDate><guid>https://biyego.com/docs/2023/05/2023-05-08-yue-du-shu-mu-kan-kuang-biao/</guid><description>&lt;p&gt;五一假期最后一天，从成都回到重庆。&lt;/p&gt;&#10;&lt;p&gt;做饭、打扫房间，电视打开，电视里放的剧是《狂飙》。&lt;/p&gt;&#10;&lt;p&gt;《狂飙》好看，收拾衣服的我是低效的。&lt;/p&gt;&#10;&lt;p&gt;第二天坐动车到深圳，在车上看书的状态并不很好，凡是需要动脑子的书都不想看。&lt;/p&gt;&#10;&lt;p&gt;于是将《狂飙》——电视剧正热映时加入书架——拿出来看。&lt;/p&gt;&#10;&lt;p&gt;《狂飙》全书25.2万字，看完花6小时20分钟。是一鼓作气看完的，在高铁、地铁上看，当晚窝在沙发看，第二天醒来躺在床上看，看完还不到上班的出发时间。&lt;/p&gt;&#10;&lt;p&gt;现在，距离看完不到3天，我打算再一鼓作气将它的读后感写完。&lt;/p&gt;&#10;&lt;p&gt;《狂飙》对我来说，是一种新的小说类别：社会小说（以前看的小说分类，只有武侠、仙侠、玄幻与言情）。&lt;/p&gt;&#10;&lt;p&gt;顾名思义，社会小说是与社会挂钩的。《狂飙》根据真实案件改编，书中所讲故事，发生于2000到2020年之间。&lt;/p&gt;&#10;&lt;p&gt;书中的故事主角是高启强。高启强是个卖鱼的，一开始狐假虎威得了些威望，其后阴差阳错越描越错，索性走上一条黑帮老大的路。（高启强的发家之路，与《教父》里面的老教父很是相像。）&lt;/p&gt;&#10;&lt;p&gt;书中另一位主角叫安欣。安欣是一位人民警察，是一位有血有肉正义永存心中的警察，与高启强亦敌亦友。书中能抵抗住诱惑的警察，只有安欣和他的徒弟。&lt;/p&gt;&#10;&lt;p&gt;看完小说，我在周六的晚上花3个小时看了电视剧，很随便地看，随便地选集，随便地调进度。再在周日晚花1小时看了些博主们剪辑的关键节点。&lt;/p&gt;&#10;&lt;p&gt;电视剧拍得真好，虽然只看3个小时，我是感觉到电视剧中细节比书中多许多的。比如书中对大嫂的死，只黄瑶提了一句：“陈书婷的死也是我干的，是我把她从盘山道撞下去的。”电视剧中，陈书婷的死，算在了蒋天头上，高启强找蒋天复仇的片段，很精彩。&lt;/p&gt;&#10;&lt;p&gt;另外，剧中角色的表演，很自然，很能让人心生共鸣。以电视剧中某一位不知名警察对高启兰的态度举例，那警察的表现，真就与现实中一模一样：&lt;/p&gt;&#10;&lt;p&gt;大概10年前，我曾经去过一趟警局请警察帮忙，某警察站在门口不让我进警局，只问我什么事，不待我话说完，他便开始赶我走：“但是……但是……但是……但是个什么？你回去！这里帮不了你，离家出走没什么大不了的。”&lt;/p&gt;&#10;&lt;p&gt;那是一种视你为麻烦只想快快打发的态度。（后面找另一位警察立了案。只是某警察的态度让我印象很是深刻。）&lt;/p&gt;&#10;&lt;p&gt;书中最末一段话，我是很认可的。&lt;/p&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;徐忠说道：“人民永远都需要我们。未来我们队伍的教育整顿和扫黑除恶都会常态化，这份工作可不轻松。罪恶需要掐根断芽，只有日日扫，年年扫，才能让群众生活在幸福安宁中。”&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;绝对的，这是一份不轻松工作！ &lt;small&gt;（&lt;a href="http://mp.weixin.qq.com/s?__biz=MjM5ODczOTMzMA==&amp;amp;mid=2247485527&amp;amp;idx=1&amp;amp;sn=6f1c4680d1718902df1e8bf053461b61&amp;amp;chksm=a6c764ba91b0edac1ff57aec726c3acaba24518ade2b5774a472bcf9ca5bd3975fb1e4a792a6" rel="noopener noreferrer"&gt;原文链接&lt;/a&gt;，更新于2023-05-08。）&lt;/small&gt;&lt;/p&gt;</description></item><item><title>月更 | 我对编码的理解</title><link>https://biyego.com/docs/2023/05/2023-05-07-ji-shu-bo-ke-yue-geng-wo-dui-bian-ma-de-li/</link><pubDate>Sun, 07 May 2023 00:00:00 +0000</pubDate><guid>https://biyego.com/docs/2023/05/2023-05-07-ji-shu-bo-ke-yue-geng-wo-dui-bian-ma-de-li/</guid><description>&lt;p&gt;在我之前的编程生涯中，总是对一些关键概念糊里糊涂不求甚解，比如进程、线程，比如堆、栈、编码。我对这很多概念的理解，都来自于各式样的博客。&lt;/p&gt;&#10;&lt;p&gt;最近几年看书多些，了解到最好的学习方式是将获得的知识以自己熟悉的模式进行整理（那许多的博客，是他人对自己知识的整理；当然，有一些文章，是将知识融会贯通后发明的“新招式”），于是逼着自己一个月整理一篇技术博客。&lt;/p&gt;&#10;&lt;p&gt;最近正阅读的技术书籍有Effective Python、《编码》，它们都提到编码、字符集、ASCII、Unicode、UTF-8、str、bytes……等相关关键字。&lt;/p&gt;&#10;&lt;p&gt;在我理解“编码”时，再一次地产生晦涩感，于是4月的技术整理，是“我对编码的理解”。（我承认五一假期一直在玩耍，这篇文章，该在上周就整理完毕的。）&lt;/p&gt;&#10;&lt;h3 id="一计算机展示文字的方式"&gt;一、计算机展示文字的方式&lt;a class="anchor" href="#%e4%b8%80%e8%ae%a1%e7%ae%97%e6%9c%ba%e5%b1%95%e7%a4%ba%e6%96%87%e5%ad%97%e7%9a%84%e6%96%b9%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;这个世界，是先有文字然后才有计算机的。所以计算机展示文字（以“嘟”字举例）的方式，简单点说，可以是：&lt;strong&gt;将一张“嘟”字的图片放到屏幕上展示。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;这句话可以拆成两个问题：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;如何拿到图片？&lt;/li&gt;&#10;&lt;li&gt;如何在屏幕上展示图片？&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;“如何在屏幕上展示图片”并非理解编码的重点，我只提供两个思考方向：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;一是在《编码》中看到的。视频适配板有一个字符生成器（character generator），在生产时就包含了所有的ASCII码字符的8x8像素图。每当需要展示字符（以“A”举例）时，先找到“A”的ASCII码&lt;code&gt;0x41&lt;/code&gt;，再通过&lt;code&gt;0x41&lt;/code&gt;找到存储在字符生成器中的像素图，再依据像素图将对应位置的像素点进行点亮。&lt;/li&gt;&#10;&lt;li&gt;二是来自OpenGL学习文档中的&lt;strong&gt;FreeType&lt;/strong&gt; ：使用矢量图像构造字形。大家感兴趣可以查看后面的引用链接。（该文档中“位图字体”与《编码》中思想一致，都是直接展示图片。）&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;本篇文章的重点是&lt;strong&gt;如何拿到图片？&lt;/strong&gt;&lt;/p&gt;&#10;&lt;h3 id="二字符集"&gt;二、字符集&lt;a class="anchor" href="#%e4%ba%8c%e5%ad%97%e7%ac%a6%e9%9b%86"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;如何拿到图片呢？&lt;/p&gt;&#10;&lt;p&gt;为回答这个问题，我们首先得知道“图片”是什么？&lt;/p&gt;&#10;&lt;p&gt;如上所说，图片是“文字”，是人类用来纪录特定事物、简化图像而成的书写符号（后文称“书写符号”为“字符”）。&lt;/p&gt;&#10;&lt;p&gt;全球有近200个国家，约6000种语言，人类主要使用的文字种类有：语素文字、音节文字、拼音文字等。其中以英语、汉语、印地语、西班牙语、法语、阿拉伯语、孟加拉语……等使用人数最多。&lt;/p&gt;&#10;&lt;p&gt;按照我从网上搜到的统计数字：&lt;strong&gt;全世界所有的字符数量是超过10万个的&lt;/strong&gt; 。&lt;/p&gt;&#10;&lt;p&gt;如果计算机需要将这10万多个字符都展示出来，则相应的需要10万多张图片？&lt;/p&gt;&#10;&lt;p&gt;这些图片如何管理，字符“A”是排在字符“嘟”前面还是后面？中文、英文、法语、俄语甚至日语需要放在一起么？我是中国人，看不懂也用不上俄语，需要去设置去关心俄语图片么？&lt;/p&gt;&#10;&lt;p&gt;计算机起源于美国，最初的科学家确实是只关注英文的，于是设定了ASCII（American Standard Code for Information Interchange）标准——26个字母、阿拉伯数字，再加上些标点符号，够了！&lt;/p&gt;&#10;&lt;p&gt;随着计算机向全球普及，ASCII收录的字符显然是不够用的，于是各个国家出台自己的标准——比如Shift-JIS（日本工业标准）、GB2312（中国标准简体中文字符集）等——来表示本国的文字。&lt;/p&gt;&#10;&lt;p&gt;同一事物的标准越多，则代表没有标准；多标准一起存在，乱码处处可见。&lt;/p&gt;&#10;&lt;p&gt;为了统一标准，1988年，几大著名计算机公司合作研究出一种用来替代ASCII码的编码系统，取名为&lt;strong&gt;Unicode（统一化字符编码标准）&lt;/strong&gt; ，它采用16位编码，每一个字符需要2个字节，可以表示65535个不同字符。全世界所有的人类语言，都使用同一个编码标准。（后来，Unicode再次扩容，分为17个面，即一共可以表示&lt;code&gt;17 * 65535 = 1114095&lt;/code&gt;个字符。一般情况下只需要0号平面就够了。）&lt;/p&gt;&#10;&lt;p&gt;到此处，则可以回答节首的问题：如何拿到图片呢？&lt;/p&gt;&#10;&lt;p&gt;从Unicode中拿！&lt;/p&gt;&#10;&lt;p&gt;Unicode是什么呢？&lt;/p&gt;&#10;&lt;p&gt;Unicode是字符集，是一种标准，是收录全世界字符图片并为之配上一个&lt;strong&gt;编号&lt;/strong&gt; 的标准。比如字符“A”的编号是&lt;code&gt;0x41&lt;/code&gt;，“嘟”的编号为&lt;code&gt;0x561F&lt;/code&gt;（本文的编号，都是16进制）。&lt;/p&gt;&#10;&lt;h3 id="二utf-8是什么"&gt;二、UTF-8是什么？&lt;a class="anchor" href="#%e4%ba%8cutf-8%e6%98%af%e4%bb%80%e4%b9%88"&gt;#&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;如上所说，现在我们知道了文字字符，是一个编号对应一张图片，这所有的对应关系合在一起成为了Unicode字符集。&lt;/p&gt;&#10;&lt;p&gt;在计算机在进行数据传输与存储时，为了节省空间，是只会传输和存储字符编号的。&lt;/p&gt;&#10;&lt;p&gt;如何存这个编号？是我们需要关注的重点。&lt;/p&gt;&#10;&lt;p&gt;对ASCII码来说，一个字符，一个字节就够了，挨着存就好：比如&lt;code&gt;Hello&lt;/code&gt;的存储形式为&lt;code&gt;48 65 6C 6F 2C&lt;/code&gt;。&lt;/p&gt;&#10;&lt;p&gt;当标准切换为Unicode时，一个字符的编号需要两个字节长度来存储，以&lt;code&gt;Hello&lt;/code&gt;加个&lt;code&gt; 嘟嘟&lt;/code&gt;举例，它的存储形式将变成&lt;code&gt;00 48 00 65 00 6C 00 6F 00 2C 00 20 56 1F 56 1F&lt;/code&gt;（空格字符的编号为&lt;code&gt;0x20&lt;/code&gt;）。&lt;/p&gt;&#10;&lt;p&gt;我们可以看到，中间是有很多空间被浪费的，很多的&lt;code&gt;00&lt;/code&gt;不需要被存下来。&lt;/p&gt;</description></item></channel></rss>