• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

xiaobaiTech/golangFamily: 【超全golang面试题合集+golang学习指南+golang知识图谱+ ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

xiaobaiTech/golangFamily

开源软件地址:

https://github.com/xiaobaiTech/golangFamily

开源编程语言:

Go 100.0%

开源软件介绍:

golangFamily

【超全golang面试题合集+golang学习指南+golang知识图谱+成长路线】 一份涵盖大部分golang程序员所需要掌握的核心知识。

公众号 公众号 投稿 投稿 博客

脑图持续不断更新中,在线查看地址
后续文章和内容会不断更新到 github项目 中,欢迎关注。


大家好,我是小白。大家知道,我一直以来都是golang的忠实粉丝,在学习和参与面试的过程中遇到过很多golang的问题。

最近花了些时间整理了一下后端程序员成长路线和高频面试题,这是一份涵盖大部分后端程序员所需要掌握的核心知识

这些面试题从能力模型上对标字节资深后端开发,因为字节主要使用GO语言,因此语言方面的面试题,主要是面向go相关的题目。但除了语言这块,其他中间件和工程能力相关的面试题,对于所有后端开发都适用!!

面试题集PDF还会不断迭代更新,后续最新版本都会在我的个人公众号「小白debug」里第一时间发布!

在公众号里回复【面试】即可获得!!

如果大家看完电子书,觉得内容还不错,强烈希望大家能在微信公众号里搜索关注,并星标我的公众号,第一时间获取最新更新内容!

还有技术划水【交流群】,点击公众号右下角【联系我】或扫描以下二维码,备注“进群”,欢迎大家进群交流~。

如果大家对网络基础感兴趣的话,公众号里也有非常多相关的文章,也欢迎关注收看哈。图解网络相关的文章,已经重新整理成一份的电子书。在公众号内回复【网络】,就可以获得整理的PDF电子书。

同时我也为公众号粉丝准备了一些学习资料,关注公众号并回复【go】、【操作系统】、【网络】即可获得相应学习资料! 并且,学习资料也会不断更新,后续会根据读者需求整理更多相关资源,有需要的读者也可以在公众号内留言。



最后

  • 欢迎大家访问我的博客 https://xiaobaidebug.top/
  • 在公众号内回复【面试】,可以获得整理的golang面试PDF电子书,适合快速备战面试查漏补缺。
  • 在公众号内回复【网络】,可以获得整理的图解PDF电子书,适合巩固基础。
  • 在公众号内回复【视频】,可以获得整理的视频教程,内含实战教程,适合小白上路。

目录(善用Ctrl+F)



  • 其他
  1. 常用包
常用包 说明
fmt 实现格式化的输入输出操作,其中的fmt.Printf()和fmt.Println()是开发者使用最为频繁的函数。  
io 实现了一系列非平台相关的IO相关接口和实现,比如提供了对os中系统相关的IO功能的封装。我们在进行流式读写(比如读写文件)时,通常会用到该包。  
bufio 它在io的基础上提供了缓存功能。在具备了缓存功能后, bufio可以比较方便地提供ReadLine之类的操作。  
strconv 提供字符串与基本数据类型互转的能力。  
os 本包提供了对操作系统功能的非平台相关访问接口。接口为Unix风格。提供的功能包括文件操作、进程管理、信号和用户账号等。  
sync 它提供了基本的同步原语。在多个goroutine访问共享资源的时候,需要使用sync中提供的锁机制。  
flag 它提供命令行参数的规则定义和传入参数解析的功能。绝大部分的命令行程序都需要用到这个包。  
encoding/json JSON目前广泛用做网络程序中的通信格式。本包提供了对JSON的基本支持,比如从一个对象序列化为JSON字符串,或者从JSON字符串反序列化出一个具体的对象等。  
http 通过http包,只需要数行代码,即可实现一个爬虫或者一个Web服务器,这在传统语言中是无法想象的。  



2. 常用第三方包

地址
数据库操作 github.com/jinzhu/gorm
github.com/go-xorm/xorm
搜索es github.com/olivere/elastic
rocketmq操作 github.com/apache/rocketmq-client-go/v2
rabbitmq 操作 github.com/streadway/amqp
redis 操作 github.com/go-redis/redis
etcd 操作 github.com/coreos/etcd/clientv3
kafka https://github.com/Shopify/sarama https://github.com/bsm/sarama-cluster
excel 操作 github.com/360EntSecGroup-Skylar/excelize
ppt 操作 golang.org/x/tools/cmd/present
go-svg 操作 https://github.com/ajstarks/svgo
go 布隆过滤器实现 https://github.com/AndreasBriese/bbloom
json相关 https://github.com/bitly/go-simplejson
LRU Cache实现 https://github.com/bluele/gcache https://github.com/hashicorp/golang-lru
go运行时函数替换 https://github.com/bouk/monkey
toml https://github.com/toml-lang/toml https://github.com/naoina/toml
yaml https://github.com/go-yaml/yaml
viper https://github.com/spf13/viper
go key/value存储 https://github.com/etcd-io/bbolt
基于ringbuffer的无锁golang workpool https://github.com/Dai0522/workpool
轻量级的协程池 https://github.com/ivpusic/grpool
打印go的详细数据结构 https://github.com/davecgh/go-spew
基于ringbuffer实现的队列 https://github.com/eapache/queue
拼音 https://github.com/go-ego/gpy
分词 https://github.com/go-ego/gse
搜索 https://github.com/go-ego/riot
windows COM https://github.com/go-ego/cedar
session https://github.com/gorilla/sessions
路由 https://github.com/gorilla/mux
websocket https://github.com/gorilla/websocket
Action handler https://github.com/gorilla/handlers
csrf https://github.com/gorilla/csrf
context https://github.com/gorilla/context
过滤html标签 https://github.com/grokify/html-strip-tags-go
可配置的HTML标签过滤 https://github.com/microcosm-cc/bluemonday
根据IP获取地理位置信息 https://github.com/ipipdotnet/ipdb-go
html转markdown https://github.com/jaytaylor/html2text
goroutine 本地存储 https://github.com/jtolds/gls
彩色输出 https://github.com/mgutz/ansi
表格打印 https://github.com/olekukonko/tablewriter
reflect 更高效的反射API https://github.com/modern-go/reflect2
msgfmt (格式化字符串,将%更换为变量名) https://github.com/modern-go/msgfmt
可取消的goroutine https://github.com/modern-go/concurrent
深度拷贝 https://github.com/mohae/deepcopy
安全的类型转换包 https://github.com/spf13/cast
从文本中提取链接 https://github.com/mvdan/xurls
字符串格式处理(驼峰转换) https://godoc.org/github.com/naoina/go-stringutil
文本diff实现 https://github.com/pmezard/go-difflib
uuid相关 https://github.com/satori/go.uuid https://github.com/snluu/uuid
去除UTF编码中的BOM https://github.com/ssor/bom
图片缩放 https://github.com/nfnt/resize
生成 mock server https://github.com/otokaze/mock
go 性能上报到influxdb https://github.com/rcrowley/go-metrics
go zookeeper客户端 https://github.com/samuel/go-zookeeper
go thrift https://github.com/samuel/go-thrift
MQTT 客户端 https://github.com/shirou/mqttcli
hbase https://github.com/tsuna/gohbase
go 性能上报到influxdb https://github.com/rcrowley/go-metrics
go 性能上报到prometheus https://github.com/deathowl/go-metrics-prometheus
ps utils https://github.com/shirou/gopsutil
小数处理 https://github.com/shopspring/decimal
结构化日志处理(json) https://github.com/sirupsen/logrus
命令行程序框架 cli https://github.com/urfave/cli
命令行程序框架 cobra https://github.com/spf13/cobra



3. 必看项目

项目 地址 说明
gin github.com/gin-gonic/gin 轻量级web框架,很多公司都是基于它进行魔改
beego github.com/beego/beego 也是web框架,比较全能
kratos github.com/go-kratos/kratos bilibili开源的微服务框架,b站出品必属于精品
TiDB github.com/pingcap/tidb 见识过mysql性能瓶颈之后你会想要选择的一款数据库



4. 完整标准库列表

子包 说明
bufio bytes 提供了对字节切片操作的函数
crypto 收集了常见的加密常数
errors 实现了操作错误的函数
Expvar 为公共变量提供了一个标准的接口,如服务器中的运算计数器
flag 实现了命令行标记解析
fmt 实现了格式化输入输出
hash 提供了哈希函数接口
html 实现了一个HTML5兼容的分词器和解析器
image 实现了一个基本的二维图像库
io 提供了对I/O原语的基本接口
log 它是一个简单的记录包,提供最基本的日志功能
math 提供了一些基本的常量和数学函数
mine 实现了部分的MIME规范
net 提供了一个对UNIX网络套接字的可移植接口,包括TCP/IP、 UDP域名解析和UNIX域套接字
os 为操作系统功能实现了一个平台无关的接口
path 实现了对斜线分割的文件名路径的操作
reflect 实现了运行时反射,允许一个程序以任意类型操作对象
regexp 实现了一个简单的正则表达式库
runtime 包含与Go运行时系统交互的操作,如控制goroutine的函数
sort 提供对集合排序的基础函数集
strconv 实现了在基本数据类型和字符串之间的转换
strings 实现了操作字符串的简单函数
sync 提供了基本的同步机制,如互斥锁
syscall 包含一个低级的操作系统原语的接口
testing 提供对自动测试Go包的支持
time 提供测量和显示时间的功能
unicode Unicode编码相关的基础函数
archive tar 实现对tar压缩文档的访问
zip 提供对ZIP压缩文档的读和写支持
compress bzip2 实现了bzip2解压缩
flate 实现了RFC 1951中所定义的DEFLATE压缩数据格式
gzip 实现了RFC 1951中所定义的gzip格式压缩文件的读和写
lzw 实现了 Lempel-Ziv-Welch编码格式的压缩的数据格式
zlib 实现了RFC 1950中所定义的zlib格式压缩数据的读和写
container heap 提供了实现heap.Interface接口的任何类型的堆操作
lsit 实现了一个双链表
ring 实现了对循环链表的操作
crypto aes 实现了AES加密(以前的Rijndael)
cipher 实现了标准的密码块模式,该模式可包装进低级的块加密实现中
des 实现了数据加密标准( Data Encryption Standard,DES)和三重数据加密算法( TripleData Encryption Algorithm, TDEA)
dsa 实现了FIPS 186-3所定义的数据签名算法( Digital Signature Algorithm)
ecdsa 实现了FIPS 186-3所定义的椭圆曲线数据签名算法( Elliptic Curve Digital SignatureAlgorithm)
elliptic 实现了素数域上几个标准的椭圆曲线
hmac 实现了键控哈希消息身份验证码( Keyed-Hash Message Authentication Code,HMAC)
md5 实现了RFC 1321中所定义的MD5哈希算法
rand 实现了一个加密安全的伪随机数生成器
rc4 实现了RC4加密,其定义见Bruce Schneier的应用密码学( Applied Cryptography)
rsa 实现了PKCS#1中所定义的RSA加密
sha1 实现了RFC 3174中所定义的SHA1哈希算法
sha256 实现了FIPS 180-2中所定义的SHA224和SHA256哈希算法
sha512 实现了FIPS 180-2中所定义的SHA384和SHA512哈希算法
subtle 实现了一些有用的加密函数,但需要仔细考虑以便正确应用它们
tls 部分实现了RFC 4346所定义的TLS 1.1协议
x509 可解析X.509编码的键值和证书
x509/pkix 包含用于对X.509证书、 CRL和OCSP的ASN.1解析和序列化的共享的、低级的结构
database sql 围绕SQL提供了一个通用的接口
sql/driver 定义了数据库驱动所需实现的接口,同sql包的使用方式
debug dwarf 提供了对从可执行文件加载的DWARF调试信息的访问,这个包对于实现Go语言的调试器非常有价值
elf 实现了对ELF对象文件的访问。 ELF是一种常见的二进制可执行文件和共享库的文件格式。 Linux采用了ELF格式
gosym 访问Go语言二进制程序中的调试信息。对于可视化调试很有价值
macho 实现了对Mach-O对象文件的访问
pe 实现了对PE( Microsoft Windows Portable Executable)文件的访问
encoding ascii85 实现了ascii85数据编码,用于btoa工具和Adobe’s PostScript以及PDF文档格式
asn1 实现了解析DER编码的ASN.1数据结构,其定义见ITU-T Rec X.690
base32 实现了RFC 4648中所定义的base32编码
base64 实现了RFC 4648中所定义的base64编码
binary 实现了在无符号整数值和字节串之间的转化,以及对固定尺寸值的读和写
csv 可读和写由逗号分割的数值( csv)文件
gob 管理gob流——在编码器(发送者)和解码器(接收者)之间进行二进制值交换
hex 实现了十六进制的编码和解码
json 实现了定义于RFC 4627中的JSON对象的编码和解码
pem 实现了PEM( Privacy Enhanced Mail)数据编码
xml 实现了一个简单的可理解XML名字空间的XML 1.0解析器
go ast 声明了用于展示Go包中的语法树类型
build 提供了构建Go包的工具
doc 从一个Go AST(抽象语法树)中提取源代码文档
parser 实现了一个Go源文件解析器
printer 实现了对AST(抽象语法树)的打印
scanner 实现了一个Go源代码文本的扫描器
token 定义了代表Go编程语言中词法标记以及基本操作标记( printing、 predicates)的常量
hash adler32 实现了Adler-32校验和
crc32 实现了32位的循环冗余校验或CRC-32校验和
crc64 实现了64位的循环冗余校验或CRC-64校验和
fnv

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap