Demon.Lee 2022-06-29 07:13

太诱人了…😭😭😭

Demon.Lee 2022-06-27 21:53

将 Markdown 格式的文章 copy 到微信公众号里面,涉及到代码片段的地方,总是各种格式问题,快整疯了...

一定是我没有找到技巧,那个 best practice 到底是啥呢?

回头我再试试其他的转换工具。

Demon.Lee 2022-06-27 09:25

人生啊...

Demon.Lee 2022-06-25 09:33

为啥有了各类编辑器之后,还有 Markdown 的生存空间?因为对于普通文字工作者(比如写博客,微信公众号)来说,Markdown 比 Office 套件,Html 要简单的多,语法不多,上手快。当然,像画图这种稍微复杂的功能,一般人我估计也不用。

这本书没有看完,只是翻完了,重点看了第 1-2 章,后续几章快速翻阅了一下,Typora、VS Code、以及各类笔记 APP 都有所了解,平时主要使用有道云笔记,其他的如果有需要再来翻阅或搜索一下。

reveal.js 没听说过,涨姿势了。用 GitHub Pages 写博客,再绑定一个域名转发,太赞了。可惜呀,访问 GitHub 经常…另外,经常看到网上有 GitBook 电子书,这也是一个多人协作写书的不错方案。

最后,了解了 Markdown 的演进过程,现在基本上都在用 GFM (GitHub Flavored Markdown):https://github.github.com/gfm/

Demon.Lee 2022-06-22 12:59

一件事情,你必须把它抽象化,因为抽象化之后才可以简化,简化后才可以标准化,标准化的事情才能自动化,自动化的事情才能规模化。

具体(样例)--> 抽象(模型)--> 简单 --> 标准(流程)--> 自动(程序)--> 规模

Demon.Lee 2022-06-21 13:47

为什么 utf-8 编码不存在字节序问题?

因为字节序问题只在字符编码超过 8bit(即 1 byte)时才存在。

utf-16 一次性要编解码两个字节,所以需要考虑字节序问题,因为取值结果不同。

举例:0x1021

  • 用大端序存储是:0x10(低位)0x21(高位)
  • 用小端序存储是:0x21(低位)0x10(高位)

而 utf-8 编码是按单字节处理的,每次处理只操作一个字节,然后视情况决定是否取下一字节,所以不管是大端序,还是小端序,存储都是:0x10(低位)0x21(高位)。

UTF-8 编码方案已经成为 Unicode 字符编码方案的事实标准,各个平台、浏览器等默认均使用 UTF-8 编码方案对 Unicode 字符进行编、解码。Go 语言也不例外,采用了 UTF-8 编码方案存储 Unicode 字符.

unicode 符号范围 | utf-8 编码方式
00000000 ~ 0000007F | 0xxxxxxx 
00000080 ~ 000007FF | 110xxxxx 10xxxxxx 
00000800 ~ 0000FFFF | 1110xxxx 10xxxxxx 10xxxxxx 
00010000 ~ 0010FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

总结下来,针对 utf-8,编码规则其实只有两条:

  • 单字节规则: 对于单字节的符号,字节的第一位(最高位)设为 0,后面 7 位为这个符号的 unicode 码。
  • n字节规则: 对于 n 字节的符号(n>1),第一个字节的前 n 位都设为 1,第 n+1 位设为 0,后面字节的前两位一律设为 10。剩下的没有提及的二进制位,全部为这个符号的 unicode 码。
Demon.Lee 2022-06-19 17:15

在 go 语言中,一个文件夹下面只能有一个 package,否则无法编译通过,但如果我们在一个文件夹下面编写测试代码(如 xxx_test.go),package 名称为 xxx_test,代码是可以编译通过的。也就是说,go 官方为了单元测试开了小灶,让两个 package 可以在一个文件夹下共存,这足以说明单元测试的重要性。

论单元测试的重要性,应该将其看作比开发正式运行的业务代码还要重要。为什么会有 TDD 这种开发理念呢?测试驱动开发,意思是先写测试,再写开发。这样做的好处是用测试来验证架构设计,如果你写测试的时候发现不知道怎么测试某个接口或函数(或构建测试入参很麻烦),那么这个接口或函数设计就有问题。每当测试一个接口或函数时,我们都要构建上下文参数,当构建这些很麻烦时,就说明业务依赖的太多了,耦合严重。此时就可以反过来推导我们原先的设计是有问题的。

从另一个角度来说,如果我们把每个接口和函数的单元测试都通过了,由这些函数组成的业务服务自然也是可靠的。数学是可证明的,物理不可证明,只能证伪,而计算机跟自然科学一样,只能证伪,不能被证明。也就是说,如果一个业务由 10 个函数构成,如果这 10 个函数都测试没问题,那么这个业务从整体上来看也是比较可靠的,但我们没法证明它 100% 没问题。反过来,如果测试这个业务没问题,能保证其内部的 10 个函数靠谱吗?不能。所以,我们要先测试小接口小函数,测试通过后,再测试这个业务整体。

Demon.Lee 2022-06-19 10:59

程序员的财富课》· Chapter 14 | 投资实战之基金投资

1、基金是什么?

  • 基金是由基金公司建立,由指定基金经理管理,可以投资于股票、债券、黄金、石油、房地产等几乎所有投资标的的一组投资组合。
  • 由于基金的运作方式,从本质上来说,基金并不是一种具体的投资标的(固收类、股票类、实物类、新兴类),而是一种投资工具。
  • 有了基金这个投资工具,你只需要开一个账户,就可以实现全品类、全世界、全策略的投资。

2、基金分类

  • 按投资标的分:股票型、债券型、混合型(股票和债券)以及货币基金(短期货币市场)。
  • 按投资地点分:投资于美国、欧洲、日本的不同 QDII(Qualified Domestic Institutional Investor,合格的境内机构投资者) 基金。
  • 按投资特点分:指数型基金(按照指数比例被动配置)和主动型基金(根据基金经理的理念主动配置)。

3、投资基金就是选基金经理为你打工

  • 你和基金经理的关系类似于老板和职业经理人的关系,把专业的事情交给专业的人去打理。
  • 选择基金,先选投资赛道,再选一位优秀的基金经理帮你管钱,本质上和创业没啥区别。

4、投资基金的步骤

  • 基于资产配置组合或支点投资法:明确投资判断位于投资理财金字塔的哪个层级,是投资标的的大类级别,还是行业级别,还是更细分的赛道级别。
  • 选择一名优秀的基金经理:对于任何主动型基金,基金经理的历史业绩远比基金本身的历史表现重要。

5、基金经理是一只基金的灵魂

  • 新的基金尽量不要购买。
  • 更换了基金经理的基金等同于一只新基金。
  • 基金经理是为你服务的,不是为你背锅的。
Demon.Lee 2022-06-16 09:21

虽说职场竞争无处不在,但是人的格局和视野不能太窄太狭隘。

说到工作效率,反思一下自己:我的效率高吗?我们团队的产出高吗?

Demon.Lee 2022-06-14 07:28

感动又感慨,温暖又有些许忧伤,读书人也许就是这样获得了更多的同理心。

身处及时通讯时代的我们,写信可能是让我们静下来用心沟通的最好方式,退而求其次则是邮件。为什么呢?几千年来书信一直是沟通的主要方式,也许是基因遗传,也许是碎片化阅读时代的焦躁,读这些我们反而不会着急。

而更重要的是它们的份量。因为书信传递的慢,在漫长的等待中,我们一直在期盼,期盼信件早点来,期盼对方早点读到。而这期盼,会促使我们更用心写,更用心读。及时通讯工具的流行,让交流变得过于廉价,虽说方便,但廉价的东西反而让人不懂得珍惜。

我一直相信:把手写的信件装入信封,填了地址、贴上邮票,旷日费时投递的书信具有无可磨灭的魔力——对寄件人、收信者双方使然。