PHP必知必会

MQ(消息队列)

消息队列主要用于以下场景:

1. 上传图片,用户需要迅速反馈,把上传图片的后续操作交给consumer

2. A用户对B用户发消息

3. 日志记录,APP发生的任何警告错误日志都要被记录到日志数据库中

4. 浏览量统计,比如,一个item被用户点赞,评论,收藏了,那么需要重新计算此item的评分,这时需要一个异步执行统计操作

5. 用户新添加了一篇文章,需要加入到搜索索引中

软件包:

1. enqueue-bundle

url: https://packagist.org/packages/enqueue/enqueue-bundle

2. amqp

PHP的扩展,消息队列这个扩展必装

 

OO Design(面向对象设计)

必须符合S.O.L.I.D原则

Entity Design (数据实体设计) 

 前提是符合设计三范式

System Design(软件系统设计)

比如给定一个购物网站,怎么设计一个基本的,可扩展的,高性能的软件系统?

测试

一个庞大的软件离不开一系列的单元测试,功能测试,集成测试。测试在后期可以大大提高软件的开发效率,比如,增加一个新功能,怎么迅速判断它是否对以前的功能有影响?

如果写了测试,只需要一行命令搞定这个工作,否则,需要人工一个一个验证以前的逻辑。所以,极力推荐大项目一定要写测试。

 

持续集成

怎么构建一个高效,安全的发布系统?

比如,当一个新功能开发完毕,并且跑完测试后,需要上线,如果上线后出现了问题需要回滚代码,怎么实现一键回滚呢。

 

接口设计(API)

现在的项目不像以前只有一个 web sites,而是包括了手机,平板,和其他可以运行浏览器的设备。那么就需要设计一套灵活性高,有版本控制,结构清晰,利于维护的API。

那么怎么设计?

目前的方案:

1. RESTful

缓存设计

编程界的两大难题之一缓存(另一个难题是命名问题)。怎么设计缓存系统?

posted @ 2018-06-03 20:51  ranwuer  阅读(144)  评论(0编辑  收藏  举报