自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员面试精选【codeoffer】

公众号【codeoffer】

  • 博客(118)
  • 资源 (2)
  • 收藏
  • 关注

原创 k8s的yaml文件中kind类型详解

在Kubernetes(k8s)的YAML语法中,kind是一种重要的关键字,它用于指定Kubernetes资源的类型。这些kind类型扩展了Kubernetes API的功能,使得Kubernetes更加灵活和强大,可以满足不同场景下的需求。

2023-04-13 16:08:57 3672 2

原创 Mac brew升级go到指定版本

所以需要升级go1.17,但是直接brew upgrade go会执行失败,所以还是install一下吧。这是终端会显示所有的查询结果,这里因为要安装go1.17,所以执行以下命令进行安装。目前使用的go1.16版本,但是不支持UnixMilli。至此安装结束,终端输入go version 进行验证。安装成功后,进行链接以下就可以了。先使用命令来查找一下go版本。

2022-08-22 16:52:04 4397

原创 Docker中启动Docker问题

尝试在Docker 的Centos容器中继续起个dokcer来测试,但是在容器中运行任何docker命令,如docker ps,都会报错

2022-07-13 14:30:12 948

原创 Centos 8使用yum或者dnf安装时报错解决

由于CentOS 8 EOS 将CentOS 8 Mirror 站点转换为Vault 并且找不到Mirror 站点而出现的问题。Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

2022-07-12 21:18:58 3494

原创 从Nginx配置问题看软连接和硬连接

最近没事在捣鼓小项目,需要在服务器上安装nginx,本来只是一个命令的事情但却在重启的时候报错了。apt-get install nginx安装完成之后也显示了安装成功,但当重新配置nginx.conf然后重启的时候有个报错:open() "/usr/share/nginx/nginx.conf" failed但是我的nginx安装位置明明就不在这个路径,为什么会去share路径下查找配置文件呢?nginx官网也都默认路径在/etc/nginx下面的。The way nginx and its

2022-05-24 16:57:56 1802 1

原创 正则表达式搜索匹配的原理是什么

文章目录1,正则表达式的使用2,正则表达式匹配搜索算法3,正则表达式引擎:DFA和NFA4,正则表达式的性能与优化1,正则表达式的使用正则表达式(Regular Expression 简写regex),是一种字符串匹配的模式(pattern),用来匹配搜索一段已知字符串中是否含有自己需要的子字符串,初次接触正则表达时会觉得很深奥难写,这么多符号怎么记呢。其实当你通过几个实际例子应用之后就会觉得也没那么难。比如:1.给你一个字符串,把字符串里面的链接、数字、电话等显示不同的颜色;2.给你一个包含自

2021-08-01 13:43:53 1402

原创 依赖注入是什么?Go是如何实现依赖注入的?

什么是依赖注入依赖注入的好处Go的依赖注入-wire依赖注入是什么?第一次听到这个词的时候我是一脸懵逼的,很拗口有没有,可能很多学过spring的同学觉得这是很基础很好理解的知识,但因为我之前没学过Java和spring,所以第一次接触这个词的时候是很懵的。依赖注入,英文名dependency injection,简称DI。依赖两个字很好理解,在软件设计上,从架构模块到函数方法都存在大大小小的依赖关系。比如说在new A 之前需要先new B ,A依赖于B,这时候我们就可以说B是A的依赖,A.

2021-07-26 21:35:10 1172 2

原创 Golang 不规范时间格式的转换

Golang 不规范时间格式的转换go语言在处理年月日时间格式的时候,总是需要按照官方规范的格式进行定义,且不支持变更,这在很多场景下是不能适应的,比如处理excel时的日期格式总数2021/7/15,但是官方包只支持解析"2006/01/02",也就是说月份必须是两位数,难道要我匹配补齐两位数吗?很麻烦有没有!然后发现轮子早已被造好,这个库支持各种各样的时间格式,甚至是英文和汉字,太????了。https://github.com/araddon/dateparse用起来也很简单,直接Parse

2021-07-17 14:15:14 1116

原创 Golang正则表达式不支持复杂正则和预查问题解决

Golang正则表达式不支持复杂正则和预查问题解决我有一个需求,需要匹配一段字符串中第几季的这个几,那么按正则表达式的语法,我的表达式应该是这样的`(?<=第)\d+(?=季)`然而,当我用go官方包regexp的时候,compile的时候报了个错误:error parsing regexp: invalid or unsupported Perl syntax: (?<啥意思呢?语法错误,不支持(?<,然而我在线运行的时候明明是没错的,这说明go的正则引擎不支持负向预查

2021-07-15 21:17:05 7544 4

原创 Day4——GO基础语法(声明命名和作用域)

100day学会golang系列:https://github.com/qisenshi/Go-100-Days持续更新中…GO基础语法1,命名和声明Go语言中的函数名、变量名、常量名、类型名、语句标号和包名等所有的命名,都遵循一个简单的命名规则:一个名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线。大写字母和小写字母是不同的:heapSort和Heapsort是两个不同的名字。和其他语言类型,Go语言中也有一些关键字是不用用于命名的,类似if和sw

2021-07-04 15:40:22 113

原创 Day2——GO环境的安装

下载Go下载地址:Go官网下载地址:https://golang.org/dl/Go官方镜像站(推荐):https://golang.google.cn/dl/Windows平台和Mac平台推荐下载可执行文件版,Linux平台下载压缩文件版。安装GoLinuxlinux安装比较简单,wget需要版本的go然后设置下环境变量就可以了,如果不是要在Linux平台敲go代码就不需要在Linux平台安装Go,我们开发机上写好的go代码只需要跨平台编译好之后就可以拷贝到Linux服务器上运

2021-07-04 15:29:45 140 2

原创 CORS-后端工程师也需要掌握的跨域问题解决方案

​前言:很多人都知道浏览器的跨域问题,以为这是前端工程师的事情,但其实跨域问题不仅是前端工程师需要关注的问题,后端工程师也需要对其有一定的了解,并知道其原因和解决方法。什么是跨域问题 同源策略 同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能。此策略限制了浏览器对不同源对不同源的脚本或文本的访问方式进行了限制。所以其是对浏览器的限制。如果缺少了同源策略,浏览器很容易受到XSS、CS...

2021-04-11 16:09:50 958

转载 Dapper,大规模分布式系统的跟踪系统

View project onGitHub概述当代的互联网的服务,通常都是用复杂的、大规模分布式集群来实现的。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。因此,就需要一些可以帮助理解系统行为、用于分析性能问题的工具。Dapper--Google生产环境下的分布式跟踪系统,应运而生。那么我们就来介绍一个大规模集群的跟踪系统,它是如何满足一个低损耗、应用透明的、大范围部署这三个需求的...

2021-03-23 16:16:08 287

原创 如何用Docker-compose快速搭建开发环境——以LNMP为例

如果你换了新电脑或者买了台新服务器,想搭建自己的开发环境,比如说你想快速建站想搭建个LNMP开发环境,那你就要分别安装php,nginx,mysql,甚至还需要安装redis,memcache,mq等。想想就很头疼是不是,这些环境幸运的话也要几个小时安装时间,不幸的话可能要捣鼓一天。说到搭建环境大家肯定会想到Docker:build once,run anywhere。但这只对单个应用有效啊,我还是要pull很多的镜像运行。有没有可以将这些镜像一起下载下来安装的东西呢?当然有,Docke

2021-03-19 20:09:51 442

原创 Golang变量遮蔽——Shadowing

在golang中,我们经常会用:=来声明变量,这很方便但也会带来一些问题。当变量遇到作用域时就容易产生shadowing。比如说我们经常会遇到的:shadow: declaration of "err" shadows declaration什么是变量隐藏呢?就是当年在后面重新声明了前面已经声明的同名变量时,后面的变量值会遮蔽前面的变量值,虽然这两个变量同名但值却不一样。这样是很容易产生问题的。举个栗子来看一下:func main() {n ...

2021-03-19 16:43:23 1649

原创 Navicat连不上阿里云服务器Docker中的MySQL问题

最近阿里云有活动,就搞了一台服务器玩玩。用DOcker装上了LNMP。安装好MySQL后想用Navicat连接一下,没想到一直是超时:Can't connect to MySQL server on 'xx.xx.xx.xx' (60 "Operation timed out")。Google一下后发现是root没有支持远端连接,所以按着教程配置分配权限:https://www.cnblogs.com/jiangzhaowei/p/10989344.htmlhttps.

2021-03-16 20:27:55 774 3

原创 MySQL 枚举类型如何定义比较好 tinyint?enum?varchar?

前言当项目中遇到比较多的枚举字段时怎么选择MySQL的类型呢?tinyint,varchar还是enum?据我观察大家还是用tinyint的比较多,少数也会直接用varchar。说到枚举,这个类型真的是有点坑,写的时候又不想校验(尤其是枚举值比较多的时候),又想直接在表里可以显示出原字符(说到底还是懒)。tinyint可以校验插入的值为自己定义的数值且索引友好但是显示不友好,varvhar可以直接在表中显示字段值但对索引又不友好。两种都不是最优选择,后来MySQL出现了e...

2021-02-10 18:04:04 3698 2

原创 golang处理excel打开csv乱码问题

最近在一个项目中导入导出csv文件的时候用excel打开都会出现乱码的情况,但是用number打开却是正常的,由此可知是编码问题导致。在导入读取csv文件时,因为golang默认支持utf8编码,所以如果导入的csv文件不是utf8编码就会产生乱码,所以在读取文件的时候需要进行一个编码格式转换。用到两个包:"golang.org/x/text/encoding/simplifiedchinese""golang.org/x/text/transform"然后将GBK编码转换为UTF8编码

2020-12-16 11:27:54 4619

原创 golang中的类型转换(string,int,float)

go是一种强类型的语言,所以如果在赋值的时候两边类型不一致会报错,就连int都分为int,int8,int32,int64这么多种。但同一基础类型(int,float)的变量在转换时很简单,都可以通过括号括起来即可,因为他们的底层都是一个类型的。使用type (a)这种形式来进行强制类型转换,比如var a int32 = 10var b int64 = int64(a)常用的还有int和string之间的相互转换,这种就没法直接用type()转换方式了。最常用的还是st...

2020-12-05 14:24:04 2530

原创 golang gorm使用心得小结,持续更新

官方文档:http://gorm.book.jasperxu.com1,目前暂不支持批量插入数据,可以用SQL语句直接执行或循环单次create。但因为业务需要知道插入后的主键ID,所以只能循环新增,循环新增后可通过.操作取ID。如:err = db.Create(m).Errorif err != nil { return }id = m.ID2,删除数据分为软删除和硬删除。软删即改变数据状态为删除但不从表中删除,如果表中有deleted_at字段(结构体中的DeletedA

2020-12-05 13:58:05 1267

原创 MySQL错误解决——[Err] 1030 - Got error 168 from storage engine

用docker装的MySQL映射到本地路径,然后突然遇到这个报错,表面上看起来是存储引擎出问题了,但建表引擎都没有改过。回想一下是映射的路径文件被我移到别的地方了,应该是影响到了,所以我选择删除原来的docker镜像重新run到新的路径,问题解决。...

2020-12-05 13:36:25 8288 1

原创 golang 之 复杂json结构体的生成和unmarshal解析

{ "metadata": { "timestamp_utc": "2020-11-27 12:26:19", "music": [ { "label": "华研国际音乐", "play_offset_ms": 39180, "result_from": 3, "external_ids": { .

2020-12-05 13:26:45 2708

原创 golang遍历数组时,不同的赋值方式性能会不一样吗?

事情的经过是今天发现一个同事写代码的风格和我们平常的不一样,直接用索引赋值给新的数组,他说这样性能更高,我当时是不信的,所以立马就写了代码来测试了一下。测试demo如下: //构造1000000个数据 type T struct { a int b string } a := T{77, "Sunset Strip"} list:=make([]T,1000000) for i:=0;i<1000000;i++{ list[i]=a } 比如说

2020-11-02 20:04:44 1102 1

原创 go语言中内置打印函数print,println和fmt包中fmt.Print,fmt.Println的区别

print和println 在golang中 是属于输出到标准错误流中并打印,官方不建议写程序时候用它,可以在debug时候用,而且后期不保证是否会继续保留。而fmt.Print,fmt.Println属于官方包fmt中自带的打印方法,在golang中 是属于标准输出流,一般使用它来进行屏幕输出.在这之前先介绍一下printf方法:"fmt"包中的"Printf"函数的 完整说明如下: Printf(format string, v ...) (n int, errn

2020-11-02 15:48:00 7529

转载 golang errgroup的用法及用处

一般在golang 中想要并发运行业务时会直接开goroutine,关键字go ,但是直接go的话函数是无法对返回数据进行处理error的。解决方案:## 初级版本:一般是直接在出错的地方打入log日志,将出的错误记录到日志文件中,也可以集合日志收集系统直接将该错误用邮箱或者办公软件发送给你如:钉钉机器人+graylog.## 中级版本当然你也可以自己在log包里封装好可以接受channel。利用channel通道,将go中出现的error传入到封装好的带有channel接受器..

2020-10-12 10:49:56 10090

原创 安装oh my zsh失败: 连接 raw.githubusercontent.com (raw.githubusercontent.com)|0.0.0.0|:443... 解决办法

问题描述根据官网的安装指令sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"然后就会遇到如下错误正在解析主机 raw.githubusercontent.com (raw.githubusercontent.com)... 0.0.0.0正在连接 raw.githubusercontent.com (raw.githubusercontent.com

2020-09-27 10:47:19 9548 1

原创 grpc生成pb.go文件报错github.com/gogo/protobuf/gogoproto/gogo.proto: File not found.

今天准备写个grpc接口,然后看了文档准备开始写proto文件,写完之后打算生成对应的pb.go文件。然后就报了这么一个错误:github.com/gogo/protobuf/gogoproto/gogo.proto: File not found.看字面意思很简单,就是文件没找到。然而,我的pkg中明明是有这个文件的,带不带版本号是不影响的。然后进过一系列的摸索和请教终于找到了解决办法!关掉你的module自动同步:go env -w GO111MODULE=off.

2020-09-25 18:56:14 4013 3

转载 这是我见过写的最清晰易懂的关于go context的文章

转自:https://draveness.me/golang/docs/part3-runtime/ch06-concurrency/golang-context/6.1 上下文 Context上下文context.Context是用来设置截止日期、同步信号,传递请求相关值的结构体。上下文与 Goroutine 有比较密切的关系。context.Context是 Go 语言中独特的设计,在其他编程语言中我们很少见到类似的概念。context.Context是 Go 语言在 1.7 版...

2020-09-10 20:25:18 248

转载 PyCharm/Goland/PhpStorm/IDEA/WebStorm等使用教程

为什么发不了?!!备份住!点击直达:https://www.jianshu.com/p/8bb7f97f56b8

2020-09-10 19:49:18 270

原创 Redis面试真题——如何用Redis统计网站的用户访问量【pdd】

pdd有数亿的用户,那么对于某个网页,怎么使用Redis来统计一个网站的用户访问数呢?方案一、使用有序集合每当一个用户上线时, 我们就执行 ZADD 命令, 将这个用户以及它的在线时间添加到指定的有序集合中:ZADD "online_users" <user_id> <current_timestamp> 通过使用 ZSCORE 命令检查指定的用户 ID 在有序...

2020-09-10 11:01:32 574

原创 系统设计——如何设计一个高性能的短链接系统?

短链系统设计看起来很简单,但如何设计一个高性能短链系统呢,这也是面试中非常常见的一道设计题。这一个看起来简单的短链系统其实包含了挺多的知识点的。 首先,为什么要用锻炼? 短链跳转的基本原理是什么? 短链生成的几种方法你知道吗? 高性能短链的架构如何设计? 1. 短链的好处短链现在基本上属于各大公司发短信必备技术了,比如CSDN发我的验证码短信,下方蓝色链接明显是短链。而当我点开浏览器之后,发现这个短链已经跳转到其根本的长链接...

2020-09-07 11:00:18 2113

原创 TiDB新增数据报错Table has no partition for value xxx解决,新增分区

tidb在插入一个新数据的时候报错:Table has no partition for value xxx表明表中没有这个分区,需要新增查一下新增语句ALTER TABLE fans_medal ADD PARTITION (PARTITION p20200828 VALUES LESS THAN (20200829));然后再插入我需要的数据解决!参考:https://book.tidb.io/session4/chapter6/partition-table.

2020-08-28 16:08:07 1666

原创 【高频算法题】这28道题本周被50家公司问了128次

大家都知道现在各大互联网公司的招聘面试已经越来越注重算法了,除了校招要笔试之后,校招社招的面试过程中都会手撕算法题。尤其是字节跳动,动不动就给甩给你一个medium甚至hard。但是大家的时间可能没那么多,无法刷完所有题甚至一些准备不充分的同学很多类型的题都没见过。这里有网上总结的大厂超高频算法题,面试的时候其实面试官也就爱问这几类题,真搞懂了这些题面试的时候遇到原题或类似的题目可能性还是非常大的。哪28道题在本周被这么多公司考察呢?比如说LR...

2020-08-28 12:20:45 194

原创 欢迎关注我的公众号【程序员面试精选】

毕业之后的第一份工作是PHP后端开发工程师,当时因为从没接触过PHP所以相当于要从头学习语言。经过一段时间的学习之后,对于工作已经游刃有余了。但是除了编程语言,计算机基础的东西很多都遗忘了。比如说,操作系统,数据结构与算法,计算机网络,数据库等。这些东西可以说是程序员的地基,地基不牢地动山摇。可能会在你遇到问题的时候无从下手,毕竟实践还是需要理论知识指导的。现在转作go后端开发,我发现除了语言不一样,其他一些基础都是通用的。在后来面试准备复习的时候,我也关注了一些知名技术公众号。这些公众号一开始可能文

2020-08-23 23:56:09 453

转载 【建议收藏】最全的MySQL索引面试知识点

转自架构之美一、什么是索引?​索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。索引是一种数据结构。数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据;索引的实现通常使用B树及其变种B+树。更通俗的说,索引就相当于目录。为了方便查找书中的内容,通过对内容建立索引形成目录。索引是一个文件,它是要占据物理空间的。二、索引有哪些优缺点?索引的优点1.可...

2020-08-23 16:33:19 218

原创 Go语言学习 之 Validate验证器用法速查

刚从PHP转过来写了几天时间的go,感觉其最大的特点就是强类型。不仅仅是对变量类型的限制很强,其对每个结构体定义的字段类型限制也很强,这就会导致刚入门go的同学很不习惯。比如限制一个字段的值为大于10的int类型,而你传了个9就会报错。当然这样也有一个好处就是对于参数校验不用另外写条件来判断了,大大简化了入参校验。总结一下常用的验证器写法以便后续查看。Go的内置验证器有以下几大类别:(为空)必填验证 类型验证 大小、长度验证 字段值比较验证 文件验证 日期验证 字符串检查验证 其他验证

2020-08-21 20:32:48 4022

原创 Go语言学习 之 Golang database/sql与Gorm基础使用方法总结

Golang database/sql基础使用方法总结1,原生用法写sql语句操作db.Query可以查询多行;db.QueryRow查询特定的行。db.Exec 执行更新插入删除操作2,Gorm封装用法Gorm是个go开发人员友好的ORM库,主要包含以下功能点全功能 ORM (无限接近)关联 (Has One, Has Many, Belongs To, Many To Many, 多态)钩子 (在创建/保存/更新/删除/查找之前或之后)预加载事务复合主键SQL 生成器数据

2020-08-21 20:07:46 2415

转载 不知道如何技术变现?19个程序员接私活平台汇总!

​关于程序员接私活,社会各界说法不一。按照作者的观点来说如果你确实急用钱价格合适而且空闲时间,那就去做。如果不怎么缺钱,那就接私活之前要好好考虑。私活的钱不好挣是一个方面,更重要的是如果你把做私活的时间花在提升自己上,产生的价值就要大得多。等你提升了自己,提升了固定薪水,远比拿的这点私活的钱划算。千万不要捡了芝麻丢了西瓜。如果你主业上遇到了瓶颈,平时的时间比较充分,想有一些额外的收入,同时为了保持技术的熟练度,这种情况下,是可以考虑接一些私活的。对于那种投入时间巨大,...

2020-08-16 23:03:23 2537

原创 Git自动补全配置安装(Mac版本)

安装 bash-completionbrew install bash-completion下载git源码使用如下命令即可下载:(但内网下载不动,需要科学上网)git clone https://github.com/git/git复制 git-completion.bash源代码下有个 contrib/completion 目录,有个 git-completion.bash 文件cd git/contrib/completion/将该文件复制到主目录(~)下注.

2020-08-11 20:56:04 581

原创 Go语言学习 之 Go环境搭建、环境变量释义及代码目录结构(一)

接触一门新的语言首先就要搭建环境,而新手在搭建的时候往往会遇到很多问题,看到网上的搭建教程各式各样往往不知道要按哪个搭建,真是太难了。要完成环境的搭建首先还是要搞清楚搭建中的理论知识,知道这些环境变量为什么要配置,配置了会产生什么样的效果。下面我总结一下我搭建过程中遇到的问题,本文不会详细介绍搭建步骤,更偏重理论知识,如有错误欢迎指出,相互学习。Go及Goland安装Go安装及配置:可参考:https://blog.csdn.net/zxy_666/article/details/80182

2020-08-09 12:30:56 426

微信公众号开发源码分享

微信公众号开发源码,包括消息自动回复,聊天机器人,天气预报,菜单开发,数据库操作,翻译功能等基础功能

2020-07-30

libsvm gridregression.py

libsvm gridregression.py 放在C:\libsvm-2.xx\python里面就可以了

2017-11-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除