• 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

    缓存设计

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

  • 相关阅读:
    全局变量和局部变量
    单例模式i
    高阶函数
    闭包和内存管理
    用python 写网络爬虫--零基础
    robots.txt 文件是什么? 如何获取
    Python: NLTK几个入门函数
    nltk book的下载
    nltk 环境安装( WINDOWS 7 32位 环境下)
    遇到问题
  • 原文地址:https://www.cnblogs.com/ranwuer/p/9130437.html
Copyright © 2020-2023  润新知