- 博客(193)
- 资源 (3)
- 收藏
- 关注
原创 Kubernetes系列
进入之后在根目录,不支持 vim。那么我们的任务就是,自定义一个 centos,具备的特征是:进入之后要默认在 /hello 目录,支持vim。
2023-07-31 17:29:49 1070
原创 企业级开发中协同开发与持续集成持续部署
开发/缺陷分支只能合并稳定分支例如可以合并master分支,不可merge develop分支,作用是防止环境污染develop分支只能用于测试环境发布,不可直接合并到release分支,正确流程是在release分支合并开发/缺陷分支,具体看下面的表格。‘心形’工作流是我们团队目前稳定使用的工作流,它新分支建立必须基于‘干净的分支’master,它跟gitflow不一样的是,feature推动整个研发周期进行,develop分支只作为测试环境的测试分支。当然也可以合到下一个版本的 release 分支。
2023-07-31 11:24:19 971
原创 Python微服务架构设计&使用asyncio提升性能
与单体架构相比,微服务架构有几个好处,包括但不限于独立的可扩展性和灵活部署特性。BFF 是一种微服务模式,它聚合了来自多个下游服务的调用。我们已经学习了如何将微服务架构应用到电子商务用例中,如何使用 FastAPI 创建多个独立的服务。使用 asyncio 实用函数(如 wait)来确保 BFF 服务保持弹性,并对下游服务的故障做出响应。创建了一个实用程序,管理 HTTP 请求的重试。实现了一个基本的断路器模式,以确保服务故障不会对其他服务产生负面影响。
2023-07-13 11:18:38 1538
原创 TDengine数据建模
工业互联网中有大量的时序数据需要存储和处理,tdengine是一个开源的、国产的、云原生时序数据库,tdengine不是基于其他第三方开源软件高级封装,是涛思数据完全自主研发的。同一类型的采集点用一个超级表描述,也就是一个表结构Schame和静态标签Schame,利用超级表作为模板,生成子表-对应各采集单。建议为数据特征相同的表创建一个数据库,每个库可以配置不同的存储策略。1. 数据采集的频率 1s/2s/3s/4s/5s。timestamp:时间戳。voltage: 电压。groupID:组ID。
2023-07-13 10:51:15 1246
原创 解决Pycharm中右键运行python程序时出现Run ‘pytest in XXX.py
1、在Pycharm中右键运行python程序时出现Run ‘pytest in XXX.py’ ,这是进入了Pytest模式。进入到File->Settings->Tools->Python integrated Tools页面。找到Testing下的Default test runner。把Pytest设置为Unittests就可以了。
2023-07-13 09:48:22 224
原创 C#从入门到入坟(原创不易,转载请注明出处)
抽象方法必须在抽象类中Person.cs// 抽象方法必须放在抽象类中,否则会报错set;set;// 声明抽象方法,抽象方法在父类中不需要写明函数体// 抽象方法的目的是规范子类的方法名,形参、和返回值,如果不是抽象方法,子类可以重写也也可以不重写子类实现子类必须重写抽象类的抽象方法Console.WriteLine("学生放学后开始玩耍!");// Console.WriteLine("学生放学后开始玩耍!");//}
2023-05-14 16:44:06 2264 2
原创 ChatGPT把Python抬到了他不该在的高度!
在国内,豆瓣、知乎、早期的字节跳动Python都是第一语言,当然还有很多大厂都有Python的应用场景,我们自己的项目「次幂数据」也是用的Python。首先,GPT模型本身就是基于PyTorch和TensorFlow这两个AI框架实现的,而他们本身就是Python开发的(内核不是),Web后端这块用Python完全可以无缝对接,整个技术团队一种技术栈就搞定了,但凡是多引入一种技术就多些成本。ChatGPT的业务模型非常简单,就是一个纯聊天服务,像国内各种gpt镜像网站,一个熟练的全栈工程师,一天就搞定了。
2023-05-02 23:14:31 166
原创 IO多路复用
accept 可读事件recv 可读事件send 可写事件事件的可读还是可写是站在用户态的角度说的,如果内核的接收缓冲区有数据,那么就是可读的,如果内核的发送缓冲区没有满,那么就是可写的。
2023-03-28 16:06:27 317
原创 Go基础-Maps
map 是在 Go 中将值(value)与键(key)关联的内置类型。通过相应的键可以获取到值。a = make(map [ string ] float64) } a [ "张三" ] = 12000.0 a [ "李四" ] = 12500.0 fmt . Println(a) }1 先定义一个变量2 使用make进行初始化3 赋值a[“张三”] = 12000.0。
2023-02-25 18:35:49 598
原创 Go基础-数组和切片
关键字 变量名 数组长度 数组元素类型 var a [ 3 ] int定义一个数组,初值为[0,0,0,…]获取数组元素并给数组元素赋值设置元素语法var a [ 3 ] int a [ 0 ] = 12 // 给第一个元素赋值 a [ 1 ] = 13 // 给第二个元素赋值 a [ 2 ] = 14 // 给第三个元素赋值 fmt . Println(a) // [12 13 14] }读取元素语法i < len(a);i ++ {
2023-02-25 14:43:39 516
原创 Go基础-switch
switch语句是选择分支语法case x : {// 选择体 } case x + 1 : {// 选择体 } default : {// 默认体 } }
2023-02-23 21:01:07 49
原创 Go基础-if-else
语法if语句// condition为ture的代码块 }if-else-语句// condition为ture的代码块 } else {// condition为false的代码块 }if-else if-else语句} else {
2023-02-21 21:25:13 44
原创 Go基础-函数
函数是将输入数据通过一系列算法运算之后,输出对应的结果。函数一般都是一些特定的功能块,实现某一种功能的封装,降低代码的冗余性语法// 关键字 函数名 函数参数 返回参数 func functionname(params paramstype) returntype {// 函数体 }测试函数的参数和返回值类型不是必须的。
2023-02-19 18:14:57 352
原创 Go基础-常量
与其他语言一样,Go中的常量一旦被赋值就不能再被修改为其他值。通过关键字const定义常量语法//关键字 常量名 常量值 const age 10测试常量的值会在编译的时候确定。因为函数调用发生在运行时,所以不能将函数的返回值赋值给常量。
2023-02-19 16:09:15 43
原创 Go基础-类型
大小:在 32 位系统下是 32 位,而在 64 位系统下是 64 位。范围:在 32 位系统下是 0~4294967295,而在 64 位系统是 0~18446744073709551615。int类型根据底层平台不同,具有不同的数据长度,32位电脑的int类型占4个字节,范围是int32的范围、64位电脑的int类型占8个字节,范围是int64的范围。uint64:表示 64 位无符号整型大小:64 位范围:0~18446744073709551615。Go是强类型语言,不支持C语言那种隐式类型转换。
2023-02-19 15:42:00 489
原创 Go基础-变量
Go中变量指定了某存储单元的名称,该存储单元会存储特定类型的值,在Go中,有多种语法用于声明变量。如果定义的变量有初始化值,则不用定义变量类型,Go会自动推断变量的类型。:= 符号左边的变量个数与右边的初始化值的个数一定要相同。Go是强类型语言,不能将类型a的变量赋值为类型b的值。:= 符号左边的值必须都有初始化值,否则报错。Go语言支持对未初始化的变量进行简短声明。简短声明:=左侧必须包含一个未初始化的变量。如果简短声明:=左侧都是初始化的,则会报错。go给出的报错信息还是很清晰的。
2023-02-18 20:29:42 419
原创 Go基础-Hello world
package main - 每一个 Go 文件都应该在开头进行 package name 的声明(译注:只有可执行程序的包名应当为 main)。包(Packages)用于代码的封装与重用,这里的包名称是main。func main() - main 是一个特殊的函数。fmt.Println(“Hello World”) - fmt 包中的 Println 函数用于把文本写入标准输出。import “fmt” - 我们引入了 fmt 包,用于在 main 函数里面打印文本到标准输出。
2023-02-18 19:22:14 469
原创 Go基础-环境安装
双击开始安装并且遵循安装提示,会将 Golang 安装到 /usr/local/go 目录下,同时 /usr/local/go/bin 文件夹也会被添加到 PATH 环境变量中。在 https://golang.org/dl/ 下载 MSI 安装程序。双击开始安装并且遵循安装提示,会将 Golang 安装到 C:\Go 目录下,同时 c:\Go\bin 目录也会被添加到你的 PATH 环境变量中。在 https://golang.org/dl/ 下载 tar 文件,并解压到 /usr/local。
2023-02-18 17:27:14 615
原创 万字长文掌握Python高并发
高并发一直在软件开发遇到的老大难问题,软件承载并发的能力也是一个核心性能点之一,这篇文章主要讲解Python语言的高并发工具,主要包括多进程、多线程、协程等。同时聊聊python的全局解释器锁对多线程的影响。
2023-02-15 16:32:23 1592 1
原创 Pycharm无法加载文件 D:\Envs\py_venvs\venv_mall_py3.6\Scripts\activate.ps1,因为在此系统上禁止运行脚本
【代码】Pycharm无法加载文件 D:\Envs\py_venvs\venv_mall_py3.6\Scripts\activate.ps1,因为在此系统上禁止运行脚本。
2023-02-04 18:26:18 134
原创 npm全局安装&局部安装&指令列表
安装完成之后保存在package.json 的dependencies中。安装之后保存在package.json的devdependencies中。删除全局模块,同时清除package.json。全局安装,node包会被下载到全局目录下。本地安装,安装在当前文件夹下面。
2023-02-02 11:32:53 1468
原创 nvm(node版本管理)
下载windows版本的安装包,按照提示点击下一步,傻瓜式安装完成。同样的项目,高版本的node可能导致项目跑不起来。安装vue2.x的时候,node版本只支持偶数版。使用制定版本node。可指定32/64位。显示node是运行在32位还是64位。官网同时还给出了非常详细的指令文档。设置存储不同版本node的目录。卸载指定版本node。
2023-02-01 20:14:47 402
原创 Python虚拟环境大总结(virtualenv pipenv)
virtualenv命令的工具有一些不好用,virtualenvwrapper是对virtualenv的包装,能够很好的使用虚拟环境。如果配置了环境变量WORKON_HOME,那么默认创建在环境变量所在的路径中。设置环境变量值为PIPENV_VENV_IN_PROJECT=True。在当前目录下创建一个新的目录test1,这就是虚拟环境的目录。通过 -p 或者–python 参数指定python版本。workon venv_name(虚拟环境名)在当前目录中创建虚拟环境。指定python版本。
2023-02-01 16:54:31 855 2
原创 django笔记《模型和数据库一》
任何软件系统都离不开对数据表的增删改查,django提供了ORM框架来操作数据表,当让也支持原生SQL查询ORM框架中的对应关系大概如下ORM数据库表类数据库的一张表类变量数据库表中的字段实例对象数据库中的一条记录通过操作ORM类的实例对象,操作数据库中的表。留白重写save()方法,选择性保存。
2023-01-02 17:10:23 576
原创 django笔记《内置用户认证系统》
Django是一个大而全的python web框架,Django 自带一个用户验证系统。它负责处理用户账号、组、权限和基于cookie的用户会话。一般用户验证系统有两方面的功能,分别是认证和权限:认证判断这个用户是不是本系统的用户权限权限决定已经认证后的用户具备哪些权限,可以完成哪些操作虽然django的auth模块已经能够满足大部分的场景需求,但是有一些场景需要进行定制认证系统。这里是一个兼容admin的自定义的用户app的例子。
2022-12-31 16:00:15 1038 1
原创 Python模块中的__all__列表属性表示什么?
一个xx.py文件就是一个python模块 module当一个xx.py中定义__all__属性的时候,会影响从模块导入公共变量。一个包含__init__.py文件的文件夹称为包 packagea.pyb.pyb.py
2022-12-07 09:42:29 177
原创 <源码探秘CPython>-读懂Python解释器必须要会的C语言知识
曾几何时,对Python的源码开始好奇,随着对Python的依赖越来越深,特别想知道guido是怎么在短时间内设计出了这么牛逼的语言。工作中,不只听到一个人在吐槽Python"速度慢",但是你真的知道Python慢的原因吗?很多人都说Python是一门解释型语言,是一门脚本语言,不需要编译就直接执行,真的是这样吗?还有人在不使用Python多线程的情况下依然吐槽GIL。。。。
2022-11-07 16:07:06 693
原创 django: ‘staticfiles‘ is not a registered tag library. Must be one of:
解决方案:修改配置文件:
2022-10-24 15:53:54 536
原创 TDengine与InfluxDB性能对比
为帮助用户了解TDengine Database的指标,特将TDengine与InfluxDB从数据库的读、写、查询、压缩比等方面进行了对比测试。从测试结果上看,TDengine的性能远超InfluxDB,写入性能约为5倍,读取性能约为35倍,聚合函数性能约为140倍,按标签分组查询性能约为250倍,按时间分组查询性能约为12倍。
2022-10-18 12:48:12 3013 1
原创 VMware安装欧拉系统
至此,openEuler22.03 LTS 操作系统已经成功部署在VMware上面。选择Linux,版本CentOS 8 64位。选择磁盘并选择将虚拟磁盘拆分成多个文件。部署内存、处理器、硬盘、ISO镜像文件。默认安装了python3.9.9环境。选中OpenEuler,点击回车。创建新虚拟机,选择典型模式。选择稍后安装操作系统。
2022-10-12 09:31:43 4287 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人