首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

求你,不要再在对外接口中使用枚举类型

问题重现 首先,下游系统A提供一个二方库的某一个接口的返回值中有一个参数类型是枚举类型。...原理分析 这个问题的现象我们分析清楚,那么再来看下原理是怎样的,为什么出现这样的异常呢。...比如前面的例子,B系统在调用A系统的时候,构造参数的时候使用到AType的时候就只有P_T和A_B两个选项,虽然A系统已经支持P_M,但是B系统并没有使用到。...但是,返回值就不一样,返回值并不受客户端控制,服务端返回什么内容是根据他自己依赖的二方库决定的。 但是,其实相比较于手册中的规定,我更加倾向于,在RPC的接口中入参和出参都不要使用枚举。...如果使用字符串代替RPC接口中的枚举,那么就可以避免上面我们提到的两个问题,上游系统只需要传递字符串就行了,而具体的值的合法性,只需要在A系统内自己进行校验就可以

71250
您找到你想要的搜索结果了吗?
是的
没有找到

为什么我的模型准确率都 90% ,却不起作用

如果说这个例子里分类是八比二的话,那么只会有 20% 的用户终止与公司继续接触,剩下 80% 的用户则会继续使用公司产品。 但问题是,这 20% 的用户流失可能对公司非常的重要。...精度 = 所有正确预测 / 全部预测 精度计算了所有预测中正确所占的比例,直觉告诉我们这么算确实没问题,可是到了不平衡数据集上,情况就变得复杂…… 举例来说,你从市场部那边拿到了过去一年的客户流失情况数据...去年总共有十万的客户,其中有两万的客户流失。现在,如果说我们预测全部的十万客户都留存到了年底,这就意味着你的精度是 80,000/100,000,足足有 80%!但实际上你一个客户流失都没有预测到。...因此,如果我们成功预测到了所有的二万用户流失,也就是两万的真正,但同时也有两万并没有流失的客户被模型混淆在其中,那么这一点在精准度里也会有所体现: 没有假正:20,000/(20,000+0)= 100%...还是用之前的例子,如果我们成功预测出所有的流失客户,没有错过任何一个,那么我们将拥有: 没有假负:20,000/(20,000+0)= 100% 如果我们错估五千的客户,那么召回率将下降,但计算式的分母不变

1.8K30

期盼好久?网站托管对Next.js的支持上线

如果你的应用可以作为静态HTML,那么可以试试Next.js。 它可以把一个应用程序作为静态页面导出,那么导出的静态页面怎么部署到静态托管呢?我们以云开发静态托管服务为例。 什么是云开发?...就像包饺子一样,提前有人给你准备好饺子馅和发好的面,我们只需要包饺子就可以。...: npm i create-next-app 以及云开发工具@cloudbase/cli: npm i @cloudbase/cli npm命令是在安装node.js时自动安装的,所以不需要单独安装。.../out -e 你的云开发环境ID 云环境ID可在环境ID下查看: 上传完成后我们在静态网站托管中可以看到我们out目录下的所有文件: 云开发默认提供一个与环境对应的默认域名,可以通过这个默认域名进行访问...有一个很强大的功能:可以做 SSR (Server Side Render),云开发也支持 SSR并即将推出教程。

1K20

JS的静态类型检测,有内味儿

我们知道 TypeScript 2.3 以后的版本支持使用--checkJs对.js文件进行类型检查和错误提示。...答案就是 // @ts-check,在 js 文件的头部引入这样一行注释,然后配合JSDoc就可以在JavaScript代码中使用 TypeScript的类型检查。...举个例子,在下图中我们首先声明了一个变量 a,然后把数字 1 赋给它,接着又把字符串 '1' 赋给它,看起来好像没有什么问题,而且运行起来也不会报错。...在变量a赋值的下面,出现红色波浪线,鼠标放上去提示: let a: number @type — {Number} 不能将类型“"1"”分配给类型“number”。...也就是说我们将一个字符串赋值给一个数字类型的变量是有问题的,这个时候我们未运行程序,但是编辑器已经帮我们分析出了代码可能存在的问题,这时候我们运行代码,是没有报错的。

1.7K20

Node.js 10带着npm 6来

今天,Node.js 发布最新版本 Node.js 10.0.0,同时,npm 6 也随之发布。...Node.js 10.x 将是第一个支持 OpenSSL 1.1.0 的版本。该版本配备 Google V8 6.6 JavaScript 引擎,性能会增强,错误处理和跟踪诊断能力也将会提升。...Node.js Foundation 执行总监 Mark Hinkle 表示,“2015 年首次采取的 Node.js 长期支持版本策略促进了 Node.js 项目的成熟,并吸引更多的企业使用 Node...性能改进 最新的 V8 在 Promise、异步生成器和阵列性能(array performance)有很大的改进,Promise 和异步函数的改进消除了异步函数和 desugarded promise...Node.js 10.x 引入 npm 6 Node.js 10.0.0 附带 npm 5.7.x, 但是,预计在 Node.js 10.x 生命周期的早期会更新为 npm 6。

58830

Node.js 被分叉出一个项目 — Ayo.js,肿么

(注:ayo.js叉从Node.js。目前,大量的文档仍然指向Node.js库。) ayo.js是一个JavaScript运行时建立在Chrome的V8 JavaScript引擎。...ayo.js使用事件驱动的,非阻塞I/O模型,使其轻量化和高效。生态系统的ayo.js包,NPM,是世界上最大的生态系统的开放源代码库。 贡献、策略和发布是在一个开放的治理模型下管理的。...Ayo(发音为“eye-oh”或 IO)是当前流行的 JavaScript 运行时 Node.js 的一个分支。...Node.js 项目的一个委员会(TSC)就是否应该允许一名 Node.js 项目的开发者继续为项目工作进行了投票,投票结果是 60% 持赞成的态度。...而且现在由于“行为准则”的执行力不足,不仅造成了 Node.js 的分叉,还导致一名 Node.js 委员会成员在 TSC(技术指导委员会)上辞去自己的职务。

68950

Node.js 调试一路走来经历什么

我们可以用 Chrome Devtools 调试 Node.js 代码,也可以用 VSCode 来调试它。调试工具是 Node.js 开发的基础工具。...但现在好用的调试工具也不是一开始就这样的,它经历一系列的演变过程。今天我们就来聊聊 Node.js 调试工具背后的故事吧。...当然,这里只是说 Chrome Devtools 调试 Node.js,在 VSCode 里调试 Node.js 的话还有另一段小故事: 调试的原理我们已经知道,就是 ws 客户端和服务器的通信,然后基于调试协议来完成不同的功能...这样我们就可以在 VSCode 里调试 Node.js 。...这样还是太麻烦了,所以后来 Node.js 和 v8 团队合作实现 v8-inspector,可以让 Node.js 提供的调试协议是直接兼容 Chrome Devtools Protocol 的。

55530

2021,真的不要再说 Node.js 是一门编程语言「建议收藏」

大家好,又见面,我是你们的朋友全栈君。 Node.js 全栈基础 1....为什么浏览器和 Node.js 都可以运行 JavaScript 因为浏览器和 Node.js 都内置 JavaScript V8 Engine。...浏览器中运行的 JavaScript 和 Node.js 中运行的 JavaScript 有区别吗 在内置 JavaScript V8 Engine 以后实际上只能执行 ECMAScript,就是语言中的语法部分...在模块文件执行之前,模块文件中的代码会被包裹在模块包装函数当中,这样每个模块文件中的代码就都拥有自己的作用域,所以在模块外部就不能访问模块内部的成员。...exports = log //这是错误的写法. 2.5 Node.js 内置模块 在 Node.js 安装完成后,会内置一些非常有用的模块。 Path:模块内提供一些和路径操作相关的方法。

2.3K30

Javascript模块化详解

官网介绍RequireJS是一个js文件和模块的加载器,提供加载和定义模块的api,当在页面中引入了RequireJS之后,我们便能够在全局调用define和require。 define(id?...export命令用于规范模块的对外接口。...也可以使用export命令输出对外接口 模块之中,顶层的this关键字返回undefined,而不是指向window。...如果不希望将后缀名改成.mjs,可以在项目的package.json文件中,指定type字段为 { "type": "module" } 一旦设置以后,该目录里面的 JS 脚本,就被解释用 ES6...总结 由于 ESM 具有简单的语法,异步特性和可摇树性,因此它是最好的模块化方案 UMD 随处可见,通常在 ESM 不起作用的情况下用作备用 CommonJS 是同步的,适合后端 AMD 是异步的,适合前端

52820
领券