语义化的版本控制: 用一组简单的规则及条件来约束版本号的配置和增长
作为一位负责任的开发者,你理当确保每次包升级的运作与版本号的表述一致。现实世界是复杂的,我们除了提高警觉外能做的不多。你所能做的就是让语义化的版本控制为你提供一个健全的方式来发行以及升级包,而无需推出新的依赖包,节省你的时间及烦恼。
如果没有某个正式的规范可循,版本号对于依赖的管理并无实质意义。将上述的想法命名并给予清楚的定义,让你对软件使用者传达意向变得容易。一旦这些意向变得清楚,弹性(但又不会太弹性)的依赖规范就能达成。
如果你对此认同,希望立即开始使用语义化版本控制,你只需声明你的函数库正在使用它并遵循这些规则就可以了 ...
除了最通用的Array以外,kotlin中还有一类容器统称为Colletion(集合),他们有
List
List:继承Collection。一个范性有序的只读集合。因为有序,所以,我们可以使用get(position)等查询的方法
MutableList:继承List,MutableCollection。一个有序集合。并额外提供了add/remove元素的方法
Set
Set:继承Collection。一个无序并不支持重复元素的集合
MutableSet:继承Set,MutableCollection,一个无序的集合并且不支持重复元素。但是,支持add/remove元素
Map ...
初识 Mockito 这个测试框架后,我们要使用 Mock 的属性创建一个被测试类实例时,大概会下面这么纯手工来打造。
手工过程见: https://www.jianshu.com/p/bb705a56f620
如果所有的 Mock 对象全部通过手工来创建,那就不容易体现出 Mockito 的优越性出来。因此对于被测试对象的创建,Mock 属性的注入应该让 @Mock 和 @InjectMocks这两个注解大显身手了。
Mockito能力
@Mock:对函数的调用均执行mock(即虚假函数),不执行真正部分。
@Spy:对函数的调用均执行真正部分。
@InjectMocks:创建一个实例, ...
笔记内容大多来自:尚硅谷SpringCloud框架开发教程
跟做笔记:https://blog.csdn.net/MOKEXFDGH/article/details/107209899
跟做工程代码: https://github.com/liusCoding/springcloud-2020、https://gitee.com/exclusiver/springcloud2020
MVN配置
每个module的pom配置文件中最重要的三个:GAV即 groupId、artifactId、version
dependencyManagement声明依赖的版本,可以起到作用:
...
@ReuqestBody和@RequestParam
这两个注解都是在Controller某个Mapping函数的形参前加上的,但两个具体有什么区别呢?在使用的时候我们该如何选择呢? 这跟我们希望用户以什么形式来请求接口有关。
众所周知,请求头的Content-type有多个,如
常见的媒体格式类型如下:
text/html : HTML格式
text/plain :纯文本格式
text/xml : XML格式
image/gif :gif图片格式
image/jpeg :jpg图片格式
image/png:png图片格式
以application开头的媒体格式类型:
applicat ...
自己在写博客的时候,通过图片来表达自己的思路无疑是种非常有效的方法,平常我的笔记都是通过hexo生成的,因此保存在本地路径即可。但是如果想把文章发表在第三方的平台上,那么这些相对路径的图片在上传过程中就无法被检索,因此如果能在一个大家都能访问到的地方存放这些图片,再给出这些地方的链接时那就解决了这个问题。要达到这个需求,则就需要使用OSS对象存储服务。
这边我推荐的是七牛云。七牛云在注册认证后有10G永久免费空间,每月10G国内和10G国外流量,速度相当快,七牛云是国内专业CDN服务商,插件支持比较多,有免费SSL证书,但https流量收费。同时七牛云还会提供30天的测试域名,不过要注意的一 ...
Cloud 微服务全家桶
微服务开发的主流技术栈
服务注册中心
:error:eureka 停止更新
❌consul
zookeeper
⭐️nacos
服务负载与调用
❌ netflix oss ribbon ==> spring cloud loadbalance
netflix feign ==> Spring cloud OpenFeign
容量限流(熔断)
❌hystrix: 最先的老大哥
resilience4j:国外使用较多
⭐️spring cloud alibaba sentinel
配置中心
❌spring cloud config
...
pandas
to_numeric:类别离散化
参数 描述
arg scalar, list, tuple, 1-d array, or Series
errors {‘ignore’, ‘raise’, ‘coerce’}, default ‘raise’
downcast {‘integer’, ‘signed’, ‘unsigned’, ‘float’} , default None,指定转换的类型,默认返回float64或int64
1234567891011121314151617181920212223242526272829>>> s = pd.Series ...
时间操作
TIME_TO_SEC
MySQL TIME_TO_SEC(time) 函数返回将参数 time 转换为秒数的时间值,转换公式为“小时 ×3600+ 分钟 ×60+ 秒”。
12345678910111213mysql> SELECT TIME_TO_SEC('15:15:15');+-------------------------+| TIME_TO_SEC('15:15:15') |+-------------------------+| 54915 |+----------------- ...
写代码的时候一直记错库下对应的图片操作函数名以及他们的返回值类型,干脆写个笔记记录下。
图片读取相关的包:
matplotlib
PIL/
cv2
numpy
读取
matplotlib.pyplot / pylab
12345678import pylab as plt# from matplotlib import pyplot as pltimport numpy as npimg = plt.imread('examples.png')print(type(img), img.dtype, np.min(img), np.max(img))[out](<type 'n ...
组件
RigidBody
刚体,会给物体增加重力
spring joint:
弹簧关节,可以连接两个刚体,使得两个物体能够像弹簧一样运动。
Box Collision
增加碰撞检测
图片渲染器
Sprite精灵,游戏开发中指一张图片
Sprite Render 图片渲染器,是用来渲染图片的组件
1234567891011// 随机生成怪物头像void createMonster(){ float x = Random.Range(-2, 2); float y = 5; GameObject monster = Instantiate( ...
Mongodb学习
创建数据库-集合(表)
使用指定数据库(没有会创建): use DATABASE_NAME, 如果数据库不存在,则创建数据库,否则切换到指定数据库。
如: use douban, 此时db就变成了douban,之后db.xxxx()都默认在这个数据库下操作
查看所有数据库,可以使用 show dbs
创建集合:db.createCollection(name, options)
随意创建集合, db.createCollection("top250");
options 可以是如下参数:
字段
类型
描述
cap ...
术语
–微服务
–云化
–分布式
–高并发
–高可用
架构角色
探索者
设计师
倡导人
到底如何区分什么是架构、框架、模式和平台 ?
设计模式<框架<架构<平台,从复用角度讲,设计模式是代码级复用、框架是模块级复用、架构是系统级复用、平台是企业应用级复用。
模式:分为代码模式、设计模式、框架模式这些
设计模式有不同的分类,如下
创建型设计模式,如工厂方法(Factory Method)模式、抽象工厂(Abstract Factory)模式、原型(Prototype)模式、单例(Singleton)模式,建造(Builder)模式等
结构型设计模式,如合成(Com ...
@vue/cli-init
vue init 是vue-cli2.x的初始化方式
vue init : 需要npm i -g @vue/cli-init
vue init webpack [project-name], webpack为模板<generate a project from a remote template>,然后按照交互信息提示输入即可完成工程创建
init创建工程时,交互信息中有一个比较有意思的是选择包管理工具: npm、yarn,两者见
@vue/cli
会让选择Vue2还是Vue3
vue create router_project: ...
包管理工具
npm
npm install <package_name> --dev
npm init然后根据交互信息创建工程
npm install 根据目录下package.json安装依赖
npm run dev执行package.json中定义的scripts.dev指令
yarn
yarn add <package_name> --dev
yarn init然后根据交互信息创建工程
yarn 根据目录下package.json安装依赖
yarn run dev执行package.json中定义的scripts.dev指令
共同点:
两个在i ...
js判断字符串是否为空
最近写了点前端代码,记录一下常用的shortCode
12345678910111213// 方法一:直接使用条件语句if判断function isEmpty(str) { if(typeof str== null || str== "" || str== "undefined") { return true; } else { return false; }}// 方法二:根据字符串的length来判断var strings = ''; if (string ...
前端进行网络请求的三种方式
XHR技术
基于XMLHTTPRequest技术实现的,通过调用原生的XML对象实现的,非常的冗余==>ajax技术
ajax
Jquery.$ajax
123456789101112131415161718192021222324// 有参数,则增加data字段,有请求头则增加headers字段,有错误处理增加error字段// 默认是按照表单提交post方法,data中虽然是json但是提交时转成表单$.ajax({ url:"demo_test.txt", data:{a:10}, success: ...
前端
上传
前端上传主要是把文件发送过去,一般采用表单的形式,或者也可以针对上传接口发送请求
表单
123456<form action="http://127.0.0.1:5000/" enctype="multipart/form-data"> <input type="file" name="toupdate"/> # file的input不允许设置value <input type="submit" value="上传咯" /> # 按钮显示的文字</form># action为表单要提交到的路径, 必须 ...
今天又是女朋友打工人的一天,女朋友有需求,打excel打印出来。由于导出后行距太小,以及答案不明显,因此做了两个处理
每两行之间插入一行
将单元格内(A、xxx)的答案进行加粗
Excel中的宏指的是一段操作过程
VBA 中,过程是一切的开始,几乎所有的代码,都会被写在一个或多个过程里。实际开发中,通常一个过程,建议只完成一个特定的小目标。因此,我们的程序往往会包含多个过程。这就是 VBA 中过程概念存在的一个原因。
VBA 过程以 Sub 语句开始,以 End Sub 语句结束,包含一个或多个语句,完成一个特定的目标。
接受参数的过程基本语法如下:
123456Sub [过程名]([ ...