实践者 软件工程 笔记 方法
基于 Traefik 的激进 TLS 安全配置实践
前言 Traefik是一个现代的HTTP反向代理和负载均衡器,使部署微服务变得容易。 Traefik可以与现有的多种基础设施组件(Docker、Swarm模式、Kubernetes、Marathon、Consul、Etcd、Rancher、Amazon ECS...)集成,并自动和动态地配置自己。 ......
模板方法实践
前言 最近在设计一个对某个中间件的测试方案,这个测试方案需要包含不同的测试逻辑,但相同的是需要对各个环节进行记录;比如统计耗时、调用通知 API 等相同的逻辑。 如果每个测试都单独写这些逻辑那无疑是做了许多重复工作了。 基于以上的特征很容易能想到模板方法这个设计模式。 这是一种有上层定义框架,下层提 ......
设计模式实践---策略模式实现对大量计算公式的处理
业务流程: 1.用户根据需要选择的实验方案,每个实验方案对应一种计算公式,计算公式例如下面这种 2.将带有实验数据的PDF文件上传到特定位置,对PDF文件进行解析后将数据数据保存到数据库。 3.遍历所有方案,对每种方案使用特定的公式对数据库中的数据进行 重构前实现: 遍历方案,使用IF语句对使用的公 ......
还原火山引擎 A/B 测试产品——DataTester 私有化部署实践经验
作为一款面向ToB市场的产品——火山引擎A/B测试(DataTester)为了满足客户对数据安全、合规问题等需求,探索私有化部署是产品无法绕开的一条路。 在面向ToB客户私有化的实际落地中,火山引擎A/B测试(DataTester)也遇到了字节内部服务和企业SaaS服务都不容易遇到的问题。在解决这些 ......
transforms模块—PyTorch图像处理与数据增强方法
计算机视觉任务中,对图像的变换(Image Transform)往往是必不可少的操作,例如在迁移学习中,需要对图像尺寸进行变换以使用预训练网络的输入层,又如对数据进行增强以丰富训练数据。
作为深度学习领域的主流框架,pytorch中提供了丰富的图像变换API。本文将对pytorch中torchvi... ......
JUC源码学习笔记7——FutureTask源码解析,人生亦如是,run起来才有结果
系列文章目录和关于我 一丶我们在哪里会使用到FutureTask 基本上工作中和Future接口 打交道比较多,比如线程池ThreadPoolExecutor#sumbit方法,返回值就是一个Future(实际上基本上就是一个FutureTask)。ThreadPoolExecutor#sumbit ......
Proxyless Mesh 在 Dubbo 中的实践
背景 随着 Dubbo 3.1 的 release,Dubbo 在云原生的路上又迈出了重要的一步。在这个版本中添加了 Proxyless Mesh 的新特性,Dubbo Proxyless Mesh 直接实现 xDS 协议解析, 实现 Dubbo 与 Control Plane 的直接通信,进而实现 ......
前端工程化筑基-Node/npm/babel/polyfill/webpack
前端搬砖框架:开发 ⇨ 构建 ⇨ 部署上线 ⇨ 摸鱼。本文对前端工程中的基本组件,如Node.js,npm,babel,polyfill,webpack等框架用图形化、简洁的语言进行了简单的介绍。 ......
关于 MySQL 嵌套子查询中,无法关联主表字段问题的折中解决方法
今天在工作中写项目的时候,遇到了一个让我感到几乎无解的问题,在转换了思路后,想出了一个折中的解决方案,记录如下。 其实,问题的场景,非常简单: 就是需要查询出上图的数据,红框是从 项目产品表 中查询的2个字段,绿框是从与项目产品表关联的 文章表 中查询出的1个字段。我希望实现的效果是,获取到项目产品 ......
TypeScript 前端工程最佳实践
作者:王春雨 前言 随着前端工程化的快速发展, TypeScript 变得越来越受欢迎,它已经成为前端开发人员必备技能。 TypeScript 最初是由微软开发并开源的一种编程语言,自2012年10月发布首个公开版本以来,它已得到了人们的广泛认可。TypeScript 发展至今,已经成为很多大型项目 ......
TiDB上百T数据拆分实践
背景 提高TiDB可用性,需要把多点已有上百T TiDB集群拆分出2套 挑战 1、现有需要拆分的12套TiDB集群的版本多(4.0.9、5.1.1、5.1.2都有),每个版本拆分方法存在不一样 2、其中5套TiDB,数据量均超过10T、最大的TiDB集群目前数据量62T、单TiDB集群备份集大,消耗 ......
IdentityServer4 - v4.x .Net中的实践应用
IdentityServer4、 IClientStore、IResourceStore、IProfileService、IResourceOwnerPasswordValidator 在.NET中的实现。 ......
一种将C++函数模板定义和声明分开的方法
在 C++ 中为了操作简洁引入了函数模板。所谓的函数模板实际上是建立一个通用函数,其函数类型或形参类型不具体指定,用一个虚拟的类型来表达,这个通用函数就称为函数模板。 1、通用的写法 函数模板不是一个具体的函数,编译器不能为其生成可执行代码。定义函数模板后只是一个对函数功能框架的描述,当它具体执行时 ......
Git和Maven的学习笔记
Git 1、Git简介 Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种 项目。 Git 易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作 流分支等特性。其性能优于 Subversion、CVS、Perforce 和 ClearCas ......
.NET 云原生架构师训练营(基于 OP Storming 和 Actor 的大型分布式架构二)--学习笔记
目录 为什么我们用 Orleans Dapr VS Orleans Actor 模型 Orleans 的核心概念 结合 OP Storming 的实践 结合 OP Storming 的实践 业务模型 设计模型 代码实现 业务模型 我们可以把关键对象(职位、客户行为记录、线索)参考为 actor 猎头 ......
C/S UDP通信实践踩坑记录与对于ICMP的进一步认识
背景 最近有个业务场景需要服务端(简称S)与客户端(简称C)设计一套基于UDP的通信协议--要求尽可能快的前提下可容忍一定丢包率,得以比较深入地学习和了解UDP通信和实践,在开发调试期间先后碰到了C端UDP发包无响应、响应Host Unreachable、响应Port Unreachable、再次C ......
BST查找结构与折半查找方法的实现与实验比较
简介 作业:查找结构与排序方法 作业题目: BST 查找结构与折半查找方法的实现与实验比较 要求编写程序实现 BST 存储结构的建立(插入)、删除、查找和排序算法; 实现折半查找算法;比较 BST 查找与折半查找方法的时间性能。 作业要求: 1. 设计 BST 的左右链存储结构,并实现 BST 插入 ......
GitOps实践之kubernetes部署Argocd
1. 什么是Argocd 1.ArgoCD是Kubernetes的一个声明性GitOps持续交付工具。 2.应用程序定义、配置和环境应该是声明性的和版本控制的。应用程序部署和生命周期管理应自动化、可审核且易于理解。 3.Argocd是以 Kubernetes 作为基础设施,遵循声明式 GitOps ......
Javascript | 分别用async await异步方法和Promise来实现一个简易的求职程序
关注公众号,一起交流,微信搜一搜: LiOnTalKING JavaScript Promise Promise 是一个 ECMAScript 6 提供的类,目的是更加优雅地书写复杂的异步任务。 如何创建一个 Promise 对象? new Promise(function (resolve, re ......
vivo 云原生容器探索和落地实践
本文会详细介绍vivo在容器集群高可用建设中的具体实践,包括在容器集群高可用建设、容器集群自动化运维、容器平台架构升级、容器平台能力增强、容器生态打通等层面的打磨和建设。 ......
异构混排在vivo互联网的技术实践
作者:vivo 互联网算法团队- Shen Jiyi 本文根据沈技毅老师在“2022 vivo开发者大会"现场演讲内容整理而成。 混排层负责将多个异构队列的结果如广告、游戏、自然量等进行融合,需要在上下游和业务多重限制下取得最优解,相对复杂和难以控制。本文主要从业务、模型等角度介绍了vivo广告策略 ......
分支路径图调度框架在 vivo 效果广告业务的落地实践
使用基于有限有向图的调度框架,可以控制在线服务中异步调度的流程,但这对分支路径的管理不够友好,随着节点增多,调度流程会越来越复杂而难以控制。因此我们实现了支持分支路径的图调度框架,解决普通图调度框架可扩展性差的问题。 ......
【ASP.NET Core】MVC操作方法如何绑定Stream类型的参数
咱们都知道,MVC在输入/输出中都需要模型绑定。因为HTTP请求发送的都是文本,为了使其能变成各种.NET 类型,于是在填充参数值之前需 ModelBinder 的参与,以将文本转换为 .NET 类型。 尽管 ASP.NET Core 已内置基础类型和复杂类型的各种 Binder,但有些数据还是不能 ......
智能语音之远场关键词识别实践(二)
上篇(智能语音之远场关键词识别实践(一))讲了“远场关键词识别”项目中后端上的实践。本篇将讲在前端上的一些实践以及将前端和后端连起来形成一个完整的方案。下图是其框图:(麦克风阵列为圆阵且有四个麦克风,即有四个语音通道) 从上图可以看出,前端主要包括去混响、声源定位和波速形成(beamforming) ......
微服务开发平台 Spring Cloud Blade 部署实践
本文介绍使用 Rainbond 快速部署 Spring Cloud Blade 微服务平台。Spring Cloud Blade 是一个由商业级项目升级优化而来的微服务架构,采用Spring Boot 2.7 、Spring Cloud 2021 等核心技术构建,完全遵循阿里巴巴编码规范。提供基于 ......
Mattermost 笔记
Mattermost 是一个开源、可私有化部署的在线通讯平台,可以和Github、Jira、Jenkins、Gitlab等做集成,所以也可以作为 ChatOps 的一种实现方式。 很早之前为开源项目 boat-house 做的一个教程,今天偶尔翻笔记的时候找了出来,在这里也分享一下。 部署 使用do ......
Qwt开发笔记(二):Qwt基础框架介绍、折线图介绍、折线图Demo以及代码详解
前言 QWT开发笔记系列整理集合,这是目前使用最为广泛的Qt图表类(Qt的QWidget代码方向只有QtCharts,Qwt,QCustomPlot),使用多年,系统性的整理,本系列旨在系统解说并逐步更新其各种Demo示例 本片文章主要讲解折线图,借助折线图展现一个基础流程框架。 Demo QwtP ......
Java工厂模式的最佳实践?
"Simplicity is prerequisite for reliability." - Edsger Dijkstra “简单是可靠的前提条件。” —— 艾兹格·迪杰斯特拉 0x00 大纲 0x01 前言 最近在重温设计模式(in Java)的相关知识,然后在工厂模式的实现上面进行了一些较深 ......
Java单例模式的最佳实践?
“读过书,……我便考你一考。茴香豆的茴字,怎样写的?”——鲁迅《孔乙己》 0x00 大纲 0x01 前言 最近在重温设计模式(in Java)的相关知识,然后在单例模式的实现上面进行了一些较深入的探究,有了一些以前不曾注意到的发现,遂将其整理成文,以作后用。 单例模式最初的定义出现于《设计模式》(艾 ......
dubbo2升级到dubbo3实践
dubbo当前版本 2.7.3 期望升级到 3.0.11。 升级过程 maven依赖变更 <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo</artifactId> <version>3.0.11</version> ......