单元测试:从 Jest 到 Karma+Mocha+Chai

我所参与过的 Web 项目大部分都使用 React 框架。Jest 是我们曾经最主要使用的单元测试 (Unit Test) 框架。Jest 配置足够简单,功能也足够丰富。但是随着前端开发逐渐进入深水区,Jest 的短板开始逐渐显现。我在经过探索和尝试后,迁移到了 Karma+Mocha+Chai 的解决方案。在此分享这两种技术方案的区别和取舍,希望对遇到同样问题的同学有所帮助。

继续阅读 →

前端必学&勿学清单(2022更新)

前端技术发展很快,有些技术如常青树,有些则已日渐式微。不断涌现的新技术,有的是真创新,有的是换汤不换药。本文希望帮助大家避免在没有学习价值的技术上浪费事件。

需要注意的是,仅凭个人经历去判断一项技术是不是不流行,是很片面的。很多人在整个职业生涯中都没有遇到过 Angular 项目,但这并不代表 Angular 没有人用。有人觉得 Vue 小众,是玩具,但是其生态仍然在蓬勃发展。本文尽量从技术架构和统计数据来分析,而非个人经验。

更新于 2022 年二月。

继续阅读 →

编程英语基础

编程是一门语言艺术。要写出赏心悦目的代码,最重要的便是恰当的命名变量,函数,类和包等。每种编程语言都自己独特的语法和代码风格。比如 C 语言常用 snake_case 命名,而 Java 语言用 camelCase 命名。这篇文章将不去探讨具体语言的特有规范,而是去介绍通用的命名的英语语法,比如变量类型与词性的关系,词组和短语的顺序,省略的用法,近义词的辨析等。示例以 Java/TypeScript 为主。正确示例标记为✔️,错误示例标记为❌。

本文有待完善,欢迎读者意见。

继续阅读 →

GODZILLA

哥斯拉系列的漫画,动画,电影已经非常多了。最开始喜欢哥斯拉只是单纯觉得撕裂夜空的原子吐息非常酷。最近几年重启的哥斯拉电影,在这些粉丝关注的点上还原得非常成功,但实质上并没有什么思考深度。庵野秀明的新哥斯拉,虽然被赋予了很多意义,但是呈现效果拉跨,挂羊头卖狗肉。让我印象最深刻的,反而是一部非常规的作品,虚渊玄和Netflix合作的哥斯拉动画电影三部曲:《哥斯拉:怪兽行星》,《哥斯拉:决战机械都市》,《哥斯拉:噬星者》。

继续阅读 →

夜归人

不论几时下班,总有同路人拖着同样疲惫的壳,歪歪扭扭地走着夜路。

结伴的人欢快地聊着天,直到在地铁口熟练地挥别。穿正装的人顿了一顿,点上一支烟,吸了两口便丢了,匆匆地走了。路边卖唱的母女在保安的注视下离开,笨重的音箱是无法抛弃的负担。大哥的断腿兀地横在路上,念着哦弥陀佛。卖红薯的异乡人,受夜色的庇护而未被驱赶。电瓶车像家乡的燕子一样灵巧,极限地滑过身旁,又倏然消失在还巢的鸟群里。

街道的灯光,污染了夜的纯净。

九点钟,路上游荡的身影依旧不见少。打工人三五成群,倚靠在电瓶车上闲谈打趣。寡言少语的人,吃完一盘炒粉,还坐在那里等着。超市店员叫卖着品相欠佳的柑桔,似在等换班。大姐们的广告位争夺战仍在继续。每次贴完租房广告,都会盯一会儿,免得被人覆盖。那种靠眼神就能判断对方贴的是哪张的炉火纯青,是我辈不曾到达的境界。

在附近住了一月有余,却记不起一个熟面孔。大概我也是不会有人注意到的那个。昏暗的走廊,布满锈迹和灰尘的铁门,狭小的居室,无暇拆开的行李。不去想太多的话,在陌生的城市生活也非难事。不去喜欢,不去讨厌,不去刻意了解它的一切。

感谢这个暂时的容身之所,让我还有力气幻想远方。

二十九岁生日记

这天只是普通地上着班,做着与平时无异的工作。想订个生日蛋糕,但并不喜欢吃。于是什么都没有准备。倒是老家三代人买了个生日蛋糕,远程庆祝了一番。外甥女这天学会了走路。

最近并不顺利呢,辗转反侧。似有什么带走了夏天温度,吸走了空气中稀薄的氧气。世界繁华热闹的背景音渐渐隐去,每一丝低声啜泣都汹涌而来。那些非常不好的事情,找不到人娓娓道来。如果说重来一次可以做到更好,便有责怪自己的理由。却好像每一步都已经用尽全力,怕得要死的时候,也还是埋头前进。

南方的热终于过去了,少了楼下摊档的吵闹,狭小的房间似乎也宽敞了一些。不甚和睦的邻居,也放下了争执。简单煮了一碗面,从此这里算是一个正式的落脚点了。

老人形容新人,总会用一个词:心气。不安于现状,心心念念着摇摇欲坠的理想乡。高谈阔论,热衷表达,沉浸于自我。这些略带贬义的描述,对我这样的人恰如其分。

要勇敢呀。

你好,深圳

2020 年十一月,从上海来到深圳,然而事件并没有想象中顺利。

继续阅读 →

再见,芬兰

虽然要走了,还是非常喜欢这里。如果你希望融入自然,平静地生活,芬兰恰好是这样的地方。可以做一份不太辛苦的工作,买一个被树林和草地环绕的旧房子,留些许空间满足爱好。不论是养孩子还是宠物,都不会特别困难。

然而,人到底不是独行的猛兽。

越是年长,越发觉定义一个人的原来是这一路以来放弃的事物:理想的工作,喜欢的环境,无限的可能性。而某些瞬间,在这漫长岁月里成为永恒,驱动人做每个艰难的决定。即使不得不活得像一团风滚草,也要努力地活下去。

在芬兰的最后一个季节,满是金黄的落叶和夕阳的余晖。闲暇时散步走过以前住的地方,曾经熟悉的公交站台,恍惚看到熟悉的影子,莫名地很想哭。每个角落似乎都还留有散落的回忆,迎面袭来。人有弱小的一面,害怕离开熟悉的环境,事情就不会那样顺利。过往的经历,让人心累,每一步都异常沉重。很多人被困在了原地,像是中了黑森林的巫术。

所以人生大概还是一种执念,而不是什么理性的东西。

快三十岁了,更多地谈论务实的话题:在哪里发展,找怎样的伴侣,攒多少钱,下一代的教育……会害怕老无所依,孤独而终。日子这样重复着,越来越难寻一个明确的意义。

夜半,灯还亮,未洗的碗筷还堆在水槽里。

六年间积累了许多物件,要扔掉实在很舍不得。在二手店闲逛时买的烛台,在露天市场淘的小茶杯,记不清季节和时间,却还能感觉到那时的悠闲和幸福。房子渐渐清空,过去生活的痕迹,都慢慢消失了。那些浸泡在夏日阳光里的笑颜,却似乎永远不会腐坏。

从芬兰到深圳,生活从 Easy 模式一下子跳到了 Nightmare 模式。思虑未来,期待和恐惧都无限大。不适应和抗拒之后,仍然要继续前进。

赫尔辛基搬家公司

我常用的一家是 DL Transport ,是一家越南人开的小型搬家公司。小车 30 欧/小时,人力 15 欧/小时。如果你能完全自己搬东西,就不需要付人力费。价格公道,常年营业。

芬兰的二手买卖

买东西

卖东西

有搬家或者回国打算的同学,要尽早计划出掉自己的大件家具和带不走的东西。如果搬家日期已定,那么提前一两个月就要开始一点点出东西了。

如果是学生房,可以问 AYY 或 HOAS 下个房客的联系方式,有些大件家具和不好带走的东西可以卖给下个房客,省时省力。

其次,可以在 Telegram 的 Otaniemi 二手群出东西。里面新生很多,对家具和厨具餐具的需求很大。都在校区内的话,搬东西也比较方便。相对于 Facebook 上的二手小组,校内群的人口素质普遍高很多。Aalto 也有一个二手网站,但是自从有了二手群,网站的流量就少多了。

如果有些东西校内群实在出不出去了,可以用 Facebook Marketplace 出掉。Facebook Marketplace 好像只有注册一年以上的活跃用户才能使用。Facebook 上面的人就素质很一般了,有些上来就给你砍价砍掉 90%,可以直接拉黑。

至于 Tori.fi 虽然芬兰人很推荐,但我自己并没有在上面卖出去过东西。Tori 的用户大多只搜芬兰语,而且很多不在赫尔辛基大区,要邮寄的话必然有风险。不管是网站还是 APP 都是超级难用。

在网上卖二手要警惕一些陷阱。最常见的陷阱是用 PayPal 或者银行转账付款。PayPal 的付款是可以撤回的,而且很容易就审核通过了,到时候钱物两空。跨银行转账通常有几天的延迟,你可能永远收不到钱。所以最保险的方式是现金或者 MobilePay。