Open wangpin34 opened 3 years ago
Photo by Clay Banks on Unsplash
这本书放在书架很久了,一直没有阅读。至于为什么没有,写这篇文章的时候我又仔细梳理了一下。可能是源于多年前对嘻哈包袱铺产生的负面印象。而这个负面印象主要来源于那段时间观看欢乐喜剧人,对其“掌柜”高晓攀所表演的新式相声引发的心理不适。从那以后,我对所谓的新式相声敬而远之,也对“xxyy铺”这种名称没了好感,连带着,对《解忧杂货铺》也没有开卷的兴趣。
一个礼拜前,我突然想读东野圭吾的书,搜索”东野圭吾“,蓦然发现这本《解忧杂货铺》竟然躺在书架上。也不知道什么时候加入进来的。我对东野圭吾的作品印象奇好,所以尽管“xxyy铺”这样的名称不讨我喜欢,依然耐心阅读起来。这一读,就放不下。
在读完《解忧杂货铺》之后,我的微信读书当前记录是109本。
记录当然没有什么意义。如果一味的追求数量,那选择自然是页数少,文字简单,不太挑战认知的,这样的话,读的块,一天刷一本也不在话下。我有过这样的经历,很糟糕,读了很多,但是却感觉什么都没有读过。时间浪费了,却没有收获。
我这里所说的收获不一定是很干很干的知识,如果阅读一本书,可以发现一点点新的东西,新的世界,不一样的世界观价值观人生感,等等,那就是不错啦。
那,看完《解忧杂货铺》,我收获了什么呢?
我其实也说不清楚,很难用一句话概括。从杂货店老板雄志的故事里,我读到了坚持;从追求音乐的青年的故事里(对不起名字忘记了),我读到了梦想,还有梦想背后,亲情的力量;从初中生(又忘记名字了)在家庭遭遇变故时与家人的互动中的苦涩与甜蜜。
《解忧杂货铺》并不长,在我读过的书里面,顶多算是中篇的体量。但是内涵却丰富的让人感动。东野圭吾的小说一直都是这个样子吧。你明明很触动,但是却无法简单的概括感受,因为这感受太复杂太多面了。
有一段时间疯狂的刷各种历史穿越文,就是那种男主穿越然后虎躯一震八方来投的。我现在还记得看过一本叫做《星沉三国》,男主叫赵信,跟典韦,赵云结拜为兄弟。割据一方,曹孙刘结盟讨伐,结果被男主带着一票兄弟一顿暴打,曹孙刘灰飞烟灭。又看过一本叫做《东莱太史慈》,这本篇幅就很长,讲的很细。当然,看的最早的还是《寻秦记》,不过那时候不喜欢作者只敢给历史进程做微整形的笔法,觉得不够大胆。心里面还是倾向于那些动不动就改朝换代的男主,可能与年轻时不知天高地厚有很大的关系吧。
网文刷多了之后最大的后遗症就是看网文看不出新意来了,左看右看,好像都是昨天看完那本的微创新版本,然后随便翻到十几张以后,人物性格发展也差不多,故事走向也乏善可产,只能弃了。后来又开始看武侠,高中那段时间看过几本,学业限制,看的不够尽心,于是又重新看。看完了金庸和古龙的,开始看梁羽生,看不进去。我的性格特点是看不进去就看不进去吧,不勉强,这多半来自于先天遗传母亲的率性洒脱,后天接受父亲的不拘形式。接下来做了一个书单,把听过的外国文学名著录进去,然后一本一本读,读一本,停一下,换换口味。用来换口味的一般都是侦探小说,江户川乱步,松本清张,东野圭吾,这些名字开始进入我的事业。在这其中,东野圭吾的作品最适合我的胃口。
在开始阅读《解忧杂货铺》之前,我读完了《白夜行》,也是东野圭吾的作品。在第一章,我看到书友留下的人物关系图谱,这让我以为这本书出场人物可能超级多。但是整本下来,似乎并不多。看起来,记名字的能力好像提高了,是不是可以挑战一下以出场人物多而出名的《红楼梦》呢?
当然, 我现在还是不太想读《百年孤独》,何塞·阿尔卡蒂奥·布恩迪亚,何塞·阿尔卡蒂奥,阿尔卡蒂奥,祖孙三代的名字是这样的,我很难不认错。相较而言,日本人的名字好记多了。
工作需要,本地搭建了一个 blog,集成 disqus。但是问题来了,disqus 需要配置目标站点的 URL(你可以理解为网址),localhost 这样的本地测试地址是不支持的。怎么办呢?网络上倒是有人说可以做到,问题是他们都用了 php 的某个框架,而我没有用这个框架。也换成这个框架吗?算了。还有网友说要在 disqus 的控制台配置本地可用,问题是我找了一个多小时都没找到入口。
localhost
算了算了,老本行走起。
简单来说,就是在本地伪造出一个 domain,方法是 hosts + nginx。hosts 将请求 route 到 localhost,nginx 再将请求 route 到对应的本地服务。这里,我们要伪造的 domain 是 doc-portal.io,在 disqus 中的配置是 http://doc-portal.io。
hosts + nginx
hosts
route
nginx
doc-portal.io
http://doc-portal.io
配置如下:
## 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost # 上面的配置不要动,一般系统已经配好了 127.0.0.1 doc-portal.io
nginx.conf
http { server { listen 80; server_name doc-portal.io; location / { proxy_pass http://localhost:8000; } } }
如果你用代理访问网络,修改代理配置让他忽略 doc-portal.io。
最后,重启 nginx。
这一周又是 TypeScript 大方光彩的一周。
我觉得使用 TypeScript 还有一个隐形的好处是,代码的可读性高多了。类型系统可以很直观的表达业务的细节,即便一行注释也没有,也能很快的 warming up。
而且,即便 warming up 的效果一般,当我们不得不修改代码时,因为类型系统的快速反馈,很容易就顺着类型的思路来编排代码,减少了很多错误。
因为上面的缘故,现在写代码,我首先会做的事情就是看看要不要升级和丰富类型。然后通过类型来推导逻辑代码的升级。当然,这样的做法离不开对逻辑数据化的步骤,在2021/06/25: 减少 if else 的办法 对逻辑数据化做了简单介绍。逻辑数据化 + 提取类型 + 补充调度逻辑(无法数据化或者没有必要数据化的逻辑),核心逻辑尽量用约束比较强的类型+数据来定义,剩下都就只是调度逻辑。
拿我现在的项目举例,这是一个用来生成项目的 cli,接受用户参数,根据选项生成项目。
我的做法是先定义逻辑数据:
拿最近的一次业务更新举例,添加一个用户参数,改动如下:
如果只是更新 solution,那更简单:
这种简单,来源于前期对逻辑的深度结构,数据化,然后提取类型。这些做完以后,后期的微修改很简单。当然,如果变动过大,现有类型不敷使用,那就必须重构。但是这种可能性比较小,大部分时间,当类型确定好之后,总有办法围绕类型做延伸以适配新业务,不用总是重构。
封面图
Photo by Clay Banks on Unsplash
《解忧杂货铺》,以及我的读书历程(小记)
这本书放在书架很久了,一直没有阅读。至于为什么没有,写这篇文章的时候我又仔细梳理了一下。可能是源于多年前对嘻哈包袱铺产生的负面印象。而这个负面印象主要来源于那段时间观看欢乐喜剧人,对其“掌柜”高晓攀所表演的新式相声引发的心理不适。从那以后,我对所谓的新式相声敬而远之,也对“xxyy铺”这种名称没了好感,连带着,对《解忧杂货铺》也没有开卷的兴趣。
一个礼拜前,我突然想读东野圭吾的书,搜索”东野圭吾“,蓦然发现这本《解忧杂货铺》竟然躺在书架上。也不知道什么时候加入进来的。我对东野圭吾的作品印象奇好,所以尽管“xxyy铺”这样的名称不讨我喜欢,依然耐心阅读起来。这一读,就放不下。
在读完《解忧杂货铺》之后,我的微信读书当前记录是109本。
记录当然没有什么意义。如果一味的追求数量,那选择自然是页数少,文字简单,不太挑战认知的,这样的话,读的块,一天刷一本也不在话下。我有过这样的经历,很糟糕,读了很多,但是却感觉什么都没有读过。时间浪费了,却没有收获。
我这里所说的收获不一定是很干很干的知识,如果阅读一本书,可以发现一点点新的东西,新的世界,不一样的世界观价值观人生感,等等,那就是不错啦。
那,看完《解忧杂货铺》,我收获了什么呢?
我其实也说不清楚,很难用一句话概括。从杂货店老板雄志的故事里,我读到了坚持;从追求音乐的青年的故事里(对不起名字忘记了),我读到了梦想,还有梦想背后,亲情的力量;从初中生(又忘记名字了)在家庭遭遇变故时与家人的互动中的苦涩与甜蜜。
《解忧杂货铺》并不长,在我读过的书里面,顶多算是中篇的体量。但是内涵却丰富的让人感动。东野圭吾的小说一直都是这个样子吧。你明明很触动,但是却无法简单的概括感受,因为这感受太复杂太多面了。
有一段时间疯狂的刷各种历史穿越文,就是那种男主穿越然后虎躯一震八方来投的。我现在还记得看过一本叫做《星沉三国》,男主叫赵信,跟典韦,赵云结拜为兄弟。割据一方,曹孙刘结盟讨伐,结果被男主带着一票兄弟一顿暴打,曹孙刘灰飞烟灭。又看过一本叫做《东莱太史慈》,这本篇幅就很长,讲的很细。当然,看的最早的还是《寻秦记》,不过那时候不喜欢作者只敢给历史进程做微整形的笔法,觉得不够大胆。心里面还是倾向于那些动不动就改朝换代的男主,可能与年轻时不知天高地厚有很大的关系吧。
网文刷多了之后最大的后遗症就是看网文看不出新意来了,左看右看,好像都是昨天看完那本的微创新版本,然后随便翻到十几张以后,人物性格发展也差不多,故事走向也乏善可产,只能弃了。后来又开始看武侠,高中那段时间看过几本,学业限制,看的不够尽心,于是又重新看。看完了金庸和古龙的,开始看梁羽生,看不进去。我的性格特点是看不进去就看不进去吧,不勉强,这多半来自于先天遗传母亲的率性洒脱,后天接受父亲的不拘形式。接下来做了一个书单,把听过的外国文学名著录进去,然后一本一本读,读一本,停一下,换换口味。用来换口味的一般都是侦探小说,江户川乱步,松本清张,东野圭吾,这些名字开始进入我的事业。在这其中,东野圭吾的作品最适合我的胃口。
在开始阅读《解忧杂货铺》之前,我读完了《白夜行》,也是东野圭吾的作品。在第一章,我看到书友留下的人物关系图谱,这让我以为这本书出场人物可能超级多。但是整本下来,似乎并不多。看起来,记名字的能力好像提高了,是不是可以挑战一下以出场人物多而出名的《红楼梦》呢?
当然, 我现在还是不太想读《百年孤独》,何塞·阿尔卡蒂奥·布恩迪亚,何塞·阿尔卡蒂奥,阿尔卡蒂奥,祖孙三代的名字是这样的,我很难不认错。相较而言,日本人的名字好记多了。
如何在本地测试 disqus
工作需要,本地搭建了一个 blog,集成 disqus。但是问题来了,disqus 需要配置目标站点的 URL(你可以理解为网址),
localhost
这样的本地测试地址是不支持的。怎么办呢?网络上倒是有人说可以做到,问题是他们都用了 php 的某个框架,而我没有用这个框架。也换成这个框架吗?算了。还有网友说要在 disqus 的控制台配置本地可用,问题是我找了一个多小时都没找到入口。算了算了,老本行走起。
简单来说,就是在本地伪造出一个 domain,方法是
hosts + nginx
。hosts
将请求route
到localhost
,nginx
再将请求 route 到对应的本地服务。这里,我们要伪造的 domain 是doc-portal.io
,在 disqus 中的配置是http://doc-portal.io
。配置如下:
nginx.conf
如果你用代理访问网络,修改代理配置让他忽略
doc-portal.io
。最后,重启 nginx。
TypeScript
这一周又是 TypeScript 大方光彩的一周。
我觉得使用 TypeScript 还有一个隐形的好处是,代码的可读性高多了。类型系统可以很直观的表达业务的细节,即便一行注释也没有,也能很快的 warming up。
而且,即便 warming up 的效果一般,当我们不得不修改代码时,因为类型系统的快速反馈,很容易就顺着类型的思路来编排代码,减少了很多错误。
因为上面的缘故,现在写代码,我首先会做的事情就是看看要不要升级和丰富类型。然后通过类型来推导逻辑代码的升级。当然,这样的做法离不开对逻辑数据化的步骤,在2021/06/25: 减少 if else 的办法 对逻辑数据化做了简单介绍。逻辑数据化 + 提取类型 + 补充调度逻辑(无法数据化或者没有必要数据化的逻辑),核心逻辑尽量用约束比较强的类型+数据来定义,剩下都就只是调度逻辑。
拿我现在的项目举例,这是一个用来生成项目的 cli,接受用户参数,根据选项生成项目。
我的做法是先定义逻辑数据:
拿最近的一次业务更新举例,添加一个用户参数,改动如下:
如果只是更新 solution,那更简单:
这种简单,来源于前期对逻辑的深度结构,数据化,然后提取类型。这些做完以后,后期的微修改很简单。当然,如果变动过大,现有类型不敷使用,那就必须重构。但是这种可能性比较小,大部分时间,当类型确定好之后,总有办法围绕类型做延伸以适配新业务,不用总是重构。