全球化 — 手机号

移动端获取本机手机号

ios、Android 在手机插入了 SIM 卡,并且获得用户授权后可以获取到本机手机号。
有些运营商 SIM 并不能获取到本机号
获取到的手机号包含国家冠码+国家区码+手机号
ios 在获取本机号可能存在 AppStore 审核不通过可能,ios 一般不会去获取本机号。




全球化 — 国际冠码

国际冠码是要拨打国际电话时,在键入受话地区的国际电话区号前,所须键入发话地区的输出(前缀)码,以转接至国际电话线路用的数字。在拨打国际电话时,通常会将国际冠码放在国际电话区号前以表示本号码将会拨离本地。例如当在美国要拨打电话至英国的号码1234 567890时,就必须先输入美国的国际冠码 011,然后英国的国际区号 44 再接着当地的电话号码 1234 567890,也就是说整体的形式为 011-44-1234-567890 。加号(+)可以用来代替任何国家的冠码,用以表示拨号者使用了所在国家的国际冠码。当前的大部分手机都允许“+”的输入,可以是按住“0”键(大部分GSM制式的手机)或连按两次“*”星号键输入。在使用时,系统会根据电话被使用的位置自动将“+”转换成正确的国际代码,使得拨打者可以在任何国家用相同的储存号码拨打电话。“+”也可以用“00”来代替。

全球化 — 移动设备国家代码(MCC)

移动设备国家代码 Mobile Country Code (MCC)由三位十进制数组成,它表明移动用户(或系统)归属的国家。
格式。MCC 由三个十进制数组成,编码范围为十进制的000-999。作为全球唯一的国家识别标准,MCC 的资源由国际电联(ITU)统一分配和管理。ITU 建议书 E.212 规定了各国的 MCC 号码。中国的移动设备国家代码为460(十进制)。 由于 MCC 的特殊意义,因此它在网络中一旦设定之后是不允许更改的。


Mysql 锁

锁是计算机协调多个进程或线程并发访问某一资源的机制。Mysql 是一个支持插件式存储引擎的数据库系统,不同的存储引擎的锁机制会有较大区别。MySQL 中锁的种类很多,有常见的表锁行锁,也有新加入的 Metadata Lock 等等。比如,MyISAM 和 MEMORY 存储引擎采用的是表级锁(table-level locking);BDB 存储引擎采用的是页面锁(page-level locking),但也支持表级锁;InnoDB 存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁。

Yii2 实现 RESTful 原理

Yii 从版本 Yii2 开始提供了一整套用来简化实现 RESTful 风格的 Web Service 服务的 API,这让我们借助于 Yii2 框架能非常容易的去实现一个 RESTful 风格的 API 。而要能够实现这个功能,就需要做到请求接收,解析请求提取出 verb 和参数,对请求进行路由,授权验证,访问限制,访问和操作资源,对返回结果格式化等功能的支持。

php5.3 升级到 php5.6

项目中因要用到 Yii2 框架,而 Yii2 框架中的一些特性是在 php5.3 之后(php5.4.0+)才开始支持的。故需要将 php 做一次升级。而之前的 php 项目(比较重)为了统一版本标准也打算一并升级到 PHP5.6,5.6 相对于 PHP5.3 而言有巨大的改进。为了能顺利完成这次版本升级,需要解决对升级过程过程可能遇到的兼容问题。

进程、线程、协程

概述

先了解并发和并行的区别:

  1. —并发(concurrency):逻辑上具备同时处理多个任务的能力。
  2. 并行(parallesim):物理上在同一时刻执行多个并发任务,依赖多核处理器等物理设备。

多线程或多进程是并行的基本条件,但单线程也可用协程做到并发。通常情况下,用多进程来实现分布式和负载平衡,减轻单进程垃圾回收压力;用多线程抢夺更多的处理器资源;用协程来提高处理器时间片利用率。现代系统中,多核 cpu 可以同时运行多个不同的进程或者线程。

Ioc 是什么东西?

Ioc 即控制反转(Inversion of Control)。是一个重要的面向对象编程的法则,通过对“控制权进行反转”来实现解耦。它遵循于依赖倒置原则。而实现控制反转最广泛的就是依赖注入(Dependency Injection,简称 DI)设计模式,常见的还有另外一种叫做“依赖查找”(Dependency Lookup)。本文将主要关注依赖注入设计模式。代码使用 DI 设计模式就可以实现 Ioc 从而也就遵循了依赖倒置原则,而依赖倒置原则在实践中被证明是一种有效的策略。

更好地使用 MongoDB 索引

MongoDB 是类似于关系型数据库的非关系型数据库,同样 MongoDB 的索引在概念上和大多数关系型数据库如 MySQL 是一样的。但在一些细节也存有差异,在使用 MongoDB 索引时需要谨慎,否则容易掉坑!本文将在索引方面把容易产生误解、误用的一些地方整理出来,使得我们能更畅快地使用 MongoDB。

谈谈 PHP 代码规范

我向往这样一个 php 世界,里面没有代码规范之争。你我都一样,都遵循着一套如宪法般的规范,就像 golang 世界一样。统一的命名法则,统一的缩进方式。而现实世界却让人落差很大,每个不同的团队就像不同的国家,都颁布有自己的法律。穿梭于 N 个团队之间你就得去适应 N 套规范。

LNMP 架构网站全链路调优

在基于 lnmp 架构做网站或者提供应用接口时,在生产环境能正常工作后我们就会面对永无止境的优化,优化,再优化处境。一个网站慢的原因五花八门,每一处技术的使用不当都可能是响应时间不理想的罪魁祸首。接下来将从一个用户点开一个链接或打开一个应用到与服务端的交互的一个链路来整理那些我们能轻松做到的调优方法。