腾讯3年可以申请更换设备,虽然大家都说Mac好,但是我还是申请更换了一台windows,因为已经有一台iMac,所以打算留一台windows以备不时之需。以前用windows最大的问题是开发环境不好搭,在morningstar的时候,自己装了个vmware跑Ubuntu,但是性能很不爽。而如今windows直接上WSL,在系统底层跑linux子系统,性能和直接用windows没差,简直飞起。而且由于linux子系统和windows主系统共享文件系统和网络,在linux里面跑的服务,直接可以在windows上访问,减少了各种配置工作。而且说实话,windows上的软件,虽然界面确实没有mac好看,但是从功能完整性讲,绝对比mac好很多,在加上winget,总之,现在我已经有点享受windows上开发的乐趣了。
-
WSL简直太棒了, 有时候在win上装node的package必须要linux环境,现在直接用vscode一键wsl搞定, 配合自家的vscode用起来简直不要太爽了,完全就是为开发者准备的.#1029 maoa mao 2021-04-17 02:29
JS 糟粕之全局变量和引用
JS的全局变量是排第一的糟粕。比如:
const a = 1
function get() {
retun a
}
函数内可以直接使用一个函数外的变量,而且可以层层往上引用。如果这个变量还是对象的话,还可以修改对象。例如:
const o = { count: 0 }
function set(count) {
o.count = count
}
这种写法,由于我们写JS写的久了,觉得天经地义,而且还是个与其他语言不同的特性(优点),殊不知,这种东西,害人害己。
全局变量的设计,会使得内存引用及其复杂,且导致内存溢出。虽然js是自动回收垃圾,但是实际上很多情况下开发者需要自己手动释放,而且由于全局变量这个特性,根本释放不了。
如果要改进这门语言,我觉得可以学习rust,去掉全局变量这种东西。
const a = 1
function get(&a) {
return a
}
const b = get(a) // b === a === 1
let b = a // a === null, b === 1
// ---------------
mut o = { count: 1 }
function set(mut &o, int count) {
o.count = count
}
function clone(o) {
return o
}
const n = clone(o)
虽然这使得这门语言麻烦很多,理解起来更复杂,但是可以避免很多问题。