optional

Node 如何在 Controller 层进行数据校验

倖福魔咒の 提交于 2020-09-26 12:19:52
幽默风趣的后端程序员一般自嘲为 CURD Boy。CURD, 也就是对某一存储资源的增删改查,这完全是面向数据编程啊。 真好呀,面向数据编程,往往会对业务理解地更加透彻,从而写出更高质量的代码,造出更少的 BUG。既然是面向数据编程那更需要避免脏数据的出现,加强数据校验。否则,难道要相信前端的数据校验吗,毕竟前端数据校验直达用户,是为了 UI 层更友好的用户反馈。 数据校验层 后端由于重业务逻辑以及待处理各种数据,以致于分成各种各样的层级,以我经历过的后端项目就有分为 Controller、Service、Model、Helper、Entity 等各种命名的层,五花八门。但这里肯定有一个层称为 Controller,站在后端最上层直接接收客户端传输数据。 由于 Controller 层是服务器端中与客户端数据交互的最顶层,秉承着 Fail Fast的原则,肩负着数据过滤器的功能,对于不合法数据直接打回去,如同秦琼与尉迟恭门神般威严。 数据校验同时衍生了一个半文档化的副产品,你只需要看一眼数据校验层,便知道要传哪些字段,都是些什么格式。 以下都是常见的数据校验,本文讲述如何对它们进行校验: required/optional 基本的数据校验,如 number、string、timestamp 及值需要满足的条件 复杂的数据校验,如 IP、手机号、邮箱与域名 const body =

将OSS数据导入日志服务操作实践

孤街浪徒 提交于 2020-08-20 08:58:53
概述 对象存储服务(Object Storage Service,简称 OSS),是海量、安全、低成本、高可靠的云存储服务。OSS与日志服务相比,OSS存储的成本更低,不过日志服务中查询、结果展示、实时监控、数据加工等功能是OSS所不具备的。所以,可以将历史数据投递到OSS进行长期保存,SLS存储近期有查询分析需要的数据。 当历史数据有查询、分析需求时可以将OSS中的数据重新导入到SLS。 前提条件 已创建OSS Bucket,并将待导入的日志文件存储到OSS Bucket中,详情请参见 上传文件 。 已创建Project和Logstore,详情请参见 准备流程 。 已经完成 云资源访问授权 。 导入的OSS文件格式支持:JSON、CSV、Parquet、TEXT。 文件压缩格式支持:Gzip、Bzip2、Snappy,以及未压缩文件。 流程总览 检查导入日志服务的文件格式是否满足前提条件。 检查子账号是否有权限操作。主账号可以直接配置。 登陆 日志服务 配置OSS数据导入。 等待任务执行,查看数据及任务状态。 操作详情 测试导入的文件是之前从SLS发送到OSS的日志文件,bucket类型为标准存储。如果bucket是归档存储类型,建议提前解冻;在配置中也能进行解冻,不过解冻有一两分钟延迟,配置过程中解冻有可能误认为解冻不成功。 1. 检查OSS中待导入文件格式 在 oss控制台

pytorch torch.nn 实现上采样——nn.Upsample

心不动则不痛 提交于 2020-08-20 08:42:15
Vision layers 1)Upsample CLASS torch.nn.Upsample(size=None, scale_factor=None, mode='nearest', align_corners=None) 上采样一个给定的多通道的 1D (temporal,如向量数据), 2D (spatial,如jpg、png等图像数据) or 3D (volumetric,如点云数据)数据 假设输入数据的格式为minibatch x channels x [optional depth] x [optional height] x width。因此对于一个空间spatial输入,我们期待着4D张量的输入,即minibatch x channels x height x width。而对于体积volumetric输入,我们则期待着5D张量的输入,即minibatch x channels x depth x height x width 对于上采样有效的算法分别有对 3D, 4D和 5D 张量输入起作用的 最近邻、线性,、双线性, 双三次(bicubic)和三线性(trilinear)插值算法 你可以给定scale_factor来指定输出为输入的scale_factor倍或直接使用参数size指定目标输出的大小(但是不能同时制定两个) 参数: size ( int or

Java之Stream如何运用?案例详解

穿精又带淫゛_ 提交于 2020-08-20 05:10:28
注意: Stream 自己不会存储元素。 Stream 不会改变源对象。相反,它会返回一个持有结果得新Stream Stream 操作时延迟执行得,这意味着它们会等到需要结果时才执行。(延迟加载) 另外注意: 在学习Java高级过程中难免会遇到各种问题解决不了。为此我建了个裙 783802103,里面很多架构师一起交流解答,没基础勿进哦! Stream 操作步骤 Stream 创建: 一个数据源(集合,数组),获取一个流。 Stream 中间操作: 一个中间操作链,对数据源的数据进行处理。 Stream 终止操作: 一个终止操作,执行中间操作链,并产生结果。 2 Stream 用法 2.1 创建Stream //1. 通过 Collection.stream() / parallelStream() 创建Stream List<String> list = new ArrayList<String>(); Stream<String> stream11 = list.stream(); // 串行流 Stream<String> stream12 = list.parallelStream(); // 并行流 //2. 通过 Arrays.stream() 获取数组流 IntStream stream2 = Arrays.stream(new int[]{1,2}); // 串行流

Python 编码规范 Google Edtion

ε祈祈猫儿з 提交于 2020-08-20 01:14:35
styleguide Google Python Style Guide 1 Background Python is the main dynamic language used at Google. This style guide is a list of dos and don’ts for Python programs. To help you format code correctly, we’ve created a settings file for Vim . For Emacs, the default settings should be fine. Many teams use the yapf auto-formatter to avoid arguing over formatting. 2 Python Language Rules 2.1 Lint Run pylint over your code. 2.1.1 Definition pylint is a tool for finding bugs and style problems in Python source code. It finds problems that are typically caught by a compiler for less dynamic