自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(179)
  • 资源 (2)
  • 收藏
  • 关注

原创 sql 中WITH CTE AS 用法

sql 中WITH CTE AS 用法

2024-03-13 14:42:10 457 1

原创 优惠券业务逻辑梳理

限制信息:比如一个用户用一次, 促销活动可用 会员等级多少可用 支付方式比如只有微信或者花呗可用。基本信息:以批次的概念生成一批数量的 优惠券,什么类型,什么途径,有效期,数量,名称 等等。批次全部生成 可能一个批次几万个优惠券,可能1k一次生成 不够了再去生成新的去用。活动类型有很多,有了优惠券信息之后,建活动,然后活动范围选好优惠券批次。客户领取优惠券,绑定至账户中,根据优惠券的有效期来判断 过期未使用。订单作废之后 返回优惠券,重新追加一张绑上 不影响原来使用的数据。

2023-10-08 11:20:35 255

原创 vue 中使用iframe内嵌页面并通信

vue与iframe通信

2023-03-09 10:40:44 721 1

原创 组件之对页面分层

vue组件组装页面思路分析

2022-10-11 18:11:09 219

原创 对于页面有步骤下一步保存处理

有步骤的页面一并保存思路

2022-10-10 13:29:32 454

原创 使用vue项目组件思想小结

vue项目组件思想

2022-10-08 16:24:27 353

原创 前后端分离的意义

为什么要前后端分离

2022-07-04 13:38:37 94

原创 使用net core优势/为什么使用

为何要选择netcore

2022-07-04 11:38:36 705

原创 Redis分布式锁

分布式概念因为架构演变,才有了 有一变多,单个变集群的概念。相应的数据存储也从一处变成多处,也就是分布式的存储。 分散能力相同业务的资源能力分散化,高可用,高利用。业务A 的领域能力 可以 分散成 A1 A2 A3 A4 4台资源分散化,A1有问题 A2 A3 A4都能干活,而且服务的整合能力也是3倍。锁概念既然高可用,能力分散在多个服务器,锁是干嘛的,要知道,业务处理的能力在多再强大,对于数据核心处理的地方只有一个那就是 数据库资源,这个是共享的区域,锁就是为了 在高可用的情况下 确保安全。

2022-03-22 18:18:52 1587 1

原创 C# list集合分批次处理

业务场景:很多情况下一个集合得数据可能过于庞大,需要批次去处理。比如 一共有360条数据,50为一组去处理 那么就需要 8组,所以需要注意的就是最后一次不够50的话,要算出来10。所以需要用到的方法就是 GetRange public bool PushProductToBInit() { //获取当前商品 var pushlist = _productToBService.GetAllProductToBSysNoList();

2022-03-21 10:33:13 1581

原创 redis5种数据结构内部编码

字符串string3种编码 raw int embstr哈希hash2种编码 hashtable ziplist列表list2种编码 linkedlist ziplist集合set2种编码 hashtable inset有序集合zset2种编码 skiplist ziplist

2022-03-10 15:39:10 1102 1

原创 Redis持久化

为什么要持久化redis 一般用于缓存,基于内存,为什么要持久化?就是因为 缓存的作用 是 为数据库减轻压力,如果宕机 会对数据库冲击,比如停电了,缓存redis没了 就完蛋了,所以要持久化。防止意外丢失缓存对数据库冲击。持久化方式RDB +AOF 快照 加增量RDB快照 记录当时AOF 记录增量数据 日志追加Save指令 保存rdb文件 但是是单线程 阻塞形式操作,别的一些get set指令需要等待。Bgsave 指令 单独开一个 子线程 来持久化 比较 推荐可以配置 bg

2022-03-09 15:09:02 146

原创 Redis内存淘汰机制

为什么有淘汰机制?redis 基于内存,而内存是有容量的,肯定会要考虑存储空间不够的问题。有什么过期策略?定时删除:key过期了就删掉 定时任务一直监控。 CPU很忙要一直看着定期删除:一段时间后随机抽查key,过期了就删除。惰性删除:用到某个key,去检查是否过期,过期删除。内存很忙,不去查询就一直占着空间。所以一般是 定期+惰性 来达到一定程度的清理。如果不去查询,又没有抽查到,岂不是不完美让过期的key删除,还是会存在空间不足,于是淘汰机制强制处理。可以理解为,淘汰机制是 在一

2022-02-18 15:44:01 674

原创 redis 管道pipeline

为何有这个pipeline?Redis 的性能高是一大优势,但是在通信层面,由于是 客户端 服务端 通过TCP 通信,肯定是有一定延迟呢。你会发现 通信 在执行命令的过程 包括四个部分:发送命令-〉命令排队-〉命令执行-〉返回结果从第一个到第四个消耗的时间总和称为 Round Trip Time(简称RTT,往返时间)。当客户端与服务器存在网络延迟时,RTT就可能会很大,这样就会导致性能问题。那有延迟,redis要是不发挥出优势怎么能行?于是开始想。说到底就是为了能够降低RTT 这个时间,怎么

2022-02-17 15:45:48 490

原创 Redis异步队列/延迟队列

Redis 除了呗广泛认知为 缓存外,还可以 作为 消息队列为什么能够作为消息队列?因为redis 的数据结构 list / zset 的存在,支持list结构 入队出队 的表现形式,搭配 rpush 生产消息,lpop 消费消息,可以实现 消息队列zset 结构 可以有过期时间的表现形式,可以实现 延迟队列怎么作为异步消息队列?1:1 生产一个 消费一个rpush 生产消息,lpop 消费消息.如果没有消息,没办法消费,就会一直空轮询导致性能下降,需要 sleep来到达保持性能,但

2022-02-17 11:48:27 1033 1

原创 redis的keys命令与Scan

需求:获取出一部分 redis数据keyskeys 命令:一次性获取全部模式匹配想要数据,类似 sql 中的 select like操作smemberssmembers命令:一次性获取set集合中的所有元素全部想要数据 类似 sql 中 select * 操作ScanScan命令:迭代多次返回,类似 sql 中 游标利弊keys命令优点: 花的时间短keys命令的缺点:这个命令会阻塞redis多路复用的io主线程,如果这个线程阻塞,在此执行之间其他的发送向redis服务端的命令,都会阻

2022-02-16 16:37:52 1842

原创 Redis 缓存问题:雪崩,击穿,穿透

什么是缓存?缓存就是用来 挡刀的,为数据库创造一个良好的环境。挡刀挡的是什么? 是流量,而且是 热点时事流量,说白了就是 哪些数据请求当下火爆次数多,哪些就是当下流量。什么是雪崩?击穿?穿透?通俗的讲就是 缓存 歇逼了,挡刀失败,但是根据不同情况分了以下3种雪崩: 大面积的缓存失效 也就是key过期击穿: 一个key缓存失效,导致 访问数据库压力骤增穿透:...

2022-02-15 13:45:54 85

原创 redis的数据结构

基础知识-数据结构5种基本数据结构 深入其他数据结构防止缓存击透数据结构设置key值过期5种基本数据结构 深入String 字符串Hash 哈希List 集合Set 列表Zset 有序列表其他数据结构HyperLogLog 基数统计 去重 主要适用场景是海量数据的计算。特点是速度快。占用空间小。比如计算网站每天访问的独立IP数量相关命令:PFADD 添加到HyperLogLog 中 不重复/部分不重复 即成功 返回1 失败返回0 ; PFCOUNT 统计Hyper

2022-02-15 13:43:01 287

原创 Redis 开天篇-安装配置

知道了redis的用处和优点,接下来就是要安装redis了。需要安装什么东西?1.安装redis 工具2.安装可视化工具 RedisDesktopManager 为了更好的操作如何安装?1.安装redisWindows 下安装下载地址传送门.Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis。下载好之后要启动redis用 配置一下环境变量 方便启动右键

2022-02-15 13:26:47 228

原创 Redis 开天篇-学习路线

知道了redis的用处和优点,接下来就是要学习redis了。学习路线1.既然是数据库,数据存储上,肯定要知道 数据结构2.既然是数据库,数据一致性上,肯定要知道 如何持久化数据3.既然是分布式,读取数据上,肯定要知道 分布式锁4.既然是分布式,数据安全性上,肯定要知道 缓存雪崩/击穿/穿透处理5.既然是集群,数据备份性上,肯定要知道 主从架构6.既然是集群,数据管控性上,肯定要知道 哨兵模式7.既然是非关系数据库,比较上,肯定要知道 与memcache区别学习图片...

2022-02-15 11:12:52 392 1

原创 Vue系列章节一:如何准备

在学习一门技术之前,最害怕的问题就是 不知道如何下手,知道一点又好像什么都不知道。看了官网也只是 看了看简介 知道 是个 渐进式框架。作为windows的后端开发,用微软VS编辑器,强大到创建项目点一下,引用包就直接包管理联网下载即用,编译生成打包也是直接用编辑器上封装好的,突然要用VS code 写前端项目,怎么办?工具没用过,啥环境的也不知道,最重要的是 根本都不知道要配环境。看个实例知道了个v-model 然后呢。怎么准备,需要知道什么,工具环境配套的东西?看见森林,走进丛林,细看树木花草。一

2022-02-14 10:38:14 7868

原创 初步使用Vue + Element体会

之前一直用Jquery 然后重点是后台数据库相关开发,虽然之前有了解过Vue,但是一直没在实际工作用到。最近正好有机会使用,结合饿了么,简单总结,方便之后使用。安装/命令工欲善其事,必先利其器!开发工具用的是VS code使用之前肯定是要配置一些环境。以及一些常用的创建项目打包启动的命令这些都可以搜一下或者去菜鸟教程看一下,照着来一边。模板/语法毕竟是前端框架,第一步就是了解框架的结构模板是什么样子的,有什么,写什么,写在哪。<template> <div>&lt

2022-02-10 19:04:52 657

原创 心中所想-程序技术发展

该篇将以 后端程序开发 的角度 去诠释对于程序发展技术的一个见解。欢迎补充与纠正!何为程序我认为的软件程序,是 一种 可视化信息载体的 体现,不管是什么 软件,网站,小程序,APP,都是 在将数据通过不同的渠道运用不同的规则展现出来。拿微信来说,在没有这款软件,人们之间还是可以通过口头或者电话的交流传达信息,但是不够可视化,说过的话转头可能就忘了,而微信就可以在一定程度上将信息留存,在聊天记录查看通过可视化呈现出来。何为数据编程世界里 万物都可以当作数据的载体,一个人,一个物体,一个动作。

2021-11-25 11:29:02 422

原创 Kafka的基础理念理解

什么是 Kafka?一种分布式的消息管理工具随着业务系统规模庞大,各个服务之间的消息传递变得频繁且繁琐,比如在电商系统中,下单流程中就涉及支付,短信,金额,积分各种服务的消息处理,若是直接A -B-C-D 4个服务建立联系,耦合性特别强,一旦某个服务要改可能涉及的服务也要去调整接口,可以发现没有缓冲区域,不太友好去应对这种 消息网过于复杂的情况。一是不太好找 二是不太好维护。所以需要一种能够帮忙处理 各个分布式 服务之间 消息传递的一个 中间商也就是 一种消息队列消息队列知识消费消息模式..

2021-11-12 09:40:36 252

原创 U盘重装官网纯净系统win10

最近电脑遇见问题蓝屏了,准备重装系统,顺便理一下U盘安装IOS文件过程1.安装系统 到一个8G 的空U盘中在一个好的电脑上 直接百度搜索 微软官网下载win10点击第一个进入官网3. 然后点击 立即下载工具然后把应用程序打开,按照提示开始进行 一步步 下载内容到U盘操作很简单,选择 安装到U盘之后 下一步即可安装进度完成后 U盘 里面会出现 一些文件 这些文件就是系统文件 以及一些必要的 驱动 比如键盘 鼠标和显示屏用到的这些基础驱动之后 把U盘 直接 插到要装系统

2021-10-11 16:17:37 522

原创 面向对象设计原则之汇总

什么是设计原则就是帮助你在设计的时候 提供你一个思路一个好的方案的原则。目的: 开发完成需求 完成项目手段: 运用良好的设计原则与设计模式支持并不是说 一定要设计按照原则来,再合适的时间内用合适的设计原则,进行合适的设计,完成目标。这是最重要的设计原则 是一种参考,像说明书一样。给你个思路。哪些设计原则,设计为了实现哪些情况开闭原则 OCP 应对封装继承:不修改底层封装代码,扩展应对继承延申,达到 复用里氏替换 LSP 应对封装继承:不影响底层封装含义,扩展避免重写重载,到达

2021-09-26 16:31:17 48

原创 面向对象设计原则之迪米特法则

什么是迪米特法则官方:最少知道原则,类与类之间 最少的耦合好处低耦合,就意味着相互影响小,一方改动,不完全影响甚至不影响另一方。生活举例租房子 来看一下租客和房东的耦合度租客的目的是租房 房东的目的是出租房在原始租房的时候,房东发信息,租客A去打电话与房东A联系沟通。第二天 租客A发现预算不够于是跟房东A打电话,发现不行了,于是开始跟预算中的房东B打电话。第三天,房东B说不租了。于是租客A又跟房东C开始联系。发现没有 很麻烦,租客与房东直接联系确实 一个点改动 两方都影响。接着

2021-09-26 15:24:28 65

原创 面向对象设计原则之依合成复用原则

合成复用原则复用? 继承不就是 继承父类达到了复用效果吗?是的,但是 开闭原则和里氏原则 起到了一定规范作用,在继承多的时候,考虑的设计也就相对复杂了些。所以博主认为聚合合成复用 不继承想复用。于是就不继承多关联的概念其实 继承 也是一种 强耦合 而关联 比起继承 松了点 可只在关联处做文章。接口合成复用 当接口职责分离出来 进行组装 合成继承如何聚合合成复用既然 没有直接:继承 那关联要用到对方的方法什么的,怎么办?依赖注入注入进来并且使用,之后如果 关联A 换成

2021-09-24 20:15:05 64

原创 面向对象设计原则之接口分离原则

何为接口分离原则继承 只能继承一个 类,但是可以继承多个接口。为什么可以多个接口,我觉得就是因为这个原则。变相的说明了 接口的 职责是按照 单一职责原则来创建的。接口分离就是 分离接口职责。不分离接口又怎么样不分离 就意味是 一个接口呗,里面有 1 2 3 4 5个方法。所有继承此接口 都必须实现 1 2 3 4 5 ,那不管你用不用到反正都得写。这就 把 不是单一职责的弊端 体现出来了,我不需要我还要写,我请求把不需要的剥离开,1 2 3 4 5个接口 需要1的继承1 需要2的继承2

2021-09-24 19:13:18 197

原创 面向对象设计原则之依赖倒置原则

什么是依赖倒置原则依赖:依赖什么 抽象倒置:倒置什么 依赖关系以简单三层来说,通常 ui层–bll层–dal层 逐渐深入调用 而用到对象的时候就new 一个出来 这是之前很正常的操作。可以看到,这时的代码 创建对象 依赖于new 调用层级也是 一层一层的。换句话说,这样的代码 太到位了,非常具体有条例,调用按部就班,对象实列也清晰明了。但是,逻辑清晰的背后就是,如果具体的东西 太多,这显然维护起来是比较难搞的。于是乎为了 偷懒为了好维护,就想办法 怎么能让这类似同行为的对象

2021-09-23 18:35:46 76

原创 面向对象设计原则之里氏替换原则

里氏替换原则定义这个名字中 里氏 是发明者姓氏。替换 是 指重构,而一般就是 在 继承时才有重构一说,也就是重写,重载里氏替换原则通俗的来讲就是:继承中的子类与父类的一些重写重载好的规则,让代码更健壮。核心:子类可以扩展父类的功能,但不能改变父类原有的功能。为什么要用这个原则因为不用这个 容易出现问题,比如 基类A 有个方法a 类B 继承A 然后重写了方法a 那这样就导致 实例化出一个B对象 调用a 是调用的自己的个性化方法,那如果 C类继承了B ,往下走就更说不清了,所以用这个原则来

2021-09-23 14:42:09 110

原创 面向对象设计原则之开闭原则

开闭原则 开的是什么 闭的是什么开的是 开放扩展 闭的是 底层内部修改为什么要开闭为的也是松耦合开就是 继承 通过继承 底层(一般是接口/类)来 扩展行为闭就是 封装 通过封装 底层(一般是接口/类)来 保护行为为什么要保护又要扩展开发代码的过程中,一定有修改扩展维护。为了保证之前写的不受影响,又能保证可以继承适用之前的代码去扩展。这就是核心。所以概括就是说:想继承偷懒适用,但是又不想干涉到共同继承了底层的兄弟门,所以就只能 闭底层 开自己,让自己扩展一下自己用,来达到松耦合。

2021-09-22 18:39:24 81

原创 面向对象设计原则之单一职责

何为单一职责 SRP定义:There should never be more than one reason for a class to change,应该有且仅有一个原因引起类的变更。职责:业务逻辑,或者对象能够承担的责任,并以某种行为方式来执行。就是划分职责到单一目标,差不多就这意思一心一意。适用范围 职责定义类、接口、方法职责:可以理解为为了完成一种对象行为的载体为什么要遵循这个原则为了解耦,解耦的目的就是维护扩展性更高。我们都知道写代码大概率是要进行修改和维护的,不论是改bug还

2021-09-22 16:40:19 121

原创 DDD 领域专题系列(四)涉及基础概念知识小结

DP : Domain Primitive 可以理解为 原生业务模型是一个在特定领域里,拥有精准定义的、可自我验证的、拥有行为的值对象三个原则:让隐性的概念显性化让隐性的上下文显性化封装多对象行为可维护性:调整内容修改的难易度 依赖程度(看别人脸色) 自己办事 省事可扩展性:新增方法的难易度 继承程度 省事可测试性:测试的困难度 封装抽象程度 多个重复实列-抽象 省事可阅读性:代码的清晰度 循迹程度 一眼就明白 省事DO: Data Object 数据库对应模型

2021-09-07 18:05:35 146

原创 DDD领域专题系列三:代码/分层架构

在进行代码 项目的构建开始之前:应该将 业务的 领域(业务)=聚合 实体 值对象 领域服务/行为 领域事件整理清楚然后还有4种模式,这决定我们写代码 这个 构造 实体的内容饱满程度(图片从网上找的)失血和胀血就不适用 过多过少都不行贫血和充血 都包含了 业务领域中的 实体模型 操作说明...

2021-09-02 18:09:54 822

原创 JS 数组根据某属性排序

场景:页面上经常会出现使用 js 去对一个集合列表显示的元素进行调整比如这样,在页面上进行排序的调整思路:把排序的内容 通过操作 让相应集合对应的值 变更内容把集合数组 在通过排序的 大小重新组装 在页面上呈现出 实时生效的效果解决方案: //页面操作排序 handleSetOrderSingle: function (item, opt) { var self = this;

2021-09-01 16:07:59 842

原创 使用sql语句命令进行建表、添加更新字段名、更新字段类型

SQL语句命令添加表添加新的字段更新字段 名称/类型说明注释添加表create table 表名(SysNo int identity(1,1) primary key not null,--字段名 类型 是否可空 默认值,Name nvarchar(50) null,CreateUserSysNo int not null default(0),CreateTime datetime not null default(getdate()),LastUpdateUserSysNo int

2021-08-20 12:02:51 2510

原创 新手如何使用Github

如何上手github/gitlabgitlab github git 是什么ssh key 本地与远程gitlab github git 是什么gitlab 相当于 拼多多 是一个大卖场 只不过 倾向于团购 亲戚朋友组团github 相当于 淘宝 是一个大卖场 只不过 倾向于个人git 相当于支付宝 是一个 付钱工具所以,git 是基础工具,一切操作的基本命令上传下载 你没钱的话 买个屁。github 是社区 各色各样的好项目都在上面 也可以搞自己的项目gitl

2021-08-09 19:08:11 241

原创 Asp.Net Core跨域cors

.Net Core跨域同源策略是什么为何要有同源策略 限制请求AJAX同源策略限制为何还有跨站请求伪造攻击如何应对请求伪造攻击防范有AJAX跨域需求怎么办Net Core如何设置跨域权限 使用CORS浏览器之间访问网站的时候 安全性体现在一种 同源策略同源策略是什么浏览器同源策略:同源指协议、域名、端口皆相同为何要有同源策略 限制请求AJAX出于安全考虑,主要时为了防止CSRF(Cross-site request forgery),中文名称:跨站请求伪造攻击【利用用户的登录专改发起恶意请求】

2021-08-09 14:17:41 214

原创 Asp.Net Core 认证与授权

首先来弄清认证(Authentication) 授权 (Authorization)生活举例:去澡堂洗澡,花钱之后给个澡牌,这就叫认证,拿着澡牌就可以进行澡堂的大厅里了,之后 男的去 男澡堂,女的去女澡堂,这就叫权限。花钱在程序中 就是 登录,澡牌就是 Token 令牌也好标识也好都可以这么理解。一般认证和授权都是结合使用,不过你要是开了一个 男女混合澡堂不需要男女分开权限得需求也不是不可(滑稽~~言之有理)认证和授权发展方式发展方式...

2021-08-06 19:02:54 633

ExcelHelper.cs

NPOI帮助上传Excel类

2021-02-07

NPOIfunctions.cs

导出相关方法 相关样式的定义 相关列操作 datatable

2019-11-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除