B树、B+树

B树

B树也称B-树,它是一颗多路平衡查找树。描述一颗B树时需要指定它的阶数,阶数表示了一个结点最多有多少个孩子结点,一般用字母m表示阶数。当m取2时,就是我们常见的二叉搜索树。

一颗m阶的B树定义如下:

  • 每个结点最多包含m个子结点;且M>2
  • 根结点的儿子数为[2, M]
Read More

开发流程的思考

目前大多数互联网公司的开发流程如下图:

需求收集

一个新功能的出现,可能来自多个地方。运营觉得有了XX功能,用户量就能增加XX倍;产品觉得XX竟品做了XX功能,我们也要做个一模一样的;开发觉得XX
库又提升了XX性能。版本初期,一般由产品统一收集相关需求。

产品文档、设计文档

这个阶段,产品开始整理前面收集到的idea。他不太清楚的点可能会找开发、测试。比如XX功能技术上是否可行。然后开始写产品文档。完成后,会进行需求宣讲,
开发、测试同事会参与。这个过程中,开发、测试会提出自己的意见,产品方进行解答。没问题后,该需求会进入设计阶段。这个阶段中,开发人员会根据需求进行
概要设计,比如了解需要用到的技术,看看里面有什么坑。

开发阶段

当设计稿完成后,该需求会进入到开发阶段。开发人员拿到需求后,一般的小厂就开始对着产品文档、设计稿开发了,大厂会做详细设计,比如画流程图。开发完成后,
小厂就直接进入测试阶段了,做的稍微好点,开发会进行简单的自我测试,稍微再好点的,可能会自己写些测试脚本。而大厂会有其他的一些流程,比如单元测试集成测试
开发完成后,进行代码Review。开发的过程中还牵扯到前后端联调,所以在刚开始开发时,做同一个需求的不同端同事应该沟通好联调相关事宜。

Read More

Mac软件安装笔记

brew命令

1
2
3
4
5
6
7
brew services list  查看服务状态

brew services run mysql # 启动mysql 服务
brew services start mysql # 启动 mysql 服务,并注册开机自启
brew services stop mysql # 停止 mysql 服务,并取消开机自启
brew services restart mysql # 重启 mysql 服务,并注册开机自启
brew services cleanup # 清除已卸载应用的无用配置

mysql

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
brew install mysql

brew services start mysql
brew services stop mysql

mysql -uroot
SHOW VARIABLES LIKE 'validate_password%'; //查看密码初始策略

SET GLOBAL validate_password.policy=LOW; //设置某个属性
SET GLOBAL validate_password.length=6;

//修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';

flush privileges;

describe user; //查看表字段

Read More