技术文章

go-admin在线开发平台学习-3[细节解析]

主宰稳场 提交于 2021-02-18 17:49:39
本章节主要的内容是对go-admin中的一些有趣编码进行分析,为自己以后提供一些借鉴 使用cli方式启动项目 使用cobra[眼镜蛇]完成强壮cli的工具,确保稳定。 使用cli的方式启动项目的好处显而易见,可以在进行配置的自定义化,而不是固定的使用某个配置文件中的信息。在一些需要频繁更换命令参数的场景下尤为有效。 cobra的使用有一个默认的规定,即新建一个 cmd 文件夹,基于这个文件夹定义自己的命令结构 1、小型项目 cmd 文件夹 -- root.go 根命令 -- version.go 版本命令【子命令】 2、中/大型项目 cmd 文件夹 --version 文件夹 ​ --server.go --config 文件夹 ​ --server.go -- root.go 入口指令 不同的项目选用不同的方式进行命令的定义。 监听中断信号 // 等待中断信号以优雅地关闭服务器(设置 5 秒的超时时间) quit := make(chan os.Signal) signal.Notify(quit, os.Interrupt) <-quit fmt.Printf("%s Shutdown Server ... \r\n", tools.GetCurrentTimeStr()) if err := srv.Shutdown(ctx); err != nil { log.Fatal(

计算机学长说:大学4年,一定要学会这些东西

爷,独闯天下 提交于 2021-02-18 17:49:28
本文主要分四个大部分来说 学习专业课程 学习通用课程 学习工程知识 学习怎么学习 一、学习专业课程 学习计算机的专业课程可能都会比较难,但是这也是区分你和半路出家的程序员的区别,不然比起哪些强调实战和经验但是基础不太好的老手,你虽然作为计算机学生,但是好像没什么优势~ 这些专业课程和你的水平下限,或者和你的入门门槛关系可能不是特别大,但是决定了你的上限 1.学习数据结构 学习数据结构,可以让你知道什么工具最适合解决什么问题,从而大幅提升效率比如,拧螺丝这件事情,学了数据结构的人知道用扳手,没学数据结构的人可能直接用手就干起来了,虽然都能有点用,后者手疼啊 !! 推荐一个可视化学习数据结构和算法的网站: https://visualgo.net/zh​visualgo.net 至少有个动画呀哈哈哈哈,学起来也会舒服一些 2.计算机网络 现在计算机专业,以后大概率去互联网,计算机网络都一点,那不是心态崩了,只要去做编程,就需要接触很多网络相关的知识,这会为你以后的调试代码降低很多难度的,我知道你一定不想靠运气调试代码。 3.语言 这里的语言泛指计算机语言,一个计算机的学生你难道说你不会一种计算机语言??大学里c什么的肯定是必学的吧,其他的看兴趣学就成建议学一门静态语言:例如go,java,学一门动态语言:例如:python,js 为啥要这样呢,静态语言和动态语言的差异是很大的

《工业互联网创新发展行动计划(2021-2023年)》解读

蹲街弑〆低调 提交于 2021-02-18 17:44:05
《工业互联网创新发展行动计划(2021-2023年)》解读 近日,工业互联网专项工作组印发《工业互联网创新发展行动计划(2021-2023年)》(工信部信管〔2020〕197号,以下简称《三年行动计划》)。现就《三年行动计划》有关内容解读如下: 1《三年行动计划》的出台背景是什么? 工业互联网 是新一代信息通信技术与工业经济深度融合的全新工业生态、关键基础设施和新型应用模式。它以网络为基础、平台为中枢、数据为要素、安全为保障,通过对人、机、物全面连接,变革传统制造模式、生产组织方式和产业形态,构建起全要素、全产业链、全价值链全面连接的新型工业生产制造和服务体系,对支撑制造强国和网络强国建设,提升产业链现代化水平,推动经济高质量发展和构建新发展格局,都具有十分重要的意义。 过去三年是工业互联网起步发展期,工业和信息化部会同工业互联网专项工作组各单位,实施《工业互联网发展行动计划(2018-2020年)》,发布实施十余项落地性文件,不断完善政策体系,实施工业互联网创新发展工程,带动总投资近700亿元,遴选4个国家级工业互联网产业示范基地和258个试点示范项目,打造了一批高水平的公共服务平台,培育了一批龙头企业和解决方案供应商。网络基础、平台中枢、数据要素、安全保障作用进一步显现,工业互联网新型基础设施不断夯实,新模式新业态创新活跃,产业生态不断壮大,各地方、产业各界共识不断凝聚

JavaScript ES6 新特性详解

点点圈 提交于 2021-02-18 17:40:57
JavaScript ES6 带来了新的语法和新的强大功能,使您的代码更现代,更易读 const , let and var 的区别: const , let 是 ES6 中用于声明变量的新关键字。 const const定义的变量不可以修改,而且必须初始化 var var定义的变量可以修改,如果不初始化会输出undefined,不会报错 let let是块级作用域,函数内部使用let定义后,对函数外部无影响 这对于定位选择器非常有用。例如,当我们有一个触发事件的按钮时,或者当您想在 JavaScript 中选择 HTML 元素时,请使用 const 而不是 var。这是因为 var 会被提升,当不想重新分配变量时,最好使用 const。 // ES5 var MyBtn = document.getElementId( 'mybtn'); // ES6 const MyBtn = document.getElementById( 'mybtn'); 在上面的代码中,const 不会更改,也不能重新分配。如果您尝试为其赋予新值,则会返回错误。 let name = "Said"; name = "Rick"; console.log(name); // Rick let 可以重新分配并获得新的价值。它创建了一个可变变量。 let 与 const 相同,因为两者都是块级作用域

MongoDB增删改查

前提是你 提交于 2021-02-18 17:40:28
一:启动mongodb 1、linux系统(Ubuntu):sudo server mongodb start 2、window系统:mongod,启动之后不能关闭cmd窗口,必须挂起 二:运行mongodb 命令:mongo 三、创建数据库 使用use 命令创建数据库----有就切换,没有就创建数据库 命令:use 数据库名 切换数据库 命令:use 数据库名 eg: 查看当前数据库: 查看所有数据库 销毁数据库 四:创建集合 在 MongoDB 中,一个数据库包含多个集合,类似于 MySQL 中一个数据库包含多个表;一个集合包含多个文档,类似于 MySQL 中一个表包含多条数据。 可以把集合记为表,文档记为一条记录。 命令:db.createcolleciton("school") 查看所有集合: 命令:show collections 五:插入数据 插入数据有两个命令 命令:db.school.insert() 命令:db.school.save() insert 和 save 的区别:为了方便记忆,可以先从字面上进行理解,insert 是插入,侧重于新增一个记录的含义;save 是保存,可以保存一个新的记录,也可以保存对一个记录的修改。因此,insert 不能插入一条已经存在的记录,如果已经有了一条记录(以主键为准),insert 操作会报错,而使用 save

Win10企业版转专业版

不羁岁月 提交于 2021-02-18 17:39:08
原文地址: https://jingyan.baidu.com/article/86112f136624322737978797.html 转换ISO镜像下载地址: ed2k://|file|cn_windows_10_consumer_editions_version_1803_updated_march_2018_x64_dvd_12063766.iso|4593778688|5B734D03EAE5033D99DB1E1541BAC46D|h=OEEZHRRUXGENUUG2E4X52JEAHHZTRCBR|/ 有时候我们安装了Windows10系统以后,在激活的时候可能输入了企业版的序列号这样我们安装结束后,才发现自己安装的是win10企业版,那么我们怎么将安装的Windows10企业版系统降级为专业版系统呢,基本方法也是系统内安装Win10专业版系统,有些朋友不熟悉,所以这里小编介绍下 Win10企业版降级专业版_Win10企业版转专业版的操作方法 ,提供大家需要参考。 工具/原料 Win10企业版降级专业版_Win10企业版转专业版【Win10专业版ISO文件】 Win10企业版降级专业版_Win10企业版转专业版 Win10专业版转企业版是可以通过企业版的激活码直接进行转换的 ,小编以前写过这样的经验,

【高等数学】函数与极限

穿精又带淫゛_ 提交于 2021-02-18 17:38:22
本文为高等数学学习总结,讲解函数与极限。欢迎交流 映射与函数 函数的概念 函数通常简记为: y = f ( x ) , x ∈ D y=f(x),\quad x∈D y = f ( x ) , x ∈ D ,其中 D D D 称为定义域,记作 D f D_f D f ​ 。值域记作 R f R_f R f ​ 或 f ( D ) f(D) f ( D ) 不超过 x x x 的最大整数称为 x x x 的整数部分,记作 [ x ] [x] [ x ] 。注意: [ − 3.5 ] = − 4 [-3.5]=-4 [ − 3 . 5 ] = − 4 函数的特性 有界性 若 f ( x ) ≤ K 1 f(x)\le K_1 f ( x ) ≤ K 1 ​ ,则 f ( x ) f(x) f ( x ) 有上界;若 f ( x ) ≥ K 2 f(x)\ge K_2 f ( x ) ≥ K 2 ​ ,则 f ( x ) f(x) f ( x ) 有下界。且上下界不唯一 有界: ∃ M > 0 \exists M>0 ∃ M > 0 ,使得 ∣ f ( x ) ∣ ≤ M |f(x)|\le M ∣ f ( x ) ∣ ≤ M 。函数有界 ⇔ \Leftrightarrow ⇔ 函数有上界也有下界 无界: ∀ M > 0 , ∃ x 1 ∈ X \forall M>0,\exists x

常用的EXCEL公式

╄→尐↘猪︶ㄣ 提交于 2021-02-18 17:37:38
一、判断某个数据与某个区域数据是否重复 =IF(ISERROR(MATCH(A1,C1:C5,0)),"不重复","重复") 二、批量删除单元格最后两位 =SUBSTITUTE(A2,RIGHTB(A2,2),"",1) 三、批量替换身份证后四位为* =mid(c2,1,len(C2)-4)&"****" 从第7列开始替换4位。 =REPLACE(A1,7,4,"****") 四、身份证号算男女 =IF(MOD(MID(E2,17,1),2),"男","女") 五、计算年龄 =DATEDIF(TEXT(MID(E2,7,8),"#-00-00"),TODAY(),"Y") 六、提出出生日期 =IF(LEN(G2)=15,CONCATENATE("19",MID(G2,7,2),"-",MID(G2,9,2),"-",MID(G2,11,2)),CONCATENATE(MID(G2,7,4),"-",MID(G2,11,2),"-",MID(G2,13,2))) 七、身份证号码校验 =IF(LEN(A2)=0,"空",IF(LEN(A2)=15,"老号",IF(LEN(A2)<>18,"位数不对",IF(CHOOSE(MOD(SUM(MID(A2,1,1)*7+MID(A2,2,1)*9+MID(A2,3,1)*10+MID(A2,4,1)*5+MID(A2,5,1)*8+MID

如何在centos6和centos7上部署nfs共享服务器和客户端

倾然丶 夕夏残阳落幕 提交于 2021-02-18 17:36:59
nfs共享服务为中小型企业在存储上提供了有效的节省空间,许多大型的网站也在使用nfs,如百度和阿里等,下面结合自己所学的知识,阐述如何在centos6和centos7下配置nfs。注:除了必要的说明外,未说明的命令代表centos6和7的命令是一样的。 一、服务器端: 1、首先在服务器端禁止selinux和防火墙(测试环境下); setenforce 0  ----临时禁止selinux; service iptables stop  ---在centos6下停防火墙, systemctl stop firewalld  -----在centos7下停防火墙; 2、下载软件包 nfs服务依赖于rpc服务,nfs服务只有在rpc服务内注册后,nfs客户端才能检测到服务器端的nfs服务端口; rpm -qa|grep -E 'nfs-utils|rpcbind'  ----使用grep-E多过滤查询是否已经存在来nfs和rpc的软件包 rpm -qa nfs-utils rpcbind  ---检查系统是否已经存在来nfs和rpc的软件包,如果没有,测执行下面的下载命令; yum -y install nfs-utils rpcbind  -----使用yum源安装rpc和nfs服务; 3、启动rpc和nfs /etc/init.d/rpcbind start  ---