通用的数据格式,不同的编程语言都可以解析

php:json_decode 转变量; json_encode: 转json

MVC三层分别指:业务模型、视图、控制器,由控制器层调用模型处理数据,然后将数据映射到视图层进行显示。

业务模型、视图、控制器提供代码重用;

代码分离,更方便协作开发;

除了mvc还有其他的模式:mvc,mvvc,mvp等https://www.jianshu.com/p/d1f757a43034

数据层次

  • sql的优化,多次查询的尽量用一句sql来执行
  • 索引优化。表过大,重要搜索字段一定要加上索引,多字段要遵循最左原则
  • 数据库引擎:对于非重要数据表可以使用myisam数据表,而非innerdb
  • 反三范式设计,减少数据表的查询
  • 如果数据量确实过大,需要根据适当的算法考虑分表
  • 配置数据库的主从复制,读写分离。

代码层次

  • include_once比include更加耗时
  • 变量拼接比直接使用双引号快
  • 公共变量的定义如果变量值不变化,不要写再循环内
  • 静态函数要比成员函数快(不用new了,直接使用)
  • 如果处理的文案过大,正则会很影响行性能;
  • 尽量不要使用相对路径来包含文件,因为会基于当前目录去查找;
  • ===要快于==
  • && 要比and快,并且更不容易出问题(&& 运算级别高于and),类推。
  • 后端缓存
  • 对于常用数据,要用缓存存储。可以使用redis等,但是也要考虑内存的大小。具体取舍看具体项目
  • 前端
  • 服务器缓存:pagecache,
  • 客户端:基本常用数据存储到cookie,localstorage等不需要不同页面都要获取接口数据,对接口造成压力
  • 服务器层次
  • 硬件配置
  • 服务器尽量购买使用地区最近的服务器
  • 负载均衡,让多个服务器来分解压力
  1. 接口ip请求频次限制
  2. 登录,注册再适当的时候提供注册验证码(比如请求高,或者被攻击,或者同一个客户端频繁请求)
  3. 前端的数据永远都认为是不靠谱的,加入数据库需要做转义处理,防止sql注入
  4. 非代码数据要做转义处理后方可展示。比如非法的一些script语句
  5. 代码逻辑要谨慎,自测避免出现过大漏洞
  6. 线上必须屏蔽具体错误,避免暴漏重要信息