2019-09-05 10:28
目录
前言
组合模式介绍
一、来由
二、意图
三、案例图
四、组合模式代码示例
使用场景及优缺点
一、使用场景
二、优点
三、缺点
总结
回到顶部
前言
今天介绍的是结构型设计模式中的第四个模式,也就是组合模式(Composite Pattern)。组合模式也好理解,就拿我们电脑的文件及文件夹来说吧,这就是一个较好的组合模式的例子。一个目录下面包含文件及文件夹,文件夹下面也包含文件或文件夹。在这样一层层下来,我们可以想象。他似乎像极了那个树状图。而组合模式是依据树型结构来组合对象。用来表示部分—整体层次关系。
...
2019-09-05 10:12
一、关于RPC的调用 1. 调用者(客户端Client)以本地调用的方式发起调用;...
2019-09-05 10:38
本文整理自莫源于 8 月 31 日 K8s & cloudnative meetup 深圳场的演讲内容。****关注“阿里巴巴云原生”公众号,回复关键词****“资料”,即可获得 2019 全年 meetup 活动 PPT 合集及 K8s 最全知识图谱。
导读:Serverless 和 Autoscaling 是近些年来广大开发者非常关心的内容。有人说 Serverless 是容器 2.0,终有一天容器会和 Serverless 进行一场决战,分出胜负。实际上,容器和 Serverless 是可以共存并且互补的,特别是在 Autoscaling 相关的场景下,Serverless 可以与容器完美兼容,弥补容器场景在使用简单、速度、成本的缺欠,在本文中将会为大家介绍容器在弹性场景下的原理、方案与挑战,以及 Serverless 是如何帮助容器解决这些问题的。
...
2019-09-05 10:02
一、PXC 介绍
1.1 PXC 简介
PXC 是一套 MySQL 高可用集群解决方案,与传统的基于主从复制模式的集群架构相比 PXC 最突出特点就是解决了诟病已久的数据复制延迟问题,基本上可以达到实时同步。而且节点与节点之间,他们相互的关系是对等的。PXC 最关注的是数据的一致性,对待事物的行为时,要么在所有节点上执行,要么都不执行,它的实现机制决定了它对待一致性的行为非常严格,这也能非常完美的保证 MySQL 集群的数据一致性;
1.2 PXC特性和优点
完全兼容 MySQL。
同步复制,事务要么在所有节点提交或不提交。
...
2019-09-05 10:08
在 《k8s云集群混搭模式,可能帮你节省50%以上的服务成本》一文中,介绍了使用k8s + 虚拟节点混合集群的方式,为负载具有时间段波峰、波谷交替规律的业务节约成本,提高服务伸缩效率的部署方案。本文对该方案的具体落地步骤与基本运行维护进行分享,为有此需求者提供参考。...
2019-09-04 17:52
作者:HelloGitHub-Prodesire...
2019-09-04 17:12
背景
ASP.NET Core默认的配置文件定义在appsetings.json和appsettings.{Environment}.json文件中。
这里面有一个问题就是,在使用容器部署时,每次修改配置文件都需要重新构建镜像。当然你也可能会说,我的配置文件很稳定不需要修改,但你又如何确保配置文件中一些机密配置的安全问题呢?比如暴露了你的远程数据库的连接信息,哪天被员工不小心删库跑路了呢?
那接下来就来讲解下如何在.NET Core 中正确使用ConfigMap。
ConfigMap/Secret
...
2019-09-04 17:44
1. 前言#
每一个有理想的UWP应用都会打标题栏的主意,尤其当微软提供 将 Acrylic 扩展到标题栏 这个功能后,大部分Windows 10的原生应用都不乖了,纷纷占领了标题栏的一亩三分地。这篇博客将介绍在UWP中如何自定义标题栏。
2.示例代码#
UWP的限制很多,标题栏的自定义几乎全部内容集中在 这篇文档 里面。但只参考这篇文章做起来还不够顺手,我参考了微软开源的计算器应用中的 TitleBar 写了一个示例应用,可以在 这里 查看它的源码。我也把TitleBar实际应用到了我的 OnePomodoro 应用里面了。
...
2019-09-04 17:42
治与总量控制
在上一篇文章里,我们得到两个信息:
人类大脑的信息实时处理能力存在上限
软件系统的复杂度远超人类大脑的复杂度处理上限
从而引出了人类解决大规模复杂问题的根本方法
分而治之
然而分而治之的需要基于一个前提进行
复杂度总量控制
因为绝大多数人类参与的问题中,分而治之都会引入额外的汇总求解成本。要尽量减少复杂度,有两个方面的思想层次的指导:
子问题在人类可控范围内尽量的大
每个子问题要高内聚,问题间要低耦合
子问题在人类可控范围内尽量大,则有助于减少子问题数量,因而减少合并处理子问题的成本。同时子问题不超过一个人处理能力的上限是因为,一旦超过一个人的能力范围,要多人合作解决同一个平面上问题的不同部分时,必然会因合作之间沟通等原因降低整体开发效率(1 + 1 < 2)
...
2019-09-04 17:13
Http Basic 简介
HTTP 提供一个用于权限控制和认证的通用框架。最常用的 HTTP 认证方案是 HTTP Basic authentication。Http Basic 认证是一种用来允许网页浏览器或其他客户端程序在请求时提供用户名和口令形式的身份凭证的一种登录验证方式。
优点
基本认证的一个优点是基本上所有流行的网页浏览器都支持基本认证。基本认证很少在可公开访问的互联网网站上使用,有时候会在小的私有系统中使用(如路由器网页管理接口)。后来的机制HTTP摘要认证是为替代基本认证而开发的,允许密钥以相对安全的方式在不安全的通道上传输。
...
2019-09-04 17:15
首先,引入依赖:
org.springframework.boot
spring-boot-starter-security
引入此依赖之后,你的web程序将拥有以下功能:
所有请求路径都需要认证
不需要特定的角色和权限
没有登录页面,使用HTTP基本身份认证
只有一个用户,名称为user
配置SpringSecurity
...
2019-09-04 17:51
目前在网络传输视频/音频流都一般会采用H.264进行编码,所以尝试调用FFMPEG API完成Mac录屏功能,同时编码为H.264格式。
在上一篇文章中,通过调用FFmpeg API完成了Mac平台下的录屏功能。在本篇中,对上次的录屏进行优化,将采集到的视频流编码为H.264格式,同时设定FPS和分辨率。
因为是对上次录屏功能的优化,因此处理思路仍然分为三部分:
打开输入设备(默认的屏幕设备)
初始化输出设备(mp4文件)
内容转码
和上次使用的API对比,本次主要增加了涉及到H.264参数设定和H.264 pts/dts 设定的API:
...
2019-09-04 17:01
老实说,GitHub 在国内的使用体验并不算太好,这其中最大的原因就是网络了。GitHub 访问起来比较卡,这个看起来貌似无解。国内的 gitee 网速倒是可以,但是无法代替 GitHub,个人感觉 gitee 上还是开源项目多一些,工具类库要少一些。...