💼 从工作中学到的 对于客户端开发来说,crash是性能/稳定性中最重要的指标之一,因为crash意味着功能不可用。

    最近工作上引入了两个功能crash,被折腾了一番,有一个感想:“对任何改动的上线一定要测试”。这里“测试”根据不同情况有不同程度测试,其中最基本的测试是确认功能是否能跑起来,而不仅仅是编译通过即可。

    可能你会说,提代码肯定需要测试啊。但是有些场景,可能就会偷懒,比如加一行日志,或者简单增加一个指针判空,或者简单调整了两行代码的位置,就因为“匆忙”,并且过度自信,就没有测试,甚至基本测试都没有!

    上述的场景可能是本地的分支开发别的功能,突然反馈过来的一个bugfix,为了本地不切分支,而选择在网页端简单提交bugfix的代码

    这些看上去“人畜无害”的代码,其实往往暗藏“玄机”。比如日志打印调用了一个指针的函数,却没有检查指针是否为空,误以为指针一定不为空,尤其是在编写宏的情况,更容易忽视。

    除了这些改动极小的代码,一些不是特别大的改动也可能引入意想不到的问题。举个例子,移动了某一个observer 事件发送的位置,在模块owner看来可能没什么关系,但可能外部利用了这个observer,并且依赖了某种时序,一旦某两行代码调整了顺序就可能导致异常。

    这里有一个调整两行代码顺序导致问题的例子:

    ....
    std::string str = "1234";
    SomeStrToInt(str);
    SomeClassConstruct class (std::move(str));

    其中第3行和第4行的位置调整就会导致异常,而这个问题非常难以发现,因为最开始的这段代码可能比较久远,甚至不是自己写的,因此就会忽视后面对string move的调用。


    有经验的程序员是否可以避免上述问题,足够细心的条件下一些简单的错误可以被避免,比如上面的std::move 顺序问题。但是对于更复杂的场景忽略掉也是可以被理解的,更不用说,粗心是一种很容易犯的问题

    因此黑盒测试的必要性是无法被白盒测试替代,白盒测试100%覆盖是一个理想而不及的目标,受限于代码可测性、ut质量等等因素。意味着一定有不少场景是UT无法覆盖的部分,对于大型项目尤其如此。(尽管如此,UT重要性仍然是不言而喻)


    我个人的一点想法是对任何提交MR做以下两点检查:

    • 做了哪些测试来减少问题发生 (至少要测试功能是否可以跑起来,而不是过度自信)
    • 是否对该处改动的所有外部依赖都清楚,如果不清楚则优先考虑使用灰度验证的方式上线(比如修改某个对外的接口返回值,不要过度自信!)

    上面的两点check不能避免所有的问题,但可以拦截大部分很低级的问题(事实很问题都来自低级的错误),除此之外,成熟的工程会一般会有完备的稳定性流程来拦截更复杂的问题。

    📝 每日记录 今天我碰到一个老太太,她说:“想吃啥就买啥,买回来吃得下就是最幸福的事!”我突然意识到,经历了身体不适后,能畅快呼吸才是最大的幸福。

    😷 生病的事 去年4月开始胸闷,原以为夏天会自愈,却愈发严重,走了不下8、9次医院,从呼吸科到心脏科,再到肠胃科。一开始呼吸不顺畅,到10月更加频繁,夜间难受,早晨仍不适。躺床上唯一想的是早点康复,畅快呼吸成唯一奢望!

    11月,胸闷变胃不适,反酸+胸闷。除肠胃镜外,做了胸部/心脏CT。吃药治疗,一度好转,但又反弹。

    12月,胸闷缓解,开始嗳气,反酸减轻。嗳气频繁,一天嗝百余次,难受。4月底超声显示胃正常,但嗳气仍频繁。

    3月停药,调整作息,早睡早起,控制饮食。5月中嗳气减轻,胸闷改善,生活正常。终于看到曙光。

    如期盼的,畅快呼吸、健康无疾,就已幸福。只要有美食且能享用,便最快乐。生病时渴望康复,康复后又追求更多。这次病或许长而深刻,让我知足。

    曾焦虑未来,名利如何,欲望无尽!若生命倒计时,珍惜生活比名利更重。听《好了歌·解》,感慨良多。或许,正视最坏结果,就是“向死而生”。知足与懒惰、进取并非冲突。

    正叹他人命不长
    哪知自己归来丧

    经过CiciAI 润色文本

    📝 每日记录 【忙碌的端午】

    可能是最近一段时间最忙的一个节日了。端午节,我姐婚礼,我当伴郎🤵。还有另外三个伴郎都是姐夫的同学,我和他们完全不熟的!不过幸好的是他们人都超级好,其中还借给我皮鞋穿。婚礼是一件非常麻烦、累的事情。因为男方/女方亲戚都是来北京,所以得安排住宿。更不用说婚礼现场的各种安排。

    我之前始终觉得婚礼仪式是一件麻烦且没有太大意义的事情,再美的仪式也无妨遮盖生活本来的面目,柴米油盐加醋茶这些琐碎的烦恼存在仍然是存在。直到作为伴郎站在婚礼一侧参加婚礼流程的时候。人的身份角色变化不是在一瞬间变化的,但确确实实是存在某些关键的节点,也许仪式本身并不是掩饰什么,而是强化并赋予了这些转折点额外更深入的意义。所以仪式重不重要呢,没那么重要,不会因为它就解决了生活的难题,或者让彼此更爱对方了,没有仪式也许没什么问题,只是它额外多了一份体验、一份感动仅此而已。

    我姐的婚礼属于非传统、新式那种,没有接亲过门等等那些游戏等麻烦的事情,是在草坪婚礼,其中有一个主持人支持。主持人非常有磁性的声音欢迎新娘入场,新娘就从草坪很远的地方的石阶上走过,bgm 是周深的Rubia,当缓缓柔和的人声“Life blooms like a flower” 流淌出来的时候,新娘提着婚纱慢慢走来,女方父母在草坪的中央接过拥抱而泣,那一刻真的非常感动,也是那就是仪式的力量吧(音响真的很不错)。

    另一个印象深刻的画面是,花童送戒指的场景。小孩穿着粉色的小西服,带着草帽,拿着戒指从草坪一头呼哧的跑过来,因为太阳的缘故,脸也被晒的红扑扑的。接着也送上了童稚的祝福,那一瞬间真的感受到了神圣、纯洁的感觉。可能也是有亲人的缘故,所以情绪也更加受到感染一些。

    整体上婚礼流程还是比较简单,但是我觉得也已经足以了。

    正是因为婚礼的缘故,老家亲戚的孩子(已经工作)第一次来北京,因此我又被安排陪玩(已经是第二次陪玩)。说实话北京好玩的地方也是有一些的。虽然一开始安排是去长城,但是在我坚持的拒绝下,最后没有去(太热的天,而且爬长城着实没有什么意思)。我安排的上午去动物园和海洋馆,下午去中国电影博物馆+看了一场电影。

    🎬 观影 看的电影是《朱同在三年级丢失了超能力》,看之前最先让我想到类似的儿童片是《有人赞美聪慧,有人则不》,但是这部剧更多和儿童教育有关,与《看上去很美》有点类似的味道。因为上午行程太满,以至于开场了40分钟才进场(一共1小时40分钟),但是整体上还是挺有意思的成人向的儿童片的。小时候的我们大概都会认为自己有某种超能力吧,认为自己是特别的。但是什么时候我们的超能力消失了呢。外界一遍又一遍的给予我们挫折,一遍遍的反馈,让我们对世界的好奇心、敏锐独特的观察力、稀奇古怪的想法都消失了。因为对待成人的评价标准和小孩子不再一样了,是一个无奈的事实。

    看完电影博物馆里有20个展区,分别是中国电影从1905年开始的历史,从新中国之前,到改革开放,再到香港澳门台湾,最后还有关于电影制作过程的技术比如剪辑、美术、特效等等。这些如果慢慢走、慢慢看,至少需要一下午时间。时间仓促有不少都是匆匆略过了。

    👀 产品观察 公司工作的电脑终于换成了M3 Pro 笔记本(前一个电脑的购入时间符合标准了,是2019年的intel芯片)。14寸和16寸我选择了14寸,发现致命的问题是菜单栏右侧的图标显示的区域很小,以至于多开几个软件,软件的图标就显示不下了。

    如此严重的问题,Apple居然至今没有提供新的交互方案,实在匪夷所思。有一些很小的工具类型软件打开后是不现在Dock栏上的,Apple 难道不知道吗。打开一个软件后,发现没有任何反应,打开任务管理器发现进程已经启动了,百思不得其解。真的体验太糟糕了!

    苹果的笔记本真的一代比一代厚重,这部黑色外观拿到手后颇有当年2015年购入的戴尔笔记本一般笨重,比M1 Pro 笔记本厚的太多了!

    另:磁吸充电接口让本不富裕的桌面插座空间有需要多一个接口了。

    💼 从工作中学到的 下班后如非必要,最好是不要打开与工作相关的任何网站、软件。只是简单的看看消息也会很快的让人感觉到“班味”。这对于放松心情是非常有害的,同时也不利于第二天更有精神的工作,长此以往会导致越来越强的厌倦。

    字节中有「字节圈」,类似内网的“微博”程序。之前很长一段时间会经常的刷,虽然这些内容都是素不相识,但也是打发时间了,不仅如此我还会频繁的去看飞书上一些免打扰群的消息,即使那些消息和我并没什么关系。后来我发现这种状态是非常有害的。即,我已经下班了,但是我的状态并没有完全下班,是祈求用忙碌、麻木的工作错觉来填补自己无事可做而已。这就是为什么上述说的如非必要,一定不要查看任何与工作相关的任何信息。

    平均来说,越少的工作时间确实是可以有更好的效率的。尝试了一段时间强制自己更早下班,会发现为了要更早下班,自己会强迫自己提高效率完成今天的事情。就好似是一种dealline。(当然特殊情况除外,但要尽量的少)。

    所以,如果一个公司强制员工更早的下班,同时以工作成果为绩效导向,我觉得是会让员工自发的寻找效率更高的方式的。

    👀 产品观察 使用ARC较长一段时间后(超过1个月),发现ARC的同步竟然不支持历史记录、密码这些关键内容。早期0.x版本印象中是可以登陆Google账号同步,正式版改成从Arc Sync 竟然不支持,实在太差劲了

    来源:History, passwords, extensions, Favorites tabs, and Profiles will not Sync between devices. We hope to support syncing for these features soon!

    📝 每日记录

    五一假期结束了。这可能是这几年最为放松的假期,前两年每个假期都会或多或少忙工作上的事情,这次假期里没有打开看过一次工作上相关的内容,真的很满足了!

    假期回家了,爸妈和姐姐都回来了。吃了夏天的第一支雪糕🍦,吃完晚饭后和妈妈在公园走了一圈消食,呼吸公园里的新鲜空气。去了房山的地质博物馆(人不多,可拍照留恋的地方也挺多,虽然商业化开发不足,但是走走散散心也是不错)。从前总觉得去博物馆是要去学习什么,至少是见识新的世面。而现在感觉去一个地方玩,只是因为和生活大部分时候的空气、环境不同,看到不一样的内容,就已经满足了。

    在家做了可乐鸡翅,还不错,吃了三个。做了排骨玉米汤,玉米给太多了,而且也不应该给八角,汤有点苦,后面又加了糖。实在是太长时间没有做饭了(快2年了吧)。

    假期的意义在铺天盖地的宣传里,已经慢慢变成了拉动消费了。仿佛假期就应该出去消费,实则是另一番的割韭菜。一个又一个人山人海的景点,一个又一个诱人消费的明目,彷佛出门一趟就该大出血去消费一番。一面是拼命压榨去工作赚钱,另一面是拼命压榨去吸引消费之前的血汗钱,可悲可叹。但又似乎是“人之常情”...

    曾一度我会认为我在旅行上如此“抠门”是不正常的,并且得出结论是出去玩不花钱==没有好玩的。我大抵也是被这股宣传洗脑罢了,旅行就去是人多的景区走路,然后再去人多的地方消费。甚至人少的地方会不自觉认为这个景点不火,肯定不值得玩。

    所以到底什么样的景区才是值得玩,什么景区才是不值得玩?目前浅薄认为,首先一定是不过分的累(适度,可能比平常运动稍多一些),所以需要对所谓的“军训式/特种兵旅行”的宣传保持谨慎,至少对我来说是很愚蠢的行为。其次,能否放松心情。和平时见不上面朋友、家人聊聊天,不带有目的的聊,去人不多的森林呼吸新的空气、花香,适度的去爬山,走走停停,都是不错的选择。同样,拒绝昂贵的消费。常常看到很多攻略都是去某个地方吃遍所有特色,我是对此保持质疑的。去吃那些没吃过,但明显不好吃的意义何在,比如北京的卤煮、豆汁等等。也许是为了尝鲜尚可,但前提是消费标准是正常合理的。比如景区里很多高昂的小吃真的值得购买吗?最后,可能是最不重要的是旅行中能获得什么。不要给旅行太高的价值,所谓假期就是让自己开心的“虚度时光”。如果从早睡到晚觉得很开心,那就去睡觉(这样大概率其实是不舒服的,睡太多容易头昏脑胀...)

    其实我是一个非常讨厌生活发生变动的人。比如从租房的地方回家在之前都会让我抗拒,更不要说去别的地方玩,陌生、未知是我讨厌的。但是今年一年,工作环境的很多变化,让我似乎慢慢没有那么害怕改变... 小时候看《水浒传》中对林冲描述有一个词是“逆来顺受”,印象非常深刻。当时以为这个词意思是“林冲”的人生一直很顺,“逆来”被我理解为“一直”的意思了。 顺从和忍受的性格其实和林冲人生前半部分很顺也是有一定的关系。因为适应了这样一直顺的生活,对于一些生活中不公的待遇,会倾向去忍,会认为只要忍了,后面的生后还是会继续顺下去的。但这是没有遭受社会的毒打罢了的幼稚想法。生活中遭受一些变动才会让自己的行为模式、认知发生变化。

    仅写到这里,明天是未知的一天,可能有不开心的事情,但是并不可怕。

    🙉 奇奇怪怪 快五一了,很多人应该又会准备出去游玩。

    对于我来说一直没有找到旅行的意义是什么。我对吃不怎么感冒,胃口特别小,小吃街,吃上两样肚子就饱了,一些打卡地点呢,也一直不是很感兴趣,那些树、房子、河和我的之前看过的也什么区别呢?只是为了拍照,想起就提不起什么兴趣。爬山,太累,游乐场倒是不错,去过一次,也是人挤着人,好玩的总是排队很长。

    所以旅行的意义是什么呢,我还没找到。

    🍃 handsome主题 春色绿主题,快来试试!🌬️ 浅浅尝试一下,如有问题可以在该贴下回复~

    食用方法👉: 点击右侧设置按钮,在主题面板中选中第三列的第三行主题

    🍊 一句 “All in all you're just another brick in the wall.”

    此条为私密说说,仅发布者可见

    🎊 小技巧 作为非设计师,在页面设计的时候尝试找一个颜色可以试试在淘宝找,比如搜索「浅蓝色」、「夏日风」、「奶白色」,有不少商品的设计图的配色还是很不错的

    👀 产品观察 2022年的10月份的时候,arc 还是在内测,当时使用的体验并不太好,主要原因是渲染性能问题。如今我再次尝试了它,之前的掉帧问题几乎感受不到了,在这近一周的时间里,有了其他的感受。

    最喜欢的几个功能:

    1. 在一个窗口中切换不同的space,在chrome/edge 中都不支持,只能是一个窗口对应一个profile,而这一个功能,能够避免开很多窗口,导致找标签页的时候需要来回切窗口(虽然edge/chrome 的标签页搜索一定程度缓解这个问题)
    2. Today 标签页会超时自动清理。这个想法是非常大胆的,因为清理用户的标签页是一个非常“破坏性”的操作。如果产品过于谨慎,这个想法就不可能落地。在“大厂”里,可能会去做很多实验,收集很多指标最后才会决定是否去做... 但从我的体验来说,每天打开电脑,那些“临时”标签页被清理反倒是一种解脱
    3. Little Arc。小的独立窗口形态,给人一种临时的信息阅读状态,这个设计是非常创新的。你在任何软件中点击链接,会出现一个独立窗口,但不会占满全屏,这不会干扰你当前的思路。如果需要更长时间的阅读这个内容,还可以直接转到主窗口中继续阅读。arc中类似的设计还有一个“modal” 模态框的临时阅读状态,也是很不错的创新
    4. 足够细致的UI设计。如果UI设计足够精致,同时又不影响性能(至少在性能不错的机器上),那何乐而不为使用更好看的软件呢?随心所欲的修改主题颜色,也算是锦上添花了。

    除此之外Arc中还有一些高级功能,目前对我来说并没有太大的作用。比如分页”(Split)。这个功能可能会在某些特定的场景中会使用,比如写一篇文档的同时参考另一篇文档,但前提是你的显示器足够的长,否则页面变窄的体验不太好。目前这个功能我使用的频率很低。

    唯一遗憾的是在edge上高频使用的 cmd+shift+a 唤起的标签页切换面板没有了,取而代之是“华而不实”的类似macOS的ctrl+tab的标签页切换功能。

    👀 产品观察 当我想找一个软件写一点文字,并且可以将文字生成好看的图片的时候,我发现这样的软件很少。

    我想到的第一个软件是「锤子便签」,不得不说,分享的图片排版非常好看,但是因为常年不更新,有一些体验没能优化,比如不支持macOS上复制图片粘贴上传,手机版本也没有撤销的功能。

    除此之外想不到有另一款软件能做好这一点了。iOS「备忘录」不支持图片分享,flomo 不支持图文混排,非会员的排版也很一般。

    锤子便签虽然文本排版样式很少,但是排版样式非常好看,标题只有一种标题,这也明确了它的定位只是「便签」,而不是专业的笔记或者文档软件。

联系方式

关于我

  • 来自南部的一个小城市,个性不张扬,讨厌随波逐流。

那年今日
2 月前

🍃 handsome主题 春色绿主题,快来试试!🌬️ 浅浅尝试一下,如有问题可以在该贴下回复~食用方法👉: 点击右侧设置按钮,在主题面板中选中第三列的第三行主题

20 月前

📝 每日记录今天给我推荐的《我爱我家》两集贴切我的生活:33、34<近亲> 35、35<潇洒走一回> 可悲可叹!