Fluent-Validator 业务校验器-编程思维

Fluent-Validator 业务校验器 背景 在互联网行业中,基于Java开发的业务类系统,不管是服务端还是客户端,业务逻辑代码的更新往往是非常频繁的,这源于功能的快速迭代特性。在一般公司内部,特别是使用Java web技术构建的平台中,不管是基于模块化还是服务化的,业务逻辑都会相对复杂。 这些系统之间、系统内部往往存在大量的API接口,这些接口一般都需要对入参(输入参数的简称)做校验,以

服务响应时间的衡量指标-编程思维

P90 P95 P99 分析服务响应时间分布,如均值,中位值,P95值,P99值等计算 平均值 考察服务器性能,除了QPS数据外,还要查看响应时间,如何精准的表现服务器当前之负载 常用的值为:平均值(服务的平均响应时间) 例如平均耗时为100ms,表示服务器当前请求的总耗时/请求总数量,通过该值,我们大体能知道服务运行情况 P50 表示请求中的中位数 P90 响应耗时从小到大排列,顺序处于90

「System Design」设计一个支持百万用户的系统-编程思维

设计一个支持数百万用户的系统是非常有挑战性的, 这是一个需要不断调整和优化的过程, 接下来的内容中, 我将构建一个系统, 从单个用户开始,到最后支持数百万的用户。 从单个服务开始 千里之行,始于足下,让我们从最简单的单个服务开始。所有的内容都在一台服务器上运行,包括 Web 程序, 数据库,缓存 等等, 如下图 我们看一下它的工作流程。 用户通过域名访问网站, 比如, api.mysit

Java 统计新客户-编程思维

上周做了一个订单数据统计的任务,统计的是订单的新客户数量,本文做一个解题过程的记录和整理。 新客户的定义 新客户指的是选取时间段有订单,时间段之前没有订单。 比如下面的订单数据: 时间段 2月1日之前 2月1日 ~ 3月1日 客户 A,B,C A,D,E 在2月1日之前,有 A,B,C 三家企业下过订单,而2月1号到3月1号有 A,D,E 企业下过订单,找到存在2月1号到3月1号而不存在 2

[Abp vNext 源码分析] - 20. 电子邮件与短信支持-编程思维

一、简介 ABP vNext 使用 Volo.Abp.Sms 包和 Volo.Abp.Emailing 包将短信和电子邮件作为基础设施进行了抽象,开发人员仅需要在使用的时候注入 ISmsSender 或 IEmailSender 即可实现短信发送和邮件发送。 二、源码分析 2.1 启动模块 短信发送的抽象层比较简单,AbpSmsModule 模块内部并无任何操作,仅作为空模块进行定义。 电子邮件

Pyinstaller打包通用流程-编程思维

Pyinstaller打包通用流程 前言 什么是Pyinstaller Pyinstaller是用于打包python项目的一个工具, 可以将项目代码打包成可执行文件, 在其他机器上使用. 通俗的说, 没打包的时候运行程序的命令是:python3 main.py arg1 arg2 ....那么打包完后可以这么执行./main arg1 arg2 ..., main是你打包后的可执行文件名. ar

milvus和faiss安装及其使用教程-编程思维

写在前面 高性能向量检索库(milvus & faiss)简介 Milvus和Faiss都是高性能向量检索库,可以让你在海量向量库中快速检索到和目标向量最相似的若干个向量,这里相似度量标准可以是内积或者欧式距离等。这里借用milvus官方的话再次说明这两个库的特点: Milvus 是一款开源的、针对海量特征向量的相似性搜索引擎。基于异构众核计算框架设计,成本更低,性能更好。 在有限的计

一种基于均值不等式的Listwise损失函数-编程思维

一种基于均值不等式的Listwise损失函数 1 前言 1.1 Learning to Rank 简介 Learning to Rank (LTR) , 也被叫做排序学习, 是搜索中的重要技术, 其目的是根据候选文档和查询语句的相关性对候选文档进行排序, 或者选取topk文档. 比如在搜索引擎中, 需要根据用户问题选取最相关的搜索结果展示到首页. 下图是搜索引擎的搜索结果 1.2 LTR算法分类

LM-MLC 一种基于完型填空的多标签分类算法-编程思维

LM-MLC 一种基于完型填空的多标签分类算法 1 前言 本文主要介绍本人在全球人工智能技术创新大赛【赛道一】设计的一种基于完型填空(模板)的多标签分类算法:LM-MLC,该算法拟合能力很强能感知标签关联性,在多个数据集上测试表明该算法与主流算法无显著性差异,在该比赛数据集上的dev效果很好,但是由于比赛期间事情多,没有好好在test集做测试。 个人认为该算法根正苗红,理论上可以获得更好的效果,

机械键盘转蓝牙键盘-编程思维

背景 我的常用电脑是 surface go 1,基本上随身携带。问题是每次回到房间,都需要通过扩展坞将平板和显示器以及机械键盘连接起来。我嫌这些线太多,就想着能否在不改动机械键盘本身的条件下,将其改成蓝牙键盘。于是就有了去年的 6 篇文章。但是我在尝试最后一步的时候,发现买的两块 ESP32 都没有按照预期,就搁置了。 思路 机械键盘通过 USB 插入 USB Hos Shield Mini,然

万恶的Jackson-编程思维

一、吐槽 已经是凌晨12点了我还是睡不着 我所有的实体类时间用的j8的LocalDateTime 这就导致一个问题:jackson不能序列化时间,因为它不支持j8的Api,让我添加 jackson-datatype-jsr310 解决 二、问题 如果是这样做统一返回结果集需要 private static final SimpleDateFormat SIMPLE_DATE_FORMA

优质开源项目收录-编程思维

优质开源项目收录 JApiDocs接口文档 git: https://github.com/YeDaxia/JApiDocs 文档: https://japidocs.agilestudio.cn/ 低代码 https://wwa.lanzoui.com/b0cwp2nte https://github.com/YaoApp/yao https://github.com/appsmithorg/

直播预约|数据指标体系如何搭建才最有效,从0到1带你快速入门-编程思维

数智赋能实战六讲 袋鼠云数栈特邀六位在一线奋战多年的产品专家、架构师,站在亲历者、践行者的角度上,从认知、建设到实战,手把手带着你学习,帮助你收获一套建设数据中台的全面、系统、技术分析与实战案例相结合的方法论。   扫描海报二维码立即报名,5月19日晚19:00免费直播学习!     课程介绍 数据指标是企业数据化管理的重要内容之一,相信从事数据工作的同学很多都

争夺存量用户关键战,助力企业构建完美标签体系丨01期直播回顾-编程思维

数字化导读: 上周三是袋鼠云数栈全新数据中台精讲系列——「数智赋能实战六讲」的第一场直播。袋鼠云数栈资深产品专家木研为大家带来了「争夺存量用户关键战,助力企业构建标签体系」的分享,我们将直播精华部分做了整理,带大家再次回顾内容,快速上手构建标签体系。   你能看到👇👇👇 ▫ 数字营销是数字化转型排头兵 ▫ 标签体系建设方法论 ▫ 标签体系在某基金的建设案例   直播课件&视频回放: 添加

微软给员工大幅涨薪-编程思维

大家好,我是对白。 一觉醒来,一则消息让打工人分外“眼红”: 给员工加薪,绩效预算几乎翻倍的那种。 部分员工年度股票奖励增加25%! 如此豪横“撒钱”之举,正是来自微软这位老大哥。 据了解,这次微软的“加薪计划”,已经超过了年度薪酬增长的正常水平。 这一波加薪,谁最吃香? 微软员工加薪的这一决定,是CEO纳德拉在发给员工的邮件中提及。 在看完邮件内容后,隔着屏幕都能感受到他的那种“求贤若渴

省选游记?省选游寄!-编程思维

省选结束辣!别问我为什么现在才写游记,问就是懒 Day -n 因为我太菜了,教练没让我停课/kk Day 0 开摆! 前一天晚上随便敲了敲板子,突击学习了一下SSH,又吹了半天水就回去睡觉了。 Day 1 进考场的时候什么心情都没有,反正我选不上。 先看了一眼题目,感觉只有 T1 可做(菜死了qaq)。花了一个小时码完随便造了几组数据感觉没问题就run了。 T2 想了半天没思路,打了个暴力就跑了

淘系工程师讲解的使用Spring特性优雅书写业务代码-编程思维

使用Spring特性优雅书写业务代码     大家在日常业务开发工作中相信多多少少遇到过下面这样的几个场景: 当某一个特定事件或动作发生以后,需要执行很多联动动作,如果串行去执行的话太耗时,如果引入消息中间件的话又太重了; 想要针对不同的传参执行不同的策略,也就是我们常说的策略模式,但10个人可能有10种不同的写法,夹杂在一起总感觉不那么优雅; 自己的系统想要调用其他系统提供的能力,

SDOI2022 游记 - 乘兴而来,尽兴而归-编程思维

其实也没什么意思,大概就是一些自己的叨叨念之类的,如果觉得倦了可以直接划走,闲来无事之时当作一个消遣之物或许也可以 Day -133 元旦。正式开始停课。 Day ? 因疫情原因,联合省选推迟至 4.16, 4.17 Day ? 因 SD 疫情还不大行 + 没有学校愿意承办,SD 推迟至 5.2, 5.3 举办 SDOI 复辟了 Day ? 因 SD 疫情还不大行 + 没有学校愿意承办,SD 推

博客园个人博客动态js个人更新记录-编程思维

博客园个人博客动态js个人更新记录 提交模板 -- 日期 修改人:修改js描述 代码: 示例: 2022年5月18日 三号小玩家:博客园的点赞功能,去除掉页面点赞和点踩的点击事件 <script > if(document.getElementsByClassName('diggit')[0]){ document.getElementsByClassName('diggi

[Java反序列化]jdk原生链分析-编程思维

jdk原生链分析 原文链接 作为jdk中目前发现的原生链,还是有必要要分析这个用法的。全文仅限尽可能还原挖掘思路 JDK7u21 在很多链中,TemplatesImpl一直发挥着不可或缺的作用,它是位于jdk源码中的一段Gadget:getOutputProperties()->newTransformer()->getTransletInstance()->... te