XOR

设计模式(十五)----结构型模式之外观模式

1 概述 有些人可能炒过股票,但其实大部分人都不太懂,这种没有足够了解证券知识的情况下做股票是很容易亏钱的,刚开始炒股肯定都会想,如果有个懂行的帮帮手就好,其实基金就是个好帮手,支付宝里就有许多的基金,它将投资者分散的资金集中起来,交由专业的经理人进行管理,投资于股票、债券、外汇等领域,而基金投资的 ......
模式 结构型 设计模式 外观 结构

设计模式(十四)----结构型模式之组合模式

1 概述 对于这个图片肯定会非常熟悉,上图我们可以看做是一个文件系统,对于这样的结构我们称之为树形结构。在树形结构中可以通过调用某个方法来遍历整个树,当我们找到某个叶子节点后,就可以对叶子节点进行相关的操作。可以将这颗树理解成一个大的容器,容器里面包含很多的成员对象,这些成员对象即可是容器对象也可以 ......
模式 结构型 设计模式 结构

设计模式(十六)----结构型模式之代理享元模式

1 概述 定义: 运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似对象的开销,从而提高系统资源的利用率。 2 结构 享元(Flyweight )模式中存在以下两种状态: 内部状态,即不会随着环境的改变而改变的可共享部分。 外部状态,指 ......
模式 结构型 设计模式 结构

AD域安全攻防实践(附攻防矩阵图)

以域控为基础架构,通过域控实现对用户和计算机资源的统一管理,带来便利的同时也成为了最受攻击者重点攻击的集权系统。 01、攻击篇 针对域控的攻击技术,在Windows通用攻击技术的基础上自成一套技术体系,将AD域攻防分为信息收集、权限提升、凭证窃取、横向移动、权限维持等攻击阶段,把域环境下众多且繁杂的 ......
矩阵

k8s HPA(HorizontalPodAutoscaler)--自动水平伸缩

 写在前面 我们平时部署web服务,当服务压力大撑不住的时候,我们会加机器(加钱);一般没有上容器编排是手动加的,临时加的机器,临时部署的服务还要改Nginx的配置,最后回收机器的时候,也是手动回收,手动修改Nginx的,挺麻烦的其实; 而K8s是支持这整个流程的自动化的,也就是HPA; HPA介 ......
HorizontalPodAutoscaler 水平 k8s HPA k8

ASP.NET Core - 配置系统之配置添加

2. 配置添加 配置系统可以读取到配置文件中的信息,那必然有某个地方可以将配置文件添加到配置系统中。之前的文章中讲到 ASP.NET Core 入口文件中,builder(WebApplicationBuilder 对象) 中有一个 Configuration 属性,这里就是我们扩展添加额外的配置的 ......
系统 Core ASP NET

ASP.NET Core - 配置系统之配置提供程序

3. 配置提供程序 上面提到,通过 IConfigurationBuilder 的实现类对象,我们可以自由地往配置系统中添加不同的配置提供程序,从而获取不同来源的配置信息。.NET Core 中,微软提供了以下这些内置的配置提供程序: 文件配置提供程序 环境变量配置提供程序 命令行配置提供程序 Az ......
程序 系统 Core ASP NET

ASP.NET Core - 配置系统之自定义配置提供程序

#4. 自定义配置提供程序 在 .NET Core 配置系统中封装一个配置提供程序关键在于提供相应的 IconfigurationSource 实现和 IConfigurationProvider 接口实现,这两个接口在上一章 ASP.NET Core - 配置系统之配置提供程序 中也有提到了。 I ......
程序 系统 Core ASP NET

ASP.NET Core - 选项系统之选项配置

1. 选项 前面讲完了.NET Core 下的配置系统,我们可以通过 IConfiguration 服务从各种来源的配置中读取到配置信息,但是每次要用的时候都通过 Iconfiguration 读取配置文件会比较不方便,而且效率低。.NET Core 体系下提供了一个选项系统,该功能用于实现以强类型 ......
系统 Core ASP NET

Zip Slip漏洞审计实战

前言 最近看到许少的推有说到Zip Slip这个漏洞导致的RCE,其实我在代码审计的时候确实发现有不少功能模块都是使用ZIP来解压,其实还是在真实系统中经常见到的。 于是想着好久没有写过博客了,想借着这次机会更新一下吧,免得读者以为我在偷懒没学习了~ Zip Slip是什么漏洞 Zip Slip是一 ......
漏洞 实战 Slip Zip

AOP中的一些重要术语简介

AOP的定义:AOP(Aspect Oriented Progamming)利用称为"横切"的技术,剖解开封装的对象内部,把多个类的公共行为封装到一个可重用模块中,便于减少重复代码,降低模块之间的耦合度,符合“开闭原则”。 上面这段关于AOP的定义是从网上抄的,是不是很拗口,我们就结合实际开发来先简 ......
术语 简介 AOP

C++重载底层原理

好吧,承认是自己浅薄了 当被问起C++重载时,嘴角不自觉的微微上扬,然后脱口而出,C++重载的原则: 函数名相同,函数参数列表不同(类型、个数、顺序) 匹配原则1:严格匹配,找到再调用 匹配原则2:通过隐式类型转换寻求一个匹配,找到则调用 注:返回类型不构成重载条件 C++编译时多态也是由重载函数来 ......
底层 原理

C++11 thread_local关键字

这是一篇科普文--关于thread_local关键字 首先,C++11之前并没有对并发进行任何的支持,C++11首次提供了以下的支持: 语言核心定义了一个内存模型,保证当更改"被两个不同线程使用"的两个object时,他们彼此独立,而引用thread_local关键字 标准库支持启动多线程,包括传递 ......
thread_local 关键字 关键 thread local

博客园美化教程

博客园美化教程 前言: 没啥时间写博客,不过最进将博客美化了一遍现在,选了好几款不错的主题,感觉都很喜欢,选择困难症犯了,决定写一个完整详细的教程,将几款博客都试一遍,现在先介绍这款SimpleMemory博客主题的效果美化教程吧,接下来开始我们的教程p 一、后台设置 点击“管理 > 设置 > 基本 ......
教程 博客

.Net DI(Dependency Injection)依赖注入机制

1、简介 DI:Dependency Injection,即依赖注入,他是IOC的具体实现。 在DI中,底层服务对象不再负责依赖关系的创建,而是交由顶端调用进行管理注入 好处:降低组件之间的耦合度,使代码更加灵活 2、实例 我们举个例子,有个User Login的功能,Login需要通过DB验证,D ......
Dependency Injection 机制 Net DI

Net6 EFcore框架介绍

1、简介 EFcore,可用使得开发人员不需要再去关注数据库的实现,全都由代码进行生成 这样有利于减少工作量、数据库快速迁移... 2、上手搭建架构 (这个图是做完本章内容的完整图,我们一步步深入即可) 在写EF之前,先安装好数据库,我选择在本地安装Sqlserver 我们先执行最核心的两步,将EF ......
框架 EFcore Net6 Net

FAQ docker运行tomcat提示找不到文件

docker运行tomcat提示找不到文件 问题描述 docker课程中,老师是用tomcat镜像来演示docker的一些操作 但同样的操作有的同学是ok的,有的同学就会遇到如下错误 核心信息 Exited(1) Cannot find /usr/local/tomcat/bin/setclassp ......
文件 docker tomcat FAQ

漫谈Python魔术方法,见过的没见过的都在这里了

漫谈Python魔术方法,见过的没见过的都在这里了 就说一下,不深入 假的一览 提到魔术方法,学过python都应该知道一些。至少你得会__init__吧。 在我之前写的博文中有很多都涉及魔术方法。比如 浅谈Python中的if,可能有你不知道的,涉及__bool__和__len__ 浅谈Pytho ......
魔术 方法 Python

谈谈Selenium中浏览器驱动的日志

谈谈Selenium中浏览器驱动的日志 来源于一位同学,“老师为啥firefox执行后会有日志文件,chrome没有呢?” 比对 你打开chrome浏览器 from selenium import webdriver driver = webdriver.Chrome() 这样是没有日志的 同样的代 ......
Selenium 浏览器 日志

我的十年编程路 2014年篇

2014年,对我来说意义非凡。除了前一篇提到的写作之路正式启航外,还有一些其它的种子,也是在这一年播撒下去的,且听我慢慢道来。 那是在1月3日,我收到了本地一家国企的面试邀请,当然前提是我投了简历。为什么这个日期能如此准确呢?为了写这篇文章,我特意查了一遍2014年的邮件收件箱,才发现当年还真的做了 ......
2014

我的十年编程路 2015年篇

如果说2014是我编程之路狂飙的开始,那么2015年则是更加将其发扬光大。 2014年底,我获得了公司的先进奖,这在前一篇已经说过了。这个奖是我工作以来第一次获得的荣誉,所以格外珍惜。虽然有说法是这种奖,大家轮流得。但我还是很珍惜,以至于后来面试的简历上一直写着它。 有了这个奖的鼓励,2015年我就 ......
2015

我的十年编程路 2016年篇

时光匆匆,2016年来了,此时的我已经工作了3年有余。过去的三年,虽有坎坷,但总体顺利,是个逐渐上升的线。 进入2016年后,我不再做那些技术探索方面的App了。部门的拳头产品——加密通信要添加IM即时消息功能,类似微信的样子,这个大功能由我来设计实现。 有了前面几年的技术积累和探索,我们在众多服务 ......
2016

我的十年编程路 2017年篇

2016和2017,这两年是我飞速发展的两年。一方面是技术、工作能力,另一方面是对人生的思考。 随着技术能力的不断提升,博客也随之更新。在2017年伊始,我收到了CSDN学院的讲师邀请函。没错,那个时候我就有机会做视频课了,只是一直在产出图文内容,也就没想着做视频教程。 现在回想起来,当时应该是觉得 ......
2017

我的十年编程路 2018篇

记不得是在什么地方,我看过一个调查。调查的问题就是请大家选出最近几年里,自认为光景最好的一年。统计结果显示:大部分人会选择2018。这一年疫情还没来,世界基本没有大战的新闻,也基本 没有什么天灾。可以说是很安稳的一年。但这一年对于我来说,不仅发生了翻天覆地的变化,这些变化更影响了我的一生。这一切要从 ......
2018

我的十年编程路 2019年篇

随着2018年,三星天津研究院的裁撤,我选择了到广州的三星研究院工作,与最心爱的她开始一起生活。 这一年的开始,我注册了博客园。和2014年类似,在刚注册不久,我写了一篇题为《全新开始,全心出发》的文章。在这篇文章里,我又一次刨析自己,深入内心。 从网站的风格样式上看,博客园并无优势,甚至在某些地方 ......
2019

我的十年编程路 2020年篇

我出生在1990年,2020年到来的时候,我完成了一项成就:奔三。同时,也开启了新的征程:奔四。 2020年的春节是在广州的丈母娘家度过的,春节后大概是初五,或者是初六,我和媳妇就返回天津的家了。 那个时候,大家应该都有印象,疫情刚刚爆发,全国在封高速路。本来想开车回去的,结果怕有风险,还是选择了飞 ......
2020

我的十年编程路 2021年篇

慢慢地,时光走过了8个年头,来到2021年。 站在2021年,回望8年的过往,没有大的起伏和波澜。或许是上天的眷顾,我的事业发展一直都很顺利。当然,弯路也走过一些,而且工作其实挺辗转的,如果看过我前几年的文章就会知道。但这都没关系,我的Plan B,也就是写作,提供了能力和经济上的支撑。甚至,现在, ......
2021

我的十年编程路 2022年篇

2022年,是我工作的第10个年头。我的工作内容主要是由编程和写作构成的,正如前一篇所描述的那样,刚开始是编程为主,写作为辅。后来慢慢地,编程就成为了写作题材的“源泉”,为写作造血。到现在,我已经分不清编程和写作,到底哪一个是主,谁又是辅,似乎写作对我来说更重要一些。 这一年的开端,新冠的形势异常严 ......
2022

我的十年编程路 尾声

终于走到了尾声。不过总体来说,这十年的回忆录,写起来还挺轻松的。 算上序和尾声,其实是有12篇文章,每篇文章大概3000字左右。印象中只有两篇文章是低于3000字,这大概是写掘金小册的后遗症之一。 这12篇文章是我在多个平台一起分发的,算是一次测试,看看各平台不同的读者对这类八卦文章都有何反应。 我 ......
尾声

ASP.NET Core - 依赖注入(三)

4. 容器中的服务创建与释放 我们使用了 IoC 容器之后,服务实例的创建和销毁的工作就交给了容器去处理,前面也讲到了服务的生命周期,那三种生命周期中对象的创建和销毁分别在什么时候呢。以下面的例子演示以下: 首先是新增三个类,用于注册三种不同的生命周期: public class Service1 ......
Core ASP NET