我用两种语言实现了同一个功能,行数差了一倍。我默默打开了编辑器,准备一步步验证。我把这门语言的特性列了五条,三条是优点两条是坑。果然现实比段子更精彩

同样的代码,同事机器上跑正常,我机器上就报错,最后发现是版本差了一个小数点。我决定先把手上的事情做完再处理这件事。我在项目里同时用了三种语言,现在维护起来像开盲盒。这条经验值直接拉满

这门语言的并发模型很优雅,只是我们的场景用不上。我不知道该说什么,就笑了笑。我发现有人用这门语言写业务,用得很别扭。第二天这个方案就变成了团队标准做法

技术选型的理由里,性能通常排在熟悉度之后。我笑了笑,决定不解释。我默默把语言换成了团队里最熟的那个。同事说这波操作可以写进新人培训教材

语言的设计哲学会在代码风格里留下很深的痕迹。我在心里点了点头。我把这个接口的序列化方式统一了,跨语言终于通了。第二天这个方案就变成了团队标准做法

争论哪门语言最好就像争论哪把锤子最好,关键看你要钉什么钉子。我停了一下,然后继续手上的活。我把这个服务的语言换成了性能更好的,维护成本高了。我把这条经验写进了团队 wiki

我在这门语言里踩的坑,在另一门里是常识。我盯着屏幕沉默了十分钟。我发现这门语言对新手友好但对老手有陷阱。我把这条经验写进了团队 wiki

同样的代码,同事机器上跑正常,我机器上就报错,最后发现是版本差了一个小数点。我先给自己泡了杯茶,做好了打持久战的准备。我默默把语言换成了团队里最熟的那个。复盘会上我们把它列成了案例

Go 的 err != nil 写了一千遍之后,我开始怀疑人生是否也该这么判空。我在心里给这门语言的包管理吐槽了一句。世界瞬间清净了

同样的代码,同事机器上跑正常,我机器上就报错,最后发现是版本差了一个小数点。我重新看了一遍手上的计划,把风险项标了出来。我在心里给这次的技术选型做了个说明,主要是人。连茶水间都安静了