-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
精读《API设计原则》 #34
Comments
统一关键字库所有api定义之前,先抽离业务和功能语义的关键字,统一关键字库; 可以更好的让多人协作看起来如出一辙, 而且关键字库 更能够让调用者感觉到 符合直觉、语义清晰; 关键字库也是项目组新同学 PREDO 的内容之一, 很有带入感; 单一职责接口设计尽量要做到 单一职责,最细粒度化; 可以使用组合的方式把多个解耦的单个接口组合在一起作为一个大的功能项接口; 接口设计的单一职责,也更方便多人协作时候的扩展和组合; 面向未来的多态对于接口参数的扩展,我们要做到面向扩展开放,面向修改关闭; 升级做到要兼容, 否则会导致大批量的下游不可用; |
Const 入参eslint 有一条规则,不要直接改变入参的值。这个规则的初衷是解决函数副作用问题,禁止可能产生副作用代码的产生。但却可以通过如下方式避免: function (num) {
let scopeNum = num
scopeNum = 5
} 这是从包含指针类型编程语言学习过来的,因为当 为了避免副作用,建议引入 function (const num) {
...
} 将没有副作用函数的所有入参定义为 但这也无法彻底避免,仍然可以通过如下写法绕过检测,修改入参: function (const num) {
const scopeNum = { ...num }
scopeNum.a.b = 'c'
} 在 js 中没有完美的方式避免对入参的修改,但通过对入参修饰
|
精读文章地址:https://coolshell.cn/articles/18024.html
虽然是基于 C++ Qt 风格的文章,但许多观点对前端也是通用的,学习一下。
The text was updated successfully, but these errors were encountered: