实现一个满足 A+ 标准的 Promise

本来我对这种八股是不屑一顾的,什么手写 Promise 手写 DeepEqual 之类的我都不屑一顾。

直到我真的笔试遇到了这种题。

因为没有实现过,笔试的时候也没有足够的时间捋清楚逻辑,所以基本上测试用例只过了几个最标准的,复杂一点的一个都没过。本来觉得这种东西没什么好研究的,后来发现这个东西有专门的测试集,这就有趣起来了,毕竟我还是挺喜欢那种测试用例全通过的感觉的。

幸好这个问题已经有不少人研究过了,有很多现成的源码可以参考。这篇主要记录一下我看代码时的困惑和难点记录。

继续阅读“实现一个满足 A+ 标准的 Promise”

在 Windows 系统里写源代码带来的一堆 B 乱码问题解析

如果你刚好学习过 C/C++ 编程,又刚好用了 Windows 系统的电脑,又刚好使用了 Visual Studio 进行代码的编写,又刚好在里面写了中文字符串或者引用了中文文件路径,又刚好有在 windows 的命令行里输出过中文字符串内容,那么你很有可能遇到过乱码问题。

曾经,作为一个技术不深的大学生,没有能力也没有想法去探讨这些问题的根本原因,如今我工作了,虽然技术还是不深,但是依然有工作逼着我去探讨这些问题的根本原因,不然测试就要给我挂一个大大的 bug 单了,没办法,只能够进行探索了。

这次遇到的问题是:同样是 utf-8 编码的源代码文件,在 Visual Studio 里面,字符串字面量在内存里是 GBK 编码,而在 CLion 里是 utf-8 编码。而且 CLion 中的 utf-8 编码还可能有损失。

继续阅读“在 Windows 系统里写源代码带来的一堆 B 乱码问题解析”