获得徽章 9
- #青训营 x 字节后端训练营#
理解Spring控制反转\依赖注入
通过依赖注入对象的过程:对象仅通过构造函数、工厂方法,或者在对象实例化在其上设置的属性来定义其依赖关系,然后容器在创建bean时注入这些需要的依赖。这个过程从根本上说是Bean本身通过使用直接构建类或诸如服务定位模式的机制,来控制其依赖关系的实例化或位置的逆过程。展开评论点赞 - #青训营 x 字节后端训练营#
mysql主从复制原理:
1.binlog线程主数据库有个bin-log二进制文件,纪录了所有增删改Sql语句。
2.从数据库把主数据库的bin-log文件的sql语句复制过来。
3.从数据库的relay-log重做日志文件中再执行一次这些sql语句。展开评论点赞 - #青训营 x 字节后端训练营#
使用线程的原因:
1. I/O并发 concurrency : 不同进程的重叠
2.多核并行 multi-core parallelism
3.便利 convenience
使用CPU很小的开销展开评论点赞 - #青训营 x 字节后端训练营#
在IDEA上直接使用Git,下载相关插件,由于github国内访问不稳定,因此直接下载Gitee插件。绑定登录相关账号后,可以直接pull项目,使用命令checkout 分支或者点击切换切换到相应分支。界面右上角出现更新到最新版本、确认和提交更新,提交更新时可以加入备注后直接提交。展开评论点赞 - #青训营 x 字节后端训练营#
分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。分布式事务随着互联网高速发展应运而生,但数据库的ACID四大特性已经无法满足分布式事务,因此有人提出了新的理论构建分布式事务。展开评论点赞 - #青训营 x 字节后端训练营#
go包管理存在的问题:
在不使用额外的工具的情况下,Go的依赖包需要手工下载,
第三方包没有版本的概念,如果第三方包的作者做了不兼容升级,会让开发者很难受
协作开发时,需要统一各个开发成员本地$GOPATH/src下的依赖包
引用的包引用了已经转移的包,而作者没改的话,需要自己修改引用。
第三方包和自己的包的源码都在src下,很混乱。对于混合技术栈的项目来说,目录的存放会有一些问题
新的包管理模式解决了以上问题:
自动下载依赖包
项目不必放在GOPATH/src内了
项目内会生成一个go.mod文件,列出包依赖
所以来的第三方包会准确的指定版本号
对于已经转移的包,可以用replace 申明替换,不需要改代码展开评论点赞 - #青训营 x 字节后端训练营#
go单元测试的编写:
需要测试的部分后缀加上_test,测试函数以Test作为前缀;需要注意的是在go语言中,首字母大写的函数是对外部可见的;
运行 go test,package 下所有的测试用例都会被执行;
go test 参数说明:
-bench regexp 执行相应的 benchmarks,例如:-bench=.
-cover 可以查看覆盖率
-run regexp 只运行 regexp 匹配的函数,例如:-run Array 那么就执行包含有 Array 开头的函数,该参数支持通配符 *,和部分正则表达式,例如 ^、$
-v 显示测试的详细信息展开评论点赞 - #青训营 x 字节后端训练营#
colly 是一个的 Golang 爬虫框架。
colly 提供了一个干净的接口来编写任何类型的爬虫/scraper/spider。
其特点包括:
清洁 API
快速(在单核上 > 1k 请求/秒)
管理每个域的请求延迟和最大并发
自动 cookie 和会话处理
同步/异步/并行抓取
缓存
非 unicode 响应的自动编码
Robots.txt 支持
分布式抓取
通过环境变量配置
扩展展开评论点赞 - #青训营 x 字节后端训练营#
开始使用git:
(1)全局配置 Git 的用户名和邮箱
git config --global user.name "xxx"
git config --global user.email "xxx@xx.com"
(2)ssh-keygen -t rsa -C "邮箱地址"
(3)复制 id_rsa.pub 的内容
(4)进入SSH and GPG keys 加入复制的内容,点击 add ssh key,把公钥放到了 Github 上进行托管展开评论点赞 - #青训营 x 字节后端训练营# len()函数判断字符串长度的时候,是判断字符的字节数而不是字符长度。因此,在中文或特殊字符下,应该采用如下方法:
(1)使用 bytes.Count() 统计
(2)使用 strings.Count() 统计
(3)将字符串转换为 []rune 后调用 len 函数进行统计
(4)使用 utf8.RuneCountInString() 统计展开评论点赞