- 博客(52)
- 收藏
- 关注
原创 Goland 执行Makefile中的命令,方便运行和Debug
如图,具体操作步骤如下:创建新配置选择Makefile自定义运行/调试配置名称选择Makefile文件填入执行参数,这个看Makefile文件的定义,比如我定义了 run 参数选择当前项目工作目录
2021-07-14 22:10:29 1765
原创 Kratos 集成Gin
Kratos 集成 Gin规范项目分层处理请求处理、响应编写路由routeKratos 集成gin注入 wire set中Kratos 可以在 .proto文件定义请求类型,URL,响应等等,如官方示例:service BlogService { rpc CreateArticle (CreateArticleRequest) returns (CreateArticleReply) { option (google.api.http) = { post:
2021-06-29 17:28:19 3349 6
原创 WPS Excel 模板设置与生成
WPS Excel 模板设置与生成背景根据给定的Excel生成其他excel。比如sheet1是个总表,sheet2 sheet3…是根据sheet1每行数据填充的同模板的分表。想做完sheet2的数据关联后,快捷的制作sheet3…核心知识点LOOKUP()函数的应用:LOOKUP(lookup_value,lookup_vector,result_vector)lookup_value:为函数 LOOKUP 在第一个向量中所要查找的数值。lookup_value 可以为数字、文本、逻辑值或
2020-12-04 23:26:21 2580
转载 PPT图转eps文件
PPT图转eps文件1. 先下载TeXLive2. 使用`pdftops` 命令1. 先下载TeXLivehttps://zhuanlan.zhihu.com/p/418554802. 使用pdftops 命令安装 texlive安装后,就已经安装了。语法pdftops [options] input.pdf [output.ps]例如,当前任务的解决方案是输入命令pdftops input.pdf input.epsPS:如何你觉得文件比较大,可以指定输出文件的dpi(i.e., 使
2020-11-27 21:56:17 1215
原创 YApi初识及安装
YApi在开始使用 YApi 之前,我们先来熟悉一下 YApi 的网站结构,这将让你快速了解YApi。登录与注册想要使用 YApi ,首先要注册账号。首页登录后进入首页,首页展示了分组与项目。此时你作为新用户,没有任何分组与项目的权限,因此只能搜索、浏览 “公开项目” 的接口,如果在首页找不到任何项目,请联系管理员将你加入对应项目。首页头部展示了当前所在的位置、搜索框、新建项目、查看文档和用户信息。首页左侧展示分组信息,“分组”是“项目”的集合,只有超级管理员可以管理分组。首页右侧是分
2020-11-18 14:25:17 1435
转载 实现node版本降级、升级及多个版本进行切换
解决方案(1)安装node版本管理模块nsudo npm install n -g下边步骤请根据自己需要选择(2)安装稳定版sudo n stable(3)安装最新版sudo n latest(4) 版本降级/升级sudo n 版本号比如需要8.4.0版:(5)检测目前安装了哪些版本的,执行命令:n如图,本人安装了四个版本,目前处于8.4.0:(6)切换版本(不会删除已经安装的其他版本)n 版本号比如切换到11.4.0版:n 11.4.0,运行后查看版本号 ,
2020-11-18 13:42:47 1647
原创 Golang——业务开发积累
日志service层记录业务逻辑日志,dao层不用在专门记录了。controller层记录参数校验日志,最好不要记录和业务想关的
2020-11-13 22:19:42 309
原创 Golang——为Go项目编写Makefile
为Go项目编写Makefile在main.go所在目录下新建一个 Makefile文件,填写以下内容:.PHONY: all build run gotool clean helpBINARY="test"all: gotool buildbuild: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o ${BINARY}run: @go run ./gotool: go fmt ./ go vet ./clean: @i
2020-10-30 18:59:51 1011
原创 Makefile初识
Makefile初识借助Makefile我们在编译过程中不再需要每次手动输入编译的命令和编译的参数,可以极大简化项目编译过程。Makefile教程make介绍make是一个构建自动化工具,会在当前目录下寻找Makefile或makefile文件。如果存在相应的文件,它就会依据其中定义好的规则完成构建任务。Makefile介绍我们可以把Makefile简单理解为它定义了一个项目文件的编译规则。借助Makefile我们在编译过程中不再需要每次手动输入编译的命令和编译的参数,可以极大简化项目编译过程。
2020-10-30 18:58:47 209
原创 VS code——便捷开发Go使用示例
VS code 便捷开发Go使用示例主要记录:Go 插件使用常用开发使用及快捷键操作Go 插件使用操作方式:命令式的操作:选中需要操作的内容按ctrl+shift+p,输入:go:相关命令回车,然后输入对应命令需要的参数。没有参数的就回车生效手动鼠标点选中内容右键弹出相关操作,选择go相关命令,如Go:Generate Unit Tests For Function点击命令,然后输入对应命令需要的参数。没有参数的就生效自动生成测试用例命令:Go:Gener
2020-10-27 18:15:08 1911
原创 GoFrame——数据校验库之结构体校验
GoFrame——数据校验之结构体校验GoFrame中gvalid模块实现了非常强大的数据校验功能,内置了40种常用的校验规则,支持单数据多规则校验、多数据多规则批量校验、自定义错误信息、自定义正则校验、自定义校验规则注册、支持struct tag规则及提示信息绑定等特性,是目前功能最强大的Go数据校验模块。目前我是使用gin来做路由部分,gin框架可以使用github.com/go-playground/validator进行参数校验,目前已经支持github.com/go-playground/va
2020-10-26 23:53:31 1631 1
原创 swagger——使用gin-swagger自动生成API文档
生成API文档在项目的根目录执行swag init -g cmd/main.go -g 后面所跟的为main方法在的位置
2020-10-26 18:14:02 468
原创 VS Code快捷键记录
VS Code快捷键记录自己常用VS code 快捷键额外的技巧:ctrl + shift + j : 快速打开 Chrome JavaScript控制器代码操作:ctrl + shift + - 前进ctrl + alt + - 回退alt + f 快速填充go struct 字段alt + a 快速补充json tagalt + i 快速import go package一 编辑1.快速选中当前单词 ctrl + d, 按多次会将和当前单词相
2020-10-20 11:29:53 307 1
原创 Deepin v20 正式版安装 Docker
Deepin v20 正式版安装 Docker简介关于 Deepin 中的 Docker在 Deepin 中安装 Docker 最新版的方法1.如果以前安装过老版本,要确保先卸载以前版本2.安装密钥管理与下载相关的工具3.下载并安装密钥4.查看密钥是否安装成功5.在 source.list 中添加 docker-ce 软件源(请先查看后面的 Note):6.更新仓库7.安装 docker-ce8.命令行查看 docker 版本9.让普通用户也可运行 docker10.启动 docker:11.验证 dock
2020-09-22 16:29:32 5823
原创 Golang——defer的学习及使用
defer学习及使用一、defer后面必须是函数或方法的调用,不能是语句二、defer函数的参数传递为值拷贝三、defer语句必须先注册后执行四、主动调用`os.Exit(int)`退出进程时,defer将不再执行五、多个需要关闭资源的场景,可以避免资源泄漏六、副作用七、不要对有名返回值参数进行操作Go提供了defer关键字,可以注册多个延迟调用,这些调用以先进后出(FILO)的顺序在函数返回前被执行。常用于保证一些资源最终一定能够得到回收和释放一、defer后面必须是函数或方法的调用,不能是语句.
2020-07-09 10:25:46 380
原创 GoFrame——请求校验Parse()方法返回err之坑
GoFrame请求校验Parse方法返回err之坑代码示例错误分析坑解决办法学了一部分GoFrame的使用,自己尝试去写项目练习,但是有个知识点搞混了,导致程序异常。Debug时,发现请求参数是有的,而且也能将参数转换为结构体,但是总是得不到预期结果。首先去排查err值,但是竟然是个空字符串,就让人摸不着头绪,不知道错误在哪,以下是场景复现。代码示例错误代码,标签和消息中间的正确分隔符不是|,而是#。:// LoginRequest 登录参数type LoginRequest struct {
2020-07-08 00:56:57 1465
原创 特殊的Header头——X-Forwarded-For 与 X-Real-IP 学习
特殊的Header头X-Forwarded-ForX-Real-IP其他 header 头End-to-end 和 Hop-by-hopEnd-to-end 端到端头部Hop-by-hop 逐跳首部X-Forwarded-For存储客户端 ip 和反向 dai li IP 列表,以逗号+空格分隔记录最后直连实际服务器之前的整个 dai li 过程可能会被伪造 ip,但是直连实际服务器这段不会被伪造图示:可以看到,可以看到,第一层 dai li ,其存储了客户端的 IP,第二层 dai li
2020-07-05 19:06:30 14057
原创 Golang——ReverseProxy源码分析
Go ReverseProxy源码分析功能点:源码分析核心结构体核心方法由于发文章时涉及到一些 m g 词汇,所以反复删除了原有的一些理解,这才能发表成功。其中,一些词也纯拼音表示了,比如 dai liReverseProxy 位于 net.http.httputil 包下(只保留了这句 55555…)功能点:支持自定义修改响应内容支持连接池支持错误信息自定义处理支持 websocket 服务支持自定义负载均衡支持 https dai li支持 url 重写源码分析声明:go.
2020-07-05 18:50:24 1535
原创 VScode 自定义快捷键
VScode 自定义快捷键一、界面操作配置快捷键1.打开快捷键设置2.输入关键词,快速定位3.修改快捷键4.更改 when 表达式二、修改快捷键配置文件一、界面操作配置快捷键以配置终端相关的快捷键为例:1.打开快捷键设置2.输入关键词,快速定位我们要修改终端,可以输入terminal,或者输入更多内容也行3.修改快捷键双击要修改的选项或者右键选择更改键绑定然后按相应的键,就会自动匹配到弹出的输入框里。(这个操作不方便截图,就不上图了)4.更改 when 表达式这个表达式其实就是快捷
2020-07-04 18:14:49 12332
原创 VScode Go语言代码片段快速生成汇总
Go语言代码片段快速生成汇总基本pkgmHTTP开发hfherrhandhelloweb本文结构:不同使用习惯或开发模块通过父标题分类。子标题对应一个VScode Go代码提示关键词,内容为具体生成的代码片段。使用前置知识:生成的代码会默认光标有多个光标时,自定义完当前光标内容后,按tab会自动跳转到下一个光标分享VScode的使用,掌握这些帮助你提高开发效率,不定期更新…自定义代码段教程基本pkgmpackage mainfunc main() {}HTTP开发
2020-07-04 17:10:54 2503 1
原创 Deepin 安装Postman
在Deepin中安装Postman并在启动器中添加Postman软件图标一、安装Postman1.去官网下载Linux软件包:2.解压安装二、在deepin启动器中添加Postman软件图标一、安装Postman1.去官网下载Linux软件包:Postman官网2.解压安装sudo tar -xzvf Postman-linux-x64-7.11.0.tar.gz3.建立软连接sudo ln -s /opt/soft/Postman /usr/bin/二、在deepin启动器中添加Post
2020-07-03 11:40:58 1453
原创 Wndows下使用git拉取github上的项目(ssh方式)
ssh方式拉取github上的项目1.生成秘钥2.查看秘钥3.对应项目增加公钥4.验证5.本地拉取项目SSH方式拉取代码的好处就是push代码时不用每次都输入账号和密码进行验证,但必须是个人的项目。如果是clone别人的项目,只能通过 http方式了1.生成秘钥首先输入ssh-keygen,这里会提示你输入私钥保存的位置,直接回车使用默认位置即可后面会两次提示输入密码 直接回车,会生成两个文件id_rsa和id_rsa.pub分别是私钥和公钥2.查看秘钥此时打开个人用户下的ssh文件夹,比如
2020-07-03 11:08:50 474
原创 Github 删除提交的敏感记录
Github 删除提交的敏感记录1.先找到commit id2. 强制切换到 commit_id 这个记录3. 强制提交到远程1.先找到commit id查看近三次提交id 或者直接去中央仓库找到想要删除记录的上一个id(只要不是删除记录id就可以)git log -3 )2. 强制切换到 commit_id 这个记录 git reset --hard commit_id3. 强制提交到远程git push origin HEAD --force这样就把之前提交的错误记录给“顶”掉了
2020-07-03 11:01:49 446
原创 Vue+element 级联选择器 编辑操作内容回显
elementUI的 cascader 级联选择控件的默认值(回显)问题场景一:后端返回的是字符串,但是其格式是数组类型后端返回结果如:’[1,2,4,5]’修改方法:法一:(比较麻烦,但是几乎是万能的,所有的都可以转换成数组)因为数组是string类型的即 “[1,24,5]”将”[” 和 “]” ,substring将得到的字符串split(“,”),得到一个装有“1”,“24”,“5”的string数组循环拿出数组的每个元素转换成int类型,再push到option数组里,
2020-07-02 22:09:40 4148 4
原创 Vue项目优化
vue项目开发完后,进行一些必要的优化1.通过nprogress给页面增加进度条效果nprogress官方文档1.安装依赖npm install --save nprogress2.导入js及cssimport NProgress from 'nprogress'import 'nprogress/nprogress.css'3.使用在axios拦截器中添加如下方法发起请求前调用 start()服务器相应后调用 done()// request拦截器service.
2020-07-02 21:58:09 304
原创 Vue性能优化方法
优化策略1.生成打包报告打包时,为了直观地发现项目中存在的问题,可以在打包时生成报告。生成报告的方式有两种:1.通过命令行参数的形式生成报告/通过vue-c1i的命令选项可以生成打包报告,--report选项可以生成 report.html以帮助分析包内容vue-cli-service build --report2.通过可视化的U面板直接查看报告(推荐)在可视化的U面板中,通过控制台和分析面板,可以方便地看到项目中所存在的问题。使用vue ui启动可视化环境,build项目就能生产打包报
2020-07-02 21:54:53 1740
原创 Vue+element tabs标签页切换提醒/切换渲染页面
基本tab html ,主要看第三行,第四行<el-tabs v-model="activeIndex" tab-position="left" :before-leave="beforeTagsLeave" @tab-click="tabsClicked"><el-tab-pane label="基本信息" name="0"></el-tab-pane><el-tab-pane labe
2020-07-02 21:51:45 3455
原创 Deepin 中使用VS code 提示无法在这个大型工作区中监视文件更改
以下内容Deepin操作系统下的操作当看到此通知时,表明VS Code文件监视程序用完了句柄,因为工作区很大并且包含许多文件。1.可以通过运行以下命令查看当前限制:cat /proc/sys/fs/inotify/max_user_watches2.可以通过编辑/etc/sysctl.conf并将此行添加到文件末尾来将限制增加到最大:sudo deepin-editor /etc/sysctl.conf加入以下内容:fs.inotify.max_user_watches=524288d
2020-07-02 21:38:47 1184
原创 VS code Go语言开发 出现expected ‘;‘, found ‘package‘syntax
expected ';', found 'package'syntax这种错误是VS code 自身的BUG,好久了,一直没有解决解决办法:因为VScode 目前没有修复,所以直接重新加载 vscode,然后就正常了
2020-07-02 21:34:52 7684 5
原创 VS code自定义代码片段
Go代码片段比如在下面代码,在输入pln时智能提示:fmt.Println() 1.按Ctrl/Command+Shift+P,输入snippets,选择并单击该命令2.然后在弹出的窗口点击选择go选项:3.然后弹出页面中编辑内容:{ "println":{ "prefix": "pln", "body":"fmt.Println($0)", "description": "println" }, "printf":{ "prefix": "plf", "body"
2020-07-02 21:31:48 908 1
原创 好用的VS code插件记录
配置同步code settings sync适用于Gitee,即码云。推荐这个的原因是gist.com一直无法访问成功,即使配置了hosts也不行,后来就改用这个了。功能很简单:上传(更新)配置 upload setting下载配置 download setting第一次使用可能会延迟,不会在终端输出上传日志,但是自己可以去码云看下是否成功上传,打开码云,然后:个人主页 -> 左侧代码片段配置教程Settings Sync适用于GitHub,与前者配置方式大同小异但是
2020-07-02 21:20:00 1142
原创 网络代理和网络转发的区别
什么是网络代理用户通过代理请求信息请求通过网络代理完成转发到达目标服务器目标服务器相应后再通过网络代理回传给用户什么是网络转发简单的理解就是,客户端访问公网服务器,数据包在网络上传输时会经过至少一个路由器,对于多个/多层路由,会进行网络转发,让客户端能够访问公网服务器并返回结果。网络传输中是通过IP来确定服务器(主机)的,通过端口来确定应用(或者说进程),比如微信应用发消息,会有端口号来唯一标识该应用进程。网络代理与网络转发区别网络转发:是路由器对报文的转发操作,中间可能对数据包修改。
2020-07-02 20:36:06 6844
原创 字节序——Big Endian和Little Endian
一、Endian 的起源在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机通信领域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正确的编/译码从而导致通信失败。1980 年,Danny Cohen 在其著名的论文”On Holy Wars and a Plea for Peace”中为了平息一场关于在消息中字节该以什么样的顺序进行传送的争论而引用了该词。该文中,Cohen 非常形象贴切地
2020-07-02 20:26:08 2992
原创 解开粘包拆包谜团
什么是粘包和拆包?1.先理解 MTU 和 MSSMTU:全称 Maximum transmission unit 最大传输单元,由硬件规定;一个网络包的最大长度,以太网中一般为 1500 字节;MSS:全称 Maximum Segment Size 最大分段大小,除去 IP 和 TCP 头部之后,一个网络包所能容纳的 TCP 数据的最大长度;一般为 1460 字节。TCP 在建立连接的时候通常要协商双方的 MSS 值MSS 计算公式:MTU - IP Header(20byte) - T
2020-07-02 20:24:13 385
原创 VScode——Markdown配置及使用
记录VScode中Markdown的配置及使用配置以下是两个Markdown增强插件,在扩展商店搜索安装Markdown All in one是一个组合包,一股脑把最常用的Markdown优化都给你装好Malkdown Preview Github Styling则是Github使用的Markdown渲染样式,不是特别华丽,很朴素,很简洁的样式,因为很多人用Markdown都是为了使用Github Pages,所以这个样式特别受欢迎。使用这个样式,在本地就能预览Markdown文件最终在Gith
2020-06-09 23:30:33 2325
原创 Deepin——使用小知识记录
我个人是Win10 + Deepin v20 Beata 双系统,之前一直用Windows系统,现在改成Linux系统用于日常。虽然Linux命令在大学学过了,但是没有实际操作经验,已经忘了很多,就记得几个常用命令,像cd,ls,cat,cp,mv这几个简单常用的,当然还有 rm -rf…后来安装了Deepin,刚开始有点不习惯,慢慢熟悉一段时间后,已经使用的很顺手了。特地记录一下使用常识,不定期更新。一.命令使用1. deepin-xxxx命令Deepin系统有一套自己的命令,使用起来很方便,不
2020-06-09 11:49:37 1405 2
转载 VsCode 快捷键记录
非常全的VsCode快捷键 按 Press 功能 Function Ctrl + Shift + P,F1 显示命令面板 Show Command Palette Ctrl + P 快速打开 Quick Open Ctrl + Shift + N 新窗口/实例 New window/instance Ctrl + Shift + W 关闭窗口/实例 Close...
2020-05-24 11:46:43 178
原创 Golang学习——基于Gin框架进行httptest单元测试
基于Gin框架进行httptest单元测试一.实例代码1.全局变量及main函数2.初始化路由3.三个主要功能3.1 首页3.2 导入用户3.3 抽奖二.测试工具函数2.1 ParseToStr 将map中的键值对输出成querystring形式2.2 Get 根据特定请求uri,发起get请求返回响应2.3 ParseToStr 将map中的键值对输出成querystring形式2.4 PostJson 根据特定请求uri和参数param,以Json形式传递参数,发起post请求返回响应三.开始进
2020-05-18 15:57:18 2041
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人