一一中文网

手机浏览器扫描二维码访问

第45章 代码审查(第2页)

他滚动页面到文件开头:“第一,typeScript类型定义太松散。

你看这里”

,他指着屏幕,“userInput:any,这等于没定义类型。

我们项目要求严格类型,所有变量、函数参数、返回值都必须明确定义。

用any在审查中直接会被打回”

。

林晨点头,快速记下:“明白,我改成具体类型”

。

“第二,智能合约交互部分”

。

陈峰翻到另一段代码,“你直接调用了合约方法,但没有处理可能的失败情况和Gas费估算。

这在web3前端是必须的——每一次链上交互都可能失败,可能耗光用户Gas费。

你需要加上try-catch,加上loading状态,加上预估Gas并提示用户确认”

。

“这个我确实没考虑到……”

林晨如实说。

在传统web开发里,ApI调用失败通常只是重试或报错,但涉及真金白银的Gas费,完全是另一个维度。

“第三,代码结构”

。

陈峰继续,“你把所有逻辑都写在一个组件里,计算函数、格式化函数、状态管理全混在一起。

按照我们项目的规范,计算逻辑应该抽离成独立的纯函数,放在utils目录下;格式化函数也应该独立;状态管理考虑用Zustand而不是全用useState,因为这部分状态可能在应用其他地方也需要访问”

。

林晨看着自己那八百多行的组件文件,突然意识到问题所在——他用了最快速、最直白的方式实现功能,但没考虑后续维护和扩展。

“第四,安全问题”

。

陈峰的语气更严肃了些,“你这里用了eval吗”

?

林晨一愣:“没有啊……”

陈峰指向一段动态计算公式的代码:“虽然不是eval,但你用newFunction动态执行用户输入的计算公式,这本质上和eval一样危险。

如果用户输入恶意代码呢?即使在我们自己控制的前端,这种模式也绝对禁止。

计算公式必须白名单化,只允许几种预设模式”

。

林晨背后冒出冷汗。

他确实为了方便,允许用户输入自定义计算公式,然后动态执行。

这在传统web也许还行,但在涉及加密资产的环境里,简直是漏洞。

“第五,样式问题”

热门小说推荐
穆玄凌仙

穆玄凌仙

关于穆玄凌仙(单女主无系统天才流)一个普通青年,因梦中无字古书而寻找,被其带到霄天界中。因家中长辈而踏入修炼界,一路前行,追寻那无数修士都梦寐以求却又如同泡影的成仙之路。诱惑迷茫危机入侵无处不在,冲破重重阻碍,与宗门一路前行。...

分手后前女友又找上门

分手后前女友又找上门

TXT下载,最新章节,无错,番外...

乘风霁月

乘风霁月

TXT下载,最新章节,无错,番外...

每日热搜小说推荐