神的尾巴

全栈工程师、独立开发者

0%

纯手写,可能有错误,欢迎指出

简单工厂模式

使用静态方法,传递产品参数,返回对应的产品。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 简单工厂
class Factory
{
public static function create($productType)
{
if($productType == 'A') {
return new ProductA();
} elseif ($productType == 'B') {
return new ProductB();
} else {
return new Product();
}
}
}
阅读全文 »

纯手写,可能有错误,欢迎指出

适配器模式

抽象目标接口,使用适配器实现抽象目标接口,适配器有对象适配器和类适配器(实际一个使用组合一个使用继承)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// 目标类
interface Target {
public function request();
}

class LocalLogic {
public function localRequset()
{
// ...
}
}

// 1. 对象适配器(推荐)
class Adapter implements Target
{
private $localLogic;
public function __construct($localLogic)
{
$this->localLogic = $localLogic;
}
public function request()
{
return $this->localLogic->localRequest();
}
}

// 2. 类适配器
class Adapter extends LocalLogic implements Target
{
public function request()
{
return $this->localRequest();
}
}
阅读全文 »

异常收集

针对错误的捕获,使用window.onerror或者addEventListener(‘error’)。

window.onerror = function(message, source, lineno, colno, error) {};

浏览器兼容性

Browser Message & Url Line numbers Column numbers Stack trace
Chrome
Firefox
Edge
IE11
IE10
IE9
IE8
Safari 6+
iOS Safari 6+
Opera 15+
Android Browser 4.4
Android Browser 4 – 4.3
阅读全文 »

哈希表(Hash Table,散列表),根据key而直接访问在内存存储位置的数据结构。

优缺点

优点:查找效率快
缺点:初始化时需要确定哈希表的大小

阅读全文 »

简述OAuth2

OAuth2的主要思路是:在”客户端”与”服务提供商”之间,设置了一个授权层(authorization layer)。”客户端”不能直接登录”服务提供商”,只能登录授权层,以此将用户与客户端区分开来。”客户端”登录授权层所用的令牌(token),与用户的密码不同。用户可以在登录的时候,指定授权层令牌的权限范围和有效期。

“客户端”登录授权层以后,”服务提供商”根据令牌的权限范围和有效期,向”客户端”开放用户储存的资料。

主要包含以下4中授权模式:

  1. 授权码模式(authorization code)
  2. 简化模式(implicit)
  3. 密码模式(resource owner password credentials)
  4. 客户端模式(client credentials)
阅读全文 »

ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。

TC39(Technical Committee 39)负责制定ECMAScript标准,成员包括Microsoft、Mozilla、Google等大公司。

从提案到成为ECMA规范主要有以下几个阶段:

  • Stage 0 Strawperson:最初的想法;
  • Stage 1 Proposal:提案,由TC39至少一名成员倡导的正式提案文件,该文件包括API事例;
  • Stage 2 Draft:草案,功能规范的初始版本,该版本包含功能规范的两个实验实现。
  • Stage 3 Candidate:候选,提案规范通过审查并从厂商那里收集反馈;
  • Finished:完成,提案准备加入ECMAScript,但是到浏览器或者Nodejs中可能需要更长的时间。

详细流程见官方说明:https://tc39.es/process-document/

阅读全文 »

之前已经简单介绍过uni-app的强大跨端能力,So,今天来带大家5分钟快速入门uni-app。

本篇为基础教程,涉及如运行原理、源码解析、APP开发、uniCloud(Serverless)、NVUE,见后续更新。

准备工作

需要具备的知识

因为uni-app使用的DSL是Vue,所以最好先学习下Vue基础知识和Vue相关技术栈。

不熟悉Vue基础知识的同学可以去官方文档学习一下:https://cn.vuejs.org/index.html

uni-app目前使用到的Vue相关技术栈主要包括:

  1. vuex:用于状态管理,不熟悉的可以去官方文档学习下:https://vuex.vuejs.org/zh/guide/
  2. vue-router、vue-cli、webpack、rollup、babel、eslint等,这些可以了解下,开发中基本不需要用到。
阅读全文 »