学习笔记

学习Spring的思考框架

引子 很早之前听同事说:“要开会了。我都知道领导要问什么,就那几板斧。”其实领导之所以为领导,人家问的问题确实很合情合理,甚至可以说一针见血。而之所以能问出来这些合理的问题,就是因为头脑中有自己的思考框架。比如要做一件事情,一个思考框架就是: 1,我们现在是什么样的? 2,我们要做成什么样(解决什么问题、有什么收益)? 3,怎么才能达成(解决路径)? 根据这个思考框架,开会的时候,给领导做汇报,一上来就说我做了什么什么。领导自然要问:“做这件事情有什么收益?” 如果一项任务指标特别好,领导就要问了:“那我们是怎么做到的呢?” ...

[UWP]CompositionLinearGradientBrush加BlendEffect,双倍的快乐

1. 什么是BlendEffect# 上一篇文章介绍了CompositionLinearGradientBrush的基本用法, 这篇文章再结合BlendEffec介绍一些更复杂的玩法。 Microsoft.Graphics.Canvas.Effects命名空间下的BlendEffect 用于组合两张图片(分别是作为输入源的Background和Foreground),它包含多种模式,如下图所示: 其中最简单的是Screen模式,它的计算公式如下 看起来有点复杂, 我的理解是它相当于色轮中Background和Foreground之间拉直线,在直线的中间点的颜色,如下面这张图,红色和蓝色组合成为紫色: ...

Gitlab CI 集成 Kubernetes 集群部署 Spring Boot 项目

在上一篇博客中,我们成功将 Gitlab CI 部署到了 Docker 中去,成功创建了 Gitlab CI Pipline 来执行 CI/CD 任务。那么这篇文章我们更进一步,将它集成到 K8s 集群中去。这个才是我们最终的目标。众所周知,k8s 是目前最火的容器编排项目,很多公司都使用它来构建和管理自己容器集群,可以用来做机器学习训练以及 DevOps 等一系列的事情。 在这里,我们聚焦 CI/CD,针对于 Spring Boot 项目,借助 Gitlab CI 完成流水线的任务配置,最终部署到 K8s 上去。本文会详细讲解如何一步步操作,完成这样的一条流水线。 ...

Github带来的不止是开源,还有折叠的认知

如果第二次看到我的文章,欢迎右侧扫码订阅我哟~ 👉 每周五11:45 按时送达。当然了,也会时不时加个餐~ ​我的第「113」篇原创敬上 几乎每个程序员都知道github,但是知道目前上面有多少repositories的估计没几个。 Z哥今天去看了下,最新的数量显示是1.39亿个。 ​ ▲截图来自于github.com 而这个数字在2008年那会只是3.3万个。 这个增长速度可谓真的是“爆炸式增长”。 与此同时,大家也都享受到了开源技术逐渐繁荣的红利。如今,构建一个大型的、面向广大互联网终端用户的系统,变得越来越容易了。 ...

NET Core 3.0之深入源码理解ObjectPool(二)

写在前面 前文主要介绍了ObjectPool的一些理论基础,本文主要从源码角度理解Microsoft.Extensions.ObjectPool是如何实现的。下图为其三大核心组件图: objectpool2 核心组件 ObjectPool ObjectPool是一个泛型抽象类,里面只有两个抽象方法,Get和Return。它从底层定义了最一般的接口。 Get方法用于从对象池获取到可用对象,如果对象不可用则创建对象并返回出来 Return方法用户将对象返回到对象池 源码如下: 1: public abstract class ObjectPool where T : class ...

Mysql高手系列 - 第26篇:聊聊如何使用mysql实现分布式锁

Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能。 欢迎大家加我微信itsoku一起交流java、算法、数据库相关技术。 这是Mysql系列第26篇。 本篇我们使用mysql实现一个分布式锁。 分布式锁的功能 分布式锁使用者位于不同的机器中,锁获取成功之后,才可以对共享资源进行操作 锁具有重入的功能:即一个使用者可以多次获取某个锁 获取锁有超时的功能:即在指定的时间内去尝试获取锁,超过了超时时间,如果还未获取成功,则返回获取失败 能够自动容错,比如:A机器获取锁lock1之后,在释放锁lock1之前,A机器挂了,导致锁lock1未释放,结果会lock1一直被A机器占有着,遇到这种情况时,分布式锁要能够自动解决,可以这么做:持有锁的时候可以加个持有超时时间,超过了这个时间还未释放的,其他机器将有机会获取锁 ...

零基础教程!一文教你使用Rancher 2.3和Terraform运行Windows容器

本文来自Rancher Labs 介 绍 在Kubernetes 1.14版本中已经GA了对Windows的支持。这一结果凝结了一群优秀的工程师的努力,他们来自微软、Pivotal、VMware、红帽以及现在已经关闭的Apprenda等几家公司。我在Apprenda工作时,不定时会为sig-windows社区做出一些贡献。即便现在在Rancher Labs任职,也一直关注它的动向。所以当公司决定在Rancher中增加对Windows支持时,我极为兴奋。 Rancher 2.3已于本月月初发布,这是首个GA支持Windows容器的Kubernetes管理平台。它极大降低了企业使用Windows容器的复杂性,并为基于Windows遗留应用程序的现代化提供快捷的途径——无论这些程序是在本地运行还是在多云环境中运行。此外,Rancher 2.3还可以将它们容器化并将其转换为高效、安全和可迁移的多云应用程序,从而省去重写应用程序的工作。 ...

嗜血的硅谷与Hygge的欧洲

 听到太多抱怨工作累,加班多,996的声音。我们是否从底层来理智的分析这一过程。那些抱怨加班多、996的人有多少离开了那个让他发声的工作,去找一份轻松悠闲的工作度日?...

(22)ASP.NET Core EF创建模型(索引、备用键、继承、支持字段)

.索引 索引是跨多个数据存储区的常见概念。尽管它们在数据存储中的实现可能会有所不同,但也可用于基于列(或一组列)更高效地进行查找。 1.1约定 按照约定,将在用作外键的每个属性(或一组属性)中创建索引。 1.2数据批注 不能使用数据批注创建索引。 1.3Fluent API 您可以使用熟知的API来指定单个属性的索引。默认情况下,索引不是唯一的。 复制代码 class MyContext : DbContext { public DbSet Blogs { get; set; } ...

Kubernetes WebSSH终端窗口自适应Resize

 追求完美不服输的我,一直在与各种问题斗争的路上痛并快乐着上一篇文章Django实现WebSSH操作Kubernetes Pod最后留了个问题没有解决,那就是terminal内容窗口的大小没有办法调整,这会导致的一个问题就是浏览器上可显示内容的区域太小,当查看/编辑文件时非常不便,就像下边这样,红色可视区域并没有被用到...

Git基本使用指南

一、概述 1. Git与SVN比较 目前用到最广泛的版本控制软件就是SVN和Git,那么这两者之间有什么不同之处呢? 1) SVN(Subversion)是集中式管理的版本控制器,而Git是分布式管理的版本控制器! 2) SVN只有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。 3) Git每一个终端都是一个仓库,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。每一次的提取操作,实际上都是一次对代码仓库的完整备份。 ...
青岛软件培训

可能你正在寻找一家靠谱的IT培训机构,学习一些专业的软件开发技术,找一份得体的工作。恰巧我们就是一家踏踏实实做教育的IT人才培养机构,我们咨询电话是 0532-85025005,如果你确实对IT感兴趣,我们不妨交流一下。

申请免费试听课程