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

缓存设计

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

PHP必知必会的更多相关文章

  1. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  2. 读书笔记--SQL必知必会--建立练习环境

    书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL in 10 Minutes - Fourth Edition> MyS ...

  3. 读书笔记--SQL必知必会12--联结表

    12.1 联结 联结(join),利用SQL的SELECT在数据查询的执行中联结表. 12.1.1 关系表 关系数据库中,关系表的设计是把信息分解成多个表,一类数据一个表,各表通过某些共同的值互相关联 ...

  4. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  5. 《MySQL 必知必会》读书总结

    这是 <MySQL 必知必会> 的读书总结.也是自己整理的常用操作的参考手册. 使用 MySQL 连接到 MySQL shell>mysql -u root -p Enter pas ...

  6. 《SQL必知必会》学习笔记(一)

    这两天看了<SQL必知必会>第四版这本书,并照着书上做了不少实验,也对以前的概念有得新的认识,也发现以前自己有得地方理解错了.我采用的数据库是SQL Server2012.数据库中有一张比 ...

  7. SQL 必知必会

    本文介绍基本的 SQL 语句,包括查询.过滤.排序.分组.联结.视图.插入数据.创建操纵表等.入门系列,不足颇多,望诸君指点. 注意本文某些例子只能在特定的DBMS中实现(有的已标明,有的未标明),不 ...

  8. .NET程序员项目开发必知必会—Dev环境中的集成测试用例执行时上下文环境检查(实战)

    Microsoft.NET 解决方案,项目开发必知必会. 从这篇文章开始我将分享一系列我认为在实际工作中很有必要的一些.NET项目开发的核心技术点,所以我称为必知必会.尽管这一系列是使用.NET/C# ...

  9. 0005 《SQL必知必会》笔记01-SELECT语句

    1.SELECT基本语句: SELECT 字段名1,···,字段名n FROM 表名 2.检索所有字段,用"*"替换字段名,这会导致效率低下 SELECT * FROM 表名; 3 ...

  10. 2015 前端[JS]工程师必知必会

    2015 前端[JS]工程师必知必会 本文摘自:http://zhuanlan.zhihu.com/FrontendMagazine/20002850 ,因为好东东西暂时没看懂,所以暂时保留下来,供以 ...

随机推荐

  1. css 文本显示多行后用省略号显示剩余的

    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 5; overflow: hidden;      

  2. 关于JS中的call()方法和apply() 暂时只接触到call() 等接触到apply()再回头来看

    1. 每个函数都包含两个非继承而来的方法:call()方法和apply()方法. 2. 相同点:这两个方法的作用是一样的. 都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖 ...

  3. Ubuntu下安装webstorm

    需要下载 WebStorm和 JDK # tar xvf WebStorm-10.0.1.tar.gz # tar xvf jdk-8u20-linux-x64.tar.gz 配置 /etc/prof ...

  4. ZJOI2017 day2 T2 线段树 想法题

    考完D2发现自己简直zz了...花式扔基本分 首先这道题有个显然的套路:树上一些点到一个定点的距离和=这些点深度和+点数*定点深度和-2*lca深度和 ——上一次见这个套路是LNOI2014,上次做的 ...

  5. 关于pycharm的一个imoprt的随笔

    近来发现pycharm一个方便的地方,from 文件夹名.组件名 import 方法(引入和父级目录同级文件夹下的模块),在pycharm中这种引用是能够成功的,但是在python自带的IDLE中不能 ...

  6. Ubuntu 18.10 使用VMware克隆后,克隆后的机器再手动更改interfaces配置文件后无法启动网络的解决办法

    克隆过程就略过了 配置interfaces root@client02:~# vim /etc/network/interfaces # interfaces() ) and ifdown() aut ...

  7. centos7 更换jdk版本

    查看java版本   java -version 如果有java版本(如果没有直接看红色虚线以下的) 输入 rpm -qa | grep java会显示以下几条内容: ******* ******** ...

  8. 关于RegExp的一些使用的练习(代码加注释)

    <!DOCTYPE html> <html> <head> <title>title</title> <meta charset=&q ...

  9. [POJ1185][NOI2001]炮兵阵地 状压DP

    题目链接:http://poj.org/problem?id=1185 很裸的状压,考虑对于一行用二进制储存每一种的状态,但是状态太多了做不了. 观察到有很多状态都是不合法的,于是我们预处理出合法的状 ...

  10. Objective-C Data Encapsulation

    All Objective-C programs are composed of the following two fundamental elements: Program statements ...