设计的味道,比代码先到

23 阅读2分钟

打开 PR 的那一刻,就感觉「有些不对劲」。

还没细读代码,仅凭整体结构就隐隐觉得不对劲。说不清道不明,无法用逻辑解释——或许有人不愿承认这种感觉的存在。

但我可以断言:这种嗅觉是真实存在的,而且很有用。

它的本质是「无意识的模式匹配」

日复一日地写代码、读代码、思考代码。这些积累会在你心中形成一套「基准」。

当遇到偏离基准的东西,大脑会自动做出反应。那些曾经「踩过的坑」,也在不知不觉中沉淀下来。

这不是刻意比较的结果,所以我们称之为「嗅觉」。

触发警觉的信号

命名的模糊。 名字和实际行为不符。validateEmail 不只是做验证,还发了邮件。

逻辑的错位。 为什么这段代码会出现在这里?Controller 里写着复杂的业务逻辑,View 里直接操作数据库。

外部通信的隐患。 数据库、API、文件 I/O。有副作用的操作最容易出问题。错误处理不够健壮,N+1 查询的苗头。

这些都是在深入阅读代码之前就会让人「咦?」的地方。

闻到异味,不代表真有问题

嗅觉是预警,不是判决。

查过之后发现没问题——这就够了。让你停下来仔细看一眼,本身就有价值。而这样的经验,会让你的嗅觉更加敏锐。

如何训练

写好代码。读好代码。然后,思考。

光是写和读,只是在干活。问一句「为什么要这样设计」,才能真正刻进脑子里。

什么是「好」,每个人的标准不同。追求自己认可的设计,那就是你的基准。

不过要注意,长期沉浸在遗留代码里,嗅觉是练不出来的。人会习惯臭味的。

拥有一个值得信赖的鼻子

相信你的嗅觉,但要验证。

习惯了臭味,鼻子就会变钝。持续接触好的设计,嗅觉才会变得敏锐。

让你的鼻子,成为值得信赖的那一个。

原文: sijiaoh.com/zh/posts/de…