esModule + NodeJS + TypeScript 的工程配置

2022-09-22Frontend
nodejs
nodejs

JavaScript的模块化方案经历了长时间的发展,最终于2015年在ES6实现了语言层面的标准化,即esModule(以下简称esm), 现在JS社区开始拥抱esm,很多npm包仅采用esm发布。

而NodeJS一直依赖采用CommonJS的模块化方案,在最近发布的版本中也开始支持ems, 由于巨大的历史包袱,NodeJS并没有抛弃CommonJS,所以在NodeJS中实际支持两种模块化方式,esm和CommonJS.

此外,现在很多前端工程使用TypeScript开发,而TS的模块解析方式也需要进行一些配置,在这3者结合的过程中有很多坑,本文介绍将三者完美结合的最佳实践。

查看全文...

《乌合之众:大众心理研究》热门标注

2021-07-22Life
The Crowd
The Crowd

闻有吏虽乱而有独善之民,不闻有乱民而有独治之吏 —《韩非子·外储说》

《乌合之众:大众心理研究》是一本研究大众心理学的著作。是法国社会心理学家古斯塔夫·勒庞创作的社会心理学著作,首次出版于1895年。勒庞指出:个人一旦融入群体,他们的个性将会被湮灭,群体的思想便会占据统治地位,而与此同时群体的行为也会变现为排斥异议、极端化、情绪化低智商化等特点,进而对社会产生破坏性的影响。

读了此书,你会明白过去、现在、以及将来全世界发生的各种群体事件背后的直接原因。

本文摘抄了《乌合之众:大众心理研究》在Kindle电子书中的热门标注:

查看全文...

理解Rust语言的所有权以及借用、引用、切片。

2021-01-23Backend
Rust
Rust

Rust由Mozilla基金会开发,没有虚拟机和垃圾回收,却又提供了内存安全,有着媲美C/C++的性能,又同时支持命令式函数式编程以及泛型等便利。优雅(上层抽象)和高性能(底层控制)往往是鱼和熊掌不可兼得,但Rust试图挑战这一矛盾。允许你做带垃圾回收的语言(例如Java)做不到的事,比如控制底层。而同时又避免了比如空指针,野指针在内的(例如C/C++)的问题。它被用于开发浏览器引擎(Servo),操作系统(Redox OS),并且特别适合开发WebAssembly和嵌入式,以及高性能的Web服务。

本文介绍Rust语言中和其它语言相比一个非常重要的特性所有权(Ownership)以及其相关的借用(Borrowing)引用(References)切片(Slice)的理解和使用。这个特性保证了Rust不需要垃圾回收以及强大的内存安全,同时还能在多线程编程中带来好处。

查看全文...