- 博客(31)
- 资源 (25)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 开启vblog日记
开启vblog日志一眼世界,一晃如今十几年已过,从进入大学时候,便加入了CSDN,刚进入大学的时候,从一位普通高中毕业进入新的校园进行更高的学业学习时,还不知道什么是计算机,什么是算法,什么是IT。只记得那时候手持砖头式的手机(里面仅有手机版QQ和贪吃蛇游戏),最牛的应该是使用2G网络上网打开页面的那种焦急迫切的心情,看着自带嵌入式浏览器上面的进度条,然后1分钟后开启了m.baidu.com,再然后激动的输入关键字进行内容搜索,你会兴奋不已的发现我的手机还是很智能的,一旁的大哥打开他那和火砖大小的大
2021-05-08 15:32:57
244
原创 第六章:代码库管理
简单来说,是项目程序源代码永久存储的管理系统,但代码库不仅仅这么简单的功能,包括众多的功能模块,如:集成CI,K8s自主私有化部署CD,仓库分组管理,仓库管理,镜像及包仓库,版本管理,API接口,web hook等。接下来我主要介绍一下代码库在DevOps中的关键依赖功能使用。
2022-12-21 13:39:31
1214
原创 k8s容器云执行ubuntu镜像提示illegal option -o pipefail
通过系统工具修改,系统也提供了一个重新配置默认shell的界面
2022-12-03 09:48:42
721
原创 第四章:测试管理
本章讲解测试管理,实际上devops里面的测试会单独拿出来进行管理,以前没有devops这个体系时,就会使用jira等系统进行迭代计划和测试管理,但现在devops的测试管理更加轻量级,不会出现测试管理过重,从而不能达到敏捷快速迭代。其中用例数据非常重要,包括了用例的前置条件,执行测试步骤,并且关联至团队空间里面的需求卡片,还可以定义用例优先级。有助于重要功能着重测试。提测管理用来帮助开发人员,在需求开发就绪后,发起提测,便于测试人员快速了解手头提测情况,也方便开发人员快速了解自己的提测是什么进度。
2022-11-29 21:59:30
297
原创 第三章:迭代计划
从此处开始,就要实现对需求的迭代开发过程啦,在敏捷开发模式中,提倡以迭代式开发产品,一次迭代可能发布某个或者某几个功能特性,一次迭代过程即包括这些新功能所需的所有开发任务及其他任务。本次涉及团队空间管理和迭代计划。
2022-11-28 21:12:28
343
原创 第二章:需求管理
本章节大多工作已经移动到第一章需求统筹,但需求统筹所包括的需求管理属于第一步,面临繁,多问题的处理,同时作为DevOps系统,那需要有自身的需求管理,实际也是接受被统筹管理确认过的需求,从而减少devops需求管理前期规划迭代消费的时间,可以快速高效进入迭代开发交付过程。大大的缩短了产研周期。
2022-11-28 21:09:33
255
原创 第一章:需求统筹
大家好!在前面的概述里面简单说了一下什么是需求统筹,与devops里面的需求管理又有什么区别和不同呢?我们接下来继续详细聊之。我们简单说一下统筹是为了实现什么?
2022-11-28 21:06:34
624
2
原创 Django CORS指南
CORS是一种允许不同域主机资源通信的机制。例如,使用Ajax请求是一种常用的方式。为了更好的阐述CORS如何工作,让我们假设一套web应用并绑定域名为domain.com,但是,为了节约用户信息,应用调用托管在另一个URL中的API上,例如:api.domain.com。当一个请求保存数据到api.domain.com上时,这时候服务会验证请求的头信息和请求资源。如果允许这个URL domain.com访问,它将返回正确的响应。如果这个域不允许,这个服务会返回错误。
2022-11-26 22:09:00
1213
原创 数据库访问的ORM对象关系映射是啥?
面向对象编程和关系型数据库,都是目前最流行的技术,但是它们的模型是不一样的。面向对象编程把所有实体看成对象(object),关系型数据库则是采用实体之间的关系(relation)连接数据。很早就有人提出,关系也可以用对象表达,这样的话,就能使用面向对象编程,来操作关系型数据库。
2022-11-23 12:58:15
227
原创 如何读取通用配置文件conf?
大家经常见到各种各样的配置文件格式,有json格式(JavaScript Object Notation),ini格式(Initialization File)yml(Yet Another Markup Language)标记语言等等。真实场景中常用于MySQL数据库my.cnf配置读取,或者在项目中进行配置文件读写操作等。至于写入实际上类似,先进行字典键值对组装,然后再写入文件结束。本次以python语言读取案例,典型读取操作。读取配置文件写法还有另一种形式。
2022-11-22 21:37:07
2449
原创 简单理解DevOps是啥?
每一个人的回答都是千奇百怪,不知道的人回答:“是develop吗?你把开发分支单词写错了”;听说过或者知道一点的人说:“这还不简单,不就是Develop和Operation,开发与运维的合并嘛!”;还有的回答是敏捷开发工具;或者是构建部署工具链;甚至有回答说:“DevOps就是一种思想和文化理念”。但这些回答都不全面,或者太偏。简单的回答就是构建一套完整的工具链来支撑从需求提出到需求交付,保证整个过程需求任务最小化单元,开发迭代高效,代码及构建安全,交付线上稳定,运行问题持续反馈。
2022-11-22 13:44:37
222
原创 Jenkins中执行.Net代码单元测试和覆盖率扫描
需要无论在传统的程序代码开发中还是现在的DevOps工具链中,都会必不可少的一步操作,那就是代码质量扫描(部分规模不大的公司或团队或许没有这个需要),大公司的需求不仅仅是代码质量扫描(漏洞,缺陷,bugs,坏味道等),还需要涉及到开发者代码质量健壮性,那就是代码的单元测试覆盖率(对开发者要求就会有所要求)。下面我来说说如何在工具链中集成C#语言的单元测试覆盖率扫描。方案先来个Jenkins pipeline详解初始化配置"SonarScanner.MSBuild.exe begin /n:
2021-06-07 15:27:20
397
1
原创 Django 单元测试TestCase
使用的包pip install coverage编写测试用例引用TestCase基类:django.test继承了python标准库unittest,所以自己的测试用例类继承django.test.TestCase即可:from django.test import TestCaseclass MyClassTestCase(TestCase): def SetUp(self): # 环境构造 pass def test_my_func(s
2021-05-30 09:03:45
1195
1
翻译 python里面的多进程和线程
python中的多进程与线程比较:你所要知道的!如果你不想了解下面的解释说明,那么你就会处于一直等待状态。如果你的程序和网络绑定,你就可以使用多线程。如果你的程序是和CPU绑定,那你就可以使用多进程。我们创建这篇指南文章,是因为我们将更好的看到线程与多进程的区别,我们发现这些信息并不是很难以理解。他们陷入越深,就没有真正触及到这些信息,这将有助于我们决定使用什么和如何实现它。什么是线程,你为什么要怎么做?其本质而言,python是一门线性语言,当你想要多一点处理能力时,线程模块就派上用场啦
2021-05-27 14:13:21
108
原创 如何理解RESTful架构
如何理解RESTful架构起源REST来源是Roy Thomas Fielding在他2000年的博士论文中提出的。REST名称解释1.缩写:Representational State Transfer的缩写。翻译是"表现层状态转化"。2.如果一个架构符合REST原则,就称它为RESTful架构。3.理解Representational State Transfer这个词组到底是什么?接着看。。。资源(Resources)1.REST的名称是表现层状态转化,实际上表示的是
2021-05-26 20:23:26
99
原创 GitLab 权限列表
权限列表操作GuestRepoterDeveloperMaintainerOwner下载项目√(1)√√√√留下评论√√√√√查看允许和拒绝的许可证√(1)√√√√查看许可证合规性报告√(1)√√√√查看安全报告√(3)√√√√查看相关系列表√(1)√√√√查看许可列表√(1)√√√√查看许可相关列表√(1)√√√√查看设计管理页面√√√√√
2021-05-25 14:32:41
1821
原创 (进)Python 中is和==的区别
问题is 和 == 是同一个概念吗?它们有什么本质性的区别?解答在Python中一切都是对象。Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。对象之间比较是否相等可以用==,也可以用is。is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。下面来看看具体区别在哪?is比较的是两个对象的id值是否相等,也就是比较两个对象是否为同一个实例对象,是否指向同一个内存地址。==比较的是两个对象的内容是否相等,默认会调用对象的
2021-05-24 23:57:46
175
原创 (进)python 计算一个列表里面的元素出现次数
需求随着人工智能,机器学习等普及,有Pillow图像识别。但当在平时写代码中遇见对一个列表中的元素重复出现的次数统计时,或者一段英文对话,需要你计算出本段文章内各个单词出现的次数时,当然可以采用以上高级的机器学习分词。但往往是一个简单的需求,却需要兴师动众的搬出大军进行搏杀。接下来我将采用简单的几行代码进行统计。解决方案1.首先采用遍历列表,取出元素进行判断是否在列表中,然后再记录改元素为key,次数加1为value的字典中。2.首次出现直接key:1,重复出现则取出key对应的value进行
2021-05-24 14:34:03
865
原创 Jenkins节点添加采用agent出错解决方案-not reachable
问题agent方式连接master出现无法连接,网络采用F5上做域名解析https://jks.xxx.com/ provided port:8081 is not reachable<2021-05-19 09:32:42> : at org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver.re https://jks.xxx.com/ provided port:8081 is not reachable解决方案Jenk
2021-05-21 09:54:49
1520
原创 Go闭包详解
闭包概念官方解释:所谓的“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这戏变量也是该表达式的一部分。先举例再解释function a(){ var i=0; function b(){ console.log(++i); document.write("<h1>"+i+"</h1>"); } return b;}$(function(){ var c=a()
2021-05-12 13:41:06
3056
原创 yum执行失败-修复rpm数据库(Fix rpmdb Thread died in Berkeley DB library)
问题当在CentOs上面执行yum安装操作时,出现以下错误,此时需要做以下操作来解决此问题。[root@centos ~]# yumerror: rpmdb: BDB0113 Thread/process 16994/140307288778816 failed: BDB1507 Thread died in Berkeley DB libraryerror: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fa
2021-05-12 10:52:43
390
4
原创 select查询组合生成insert into
需求当在MySQL数据库之间进行数据迁移时(数据量不大时,且表字段名称不相同时),便可以采用生成SQL 插入语句,然后在新数据库上之间SQL语句便可以完成插入。(Navicat工具可以实现,此处不表演了)仅演示使用select语句查询出结果,然后生成insert SQL ,最后执行SQL。操作通过select方式生成insert into语句# 通过select 将结果拼接成新的insert into语句,用于迁移使用。# 参考链接:https://www.jianshu.com/p/0937
2021-05-11 19:33:30
3100
原创 Golang应用
选择Golang语言1.执行性能:2.开发效率Go语言能做什么1.服务器编程2.处理日志3.数据打包4.虚拟机处理5.文件系统6.分布式系统7.数据库代理8.网络编程:web应用,API应用,下载应用9.云原生开发,云平台领域,内存数据库10.中间件国内企业或项目使用Go语言1.云计算基础设施领域:dockers,kubernetes,etcd,consul,cloudflare CDN,七牛云存储等。2.基础软件:tidb,influxdb,cockroachdb
2021-05-11 19:24:57
224
原创 (进)动画描述Python递归过程
Python 递归递归函数的优点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。使用递归函数需要注意防止栈溢出。在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。动画演示 Python递归动画
2021-05-11 15:33:29
205
原创 (进)Python MRO解析顺序(Method Resolution Order)
Python MRO 简述Python MRO (Method Resolution Order)当我们在涉及python多重继承的类中搜索属性时,将遵循顺序。首先,在当前类中进行搜索。如果找不到,搜索将移至父类。这是从左到右,深度优先。代码验证顺序:第一,解释器扫描M,然后扫描B,因为A-B是继承参数的顺序,再扫描X和Y后,最后扫描Z。顺序是X,Y,Z。按照深度优先扫描,X是来源于A,所以排在第一,最后,扫描类对象。>>> class A:
2021-05-11 14:36:51
251
原创 (进)函数super用法
需求当在Python中写类操作时,普通的类操作并不会用到的,当类之间继承操作时,第一个父类__init__里面定义的变量在子类继承时无法获取指定的变量,从而导致错误,下面是一堆官方解释,有耐心的话继续阅读。在我看来,相比于直接对超类调用未关联方法,使用函数super更直观,但这并非其唯一的优点。实际上,函数super很聪明,因此即便有多个超类,也只需调用函数super一次(条件是所有超类的构造函数也使用函数super)。另外,对于使用旧式类时处理起来很棘手的问题(如两个超类从同一个类派生而来),
2021-05-08 23:46:50
107
原创 (进)找出字典中最大值value及其key
需求前天写脚本时突然要对一个字典中的value值进行最大值筛选,然后将key关键字输出,我很自然就想起来列表max(list())就可以拿到了,哈哈,然后我很自然使用max(dict()),同时也出来结果。似乎大功告成,然后仔细一看发现max()是对字典是key进行取值的。In [1]: a = {'a':13, 'c': 12, 'z': 4, 'f':10} # 定义In [2]:In [2]: aOut[2]: {'a': 13, 'c': 12, 'f': 10, 'z': 4}
2021-05-08 23:28:13
1267
原创 Python调用sonar API操作实战
需求当Django项目遇见了调用第三方接口时,有很多方式对接,今天介绍持续集成系统与sonarqube系统对接操作实战,小试牛刀,先杀只鸡,慢慢的后面杀牛。方案接口模块开头# -*- coding: utf-8 -*-import requests # http请求模块from django.conf import settings # 导入settings模块里面的配置信息from urllib.parse import urljoin # url解析模块import logging
2021-05-08 21:08:46
1643
2
原创 (进)Python中的*args 和 **kwargs使用
简述我先来告诉你一个事实, 其实并不是必须写成args 和kwargs。 只有变量前⾯的 (星号)才是必须的。你也可以写成var 和vars, ⽽写成args 和**kwargs只是⼀个通俗的命名约定。 接下来我么一起聊聊。*args解释*args 是⽤来发送一个非键值对的可变数量的参数列表给一个函数def test_var_args(f_arg,*args): #接受元组数据... print("first normal arg:",f_arg)... print("a
2021-05-08 16:19:48
98
原创 python处理两个json根据序号进行一对一组合
需求对两个列表(json数据个数相同)进行按照列表元素序号进行获取对应的元素进行拼接。然后进行数据库ORM多条件查询操作。其中需要查询表1中的ID,提供给表2中进行使用。如:l1=['联通3楼', '联通3楼', '联通3楼'],l2=['G04', 'G02', 'G01']结果l1.0=联通3楼l2.0=G04l1.1=联通3楼l2.1=
2018-01-09 15:53:35
1863
MySQL简明原理-pdf版.zip
2021-05-21
django起步到实现数据库交互.pdf
2021-05-09
Python职业生涯图谱.jpg
2021-05-08
Jira cluster版本(单机版本+集群版本)部署教程
2021-05-08
什么是python.pdf
2021-05-08
Zabbix企业级分布式监控系统
2018-01-09
MyEclips中js代码提示插件(spket)
2016-09-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人