自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Arno

一个热衷于前端开发的 PHP 攻城狮

  • 博客(31)
  • 资源 (3)
  • 收藏
  • 关注

转载 Linux信号机制与信号处理

信号(signal)是Linux进程间通信的一种机制,全称为软中断信号,也被称为软中断。信号本质上是在软件层次上对硬件中断机制的一种模拟。与其他进程间通信方式(例如管道、共享内存等)相比,信号所能传递的信息比较粗糙,只是一个整数。但正是由于传递的信息量少,信号也便于管理和使用,可以用于系统管理相关的任务,例如通知进程终结、中止或者恢复等。每种信号用一个整型常量宏表示,以SIG开头,

2016-11-03 22:11:11 465 1

原创 干货 | Api 体系架构分享(下)

上一篇,讲到了,最近,在做 api 的设计对于设计,一方面是对于后端 server 框架的设计,另一方面呢,是对于整个 api 体系的设计在这里呢,我们来理理思路,先来大致分一下块风格就不用说了,我们就用 restful 风格,接下来: IDL,也就是我们所说的接口描述语言 server 框架,整个 api 服务的核心驱动 版本控制 还有一些辅助工具,比如说,自动化工具、认证授

2016-10-27 18:50:03 1327

原创 版本迭代控制(Not Git/svn)

说到版本控制,大多数人的大脑中都一定会立刻想到 git 和 svn 吧,只可惜,这次的主角可不是他们虽说 git 和 svn 虽好,对于一些项目也能够进行很好的开发,但是呢,对于某些场景,还是有些 hold 不住的比如,我们来举一个场景: 现在我们的源码大约有 500M,然后呢,采用的是分支开发,主干发布,但是呢,因为我们是提供中间层 service 的,迭代周期很短,对于一些特殊的客户,会时常

2016-10-19 12:32:34 3005

原创 干货 | Api 体系架构分享(上)

最近呢,在做 api 的设计对于设计,一方面是对于后端 server 框架的设计,另一方面呢,是对于整个 api 体系的设计在这里呢,我们来理理思路,先来大致分一下块风格就不用说了,我们就用 restful 风格,接下来: IDL,也就是我们所说的接口描述语言 server 框架,整个 api 服务的核心驱动 版本控制 还有一些辅助工具,比如说,自动化工具、认证授权、监控上报、

2016-10-18 22:41:57 3087

原创 全球软件大会QCon上海2016—PDF分享

QCon上海2016的PDF合集PDF合集传送门: https://github.com/kof97/QConQCon日程: http://2016.qconshanghai.com/schedule

2016-10-26 22:31:20 2413

翻译 零预算如何获得 620 万 PV 和 144920 个粉丝

文章翻译自 Medium ,作者是 Ali Mese,原文地址:点击传送本文是关于如何更好的写文章,零预算线上推广以及一部分现在很热的 Growth Hacker, 看完受益良多。无论是自己运营自己得博客,或者是网站,里面的方法都可以用到,下面是译文先来个小故事:自从 2014 年 9 月 12 号发表了一篇文章 How quitting my corporate job for my start

2016-10-15 16:07:05 852

原创 CORS 跨域资源共享

CORS (Cross-Origin Resource Sharing) 跨域资源共享为什么需要 CORS首先,跨域指的是同一个域名下的资源,同时要注意域名与子域名,比如 developers.e.qq.com 和 developers.proxy.qq.com 不属于同一个域,同样属于跨域访问由于 同源策略,浏览器会限制脚本中发起的跨域请求,比如通过 XMLHttpRequest 就不能发起的跨域

2016-08-19 15:00:14 743

原创 一张电影票引发的思考,谈谈边际成本和机会成本

最近在读《计算广告》这本书,里面提到了边际成本这个概念,并指出 所有能够传播信息的商品,其售价都会趋向其边际成本同时又指出了: 电影是一种边际成本很低,同时传播的信息很大的典型商品,但电影票的售价往往远高于其边际成本那么问题来了,电影票的边际成本很低,但是不同的电影,票价往往相差不算太多,很少出现大额的差距,电影的投资成本往往不会明显的反映在票价上下面会从几个方面来聊一下这个问题,发表一

2016-08-13 17:22:16 9278 2

原创 nginx 的 php 开发环境部署

今天来做一下 nginx 的分享准备工作首先是编译需要的一些东西gcc-c++libtoolgzip 模块需要 zlib 库rewrite 模块需要 pcre 库ssl 功能需要 openssl 库安装依赖直接用 yum 安装就行了,不用自己编译,节省很多时间,也避免了一些不必要的错误下面依赖,根据实际情况自己安装需要的yum -y install gcc gcc-c++ make libtool

2016-08-12 21:28:26 2033

原创 谈谈 CGI、FastCGI、PHP-CGI、PHP-fpm

CGI、FastCGI、PHP-CGI、PHP-fpm今天我们来聊一下 CGI、FastCGI、PHP-CGI、PHP-fpm 这四个概念CGI通用网关接口(Common Gateway Interface)即 CGI,是一种网关协议,是外部应用程序(CGI 程序)与 Web 服务器之间的接口标准,是在 CGI 程序和 Web 服务器之间传递信息的规程通俗一点来讲,PHP、Java、Python 等

2016-08-11 10:17:06 550

原创 大型网站技术架构(3):WEB 前端性能优化

上次说到了性能优化策略,根据网站的分层架构,可以大致的分为 web 前端性能优化,应用服务器性能优化,存储服务器性能优化三大类这次来说一下 web 前端性能优化,一般来说,web 前端就是应用服务器处理之前的部分,包括浏览器渲染、加载,前端视图模型,图片视频资源,CDN 服务等,主要优化方法就是优化浏览器访问渲染过程,使用反向代理,使用 CDN 服务等浏览器访问渲染优化减少 http 请求数http

2016-05-15 22:42:10 2056 1

原创 大型网站技术架构(2):架构要素和高性能架构

上一篇我们把整个架构演变过程大致说了一下,这次我们来说说从哪方面进行考虑设计为了使网站的能够应对高并发访问,海量数据处理,高可靠运行等一系列问题,我们可以选择横向或纵向两个方向来入手基本思路首先可以对整个架构进行分层,一般可以分为 应用层,服务层,数据层;实践中,大的分层结构中还可以继续分层,比如 应用层 还可以继续分为 视图层 和 业务逻辑层,服务层也可以继续细分为 数据接口层 逻辑处理层 等通过

2016-05-11 23:11:36 7158

原创 分布式 与 集群

上一篇文章写到了架构的演变过程,其中出现了 分布式 和 集群 两个名词,有些人可能会对这两个词造成误解,那么我们这里就对这两个名词做一些解释首先, 分布式 和 集群 都是使用多台服务器来进行工作的,都可以提高系统的高并发简单一点来说,可以这样理解:分布式 一个业务分拆多个子业务,分别部署在不同的服务器上(可以是在不同的物理位置) 使每个服务器的职责更加专一,缩短单个任务的执行时间来提升

2016-05-08 21:11:04 1883

原创 后端面试总结(转载请标明)

但愿对大家能有点帮助,找到理想的工作关于架构、优化、缓存、前端的可以看一下我其他的几篇文章 架构 和 前端 的文章都已经置顶了,缓存和优化的还没写,因为事情比较多,时间不太够用,不过接下来都会写的,欢迎大家关注~JS中网页前进和后退的代码 前进: history.forward();=history.go(1); 后退: history.back();=history.go(-1)

2016-05-06 21:10:11 1924 1

原创 大型网站技术架构(1)

网站都是从小网站一步一步发展为大型网站的,而这之中的挑战主要来自于庞大的用户、安全环境恶劣、高并发的访问和海量的数据,任何简单的业务处理,一旦需要处理数以 P 计的数据和面对数以亿计的用户时,问题就会变的很棘手下面我们就来说说这个演变过程:初始阶段大型网站都是由小型网站演变而来的,网站架构也一样小型网站最开始没有太多人访问,只需要一台服务器就绰绰有余,就像这样: 应用程序、数据库、文件等所有资源都在

2016-05-04 18:24:31 5226 3

原创 MVCC 多版本并发控制

建议大家再看这个的时候先对 MySQL 的锁,事务,隔离级别有所了解我们都知道:行级锁可以最大程度的支持并发操作,但同时也带来了最大的锁开销MySQL 的大多数事务性存储引擎实现的都不是简单的行级锁。基于提升并发性能的考虑,他们一般都同时实现了多版本并发控制(MVCC)可以认为 MVCC 是行级锁的一个变种,但是他在很多的情况下避免了加锁操作,因此开销更低。虽然实现机制有所不同,但大都实现了非阻塞的

2016-04-18 10:14:27 1105

原创 几个简单的算法实现(辗转相除)

想来这个大家应该都知道,是计算最大公约数的算法,也叫欧几里德算法所以这里就不多说了递归实现int gcd(int a, int b){ if (a < b) std::swap(a, b); return b == 0 ? a : gcd(b, a % b);}循环实现int gcd(int a, int b){ int res; while(b

2016-04-17 20:27:38 725

原创 几个简单的算法实现(冒泡优化)

我们来说几个高频出现的面试问题,之前的单链表反转算一个,排序也是热门算法传统冒泡算法时间复杂度为O(n^2),最佳情况为O(n)但是中间仍然做了不少多余的比较现在我们通过来记录最后一次比较位置来进行优化,减少了一些不必要的比较操作void bubble(int a[], int n){ int i = n - 1; int pos, j, tmp; while(i > 0)

2016-04-17 20:13:45 831

原创 异或运算实现两个整数的交换

异或运算符大家都知道,这里用到的是: 任何数与 0 异或结果为它本身: a ^ 0 = a 任何数与自己异或结果为 0 : a ^ a = 0所有就有了以下的方法: void swap(int &a, int &b) { tmp = a ^ b; b = b ^ tmp; a = a ^ tmp; }其中就

2016-04-12 21:31:31 1080 1

原创 单链表反转

问题很简单,只要你静下心来想,很容易实现,中间逻辑不弄错就行所以这里我们就不画图来解释了首先,我们用 current,nextNode,third 分别表示 当前节点,当前节点的下一个节点,相对于当前节点的下下一个节点 也就是说 nextNode = current->next; third = nextNode->next;接下来我们继续: 存储当前节点(第一个)的next,

2016-04-12 21:03:49 545

原创 PSR-4 自动载入

自动载入1. 概述这个 PSR 描述的是通过文件路径自动载入类的指南,它作为对 PSR-0 的补充;根据这个指导如何规范存放文件来实现自动载入2. 说明 Specification术语 class 包含类 class,接口 interface,特性 traits 以及其他一些类似的结构一个完整的限定类名应该按照如下范例: \<NamespaceName>(\<SubNamespaceNames

2016-04-09 18:19:38 635

原创 PHP Callback 回调类型

看 composer 的 autoload 的时候发现他用 spl_autoload_register 注册了一个类 class 进去。。明明记得是要传进去一个待注册的 autoload function 队列,查了查文档才发现关于 Callback 回调类型理解有误看文档里面关于 Callback 回调类型的示例:// Type 1: Simple callbackcall_user_func(

2016-04-09 16:38:32 1013

原创 PSR-2 代码风格指南

代码风格指南翻译自: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.mdPSR-2 在 PSR-1 的基础上进行了继承和扩展1. 概述 代码 必须 遵循 PSR-1 规范 代码 必须 使用 4个空格 的缩进,而不是制表符 tab 一行代码长度 不可

2016-04-09 14:41:41 2455

原创 PSR-1 基本编码规范

翻译自 https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md基本代码规范1、概述 必须 使用 <?php ?> 或是 <?= ?> 这两种标签 PHP 代码中 必须 使用 UTF-8 without BOM 编码方式 每个文件 建议 只用来声明

2016-04-09 11:14:17 1225

原创 composer (一)

win 下和 linux 下安装其实差不多,都是用 cli 装的curl -sS https://getcomposer.org/installer | php还可以通过 php 下载:php -r "readfile('https://getcomposer.org/installer');" | php这将检查一些 PHP 的设置,然后下载 composer.phar 到你的工作目录中。这是 C

2016-04-08 14:15:47 572

原创 LCS算法&最大公共子串&最长公共子序列 PHP 实现

求两个字符串的最大公共子串&最长公共子序列输入:abcbdabbdcaba4 即 bdcaba 与 abcbdab 的最大公共子串长度为 4 常规思路枚举法,算出两个字符串的所有子序列,然后分别作比较,选出最大的一个子串 缺点:对于一个长度为 n 的字符串,子串个数有 2 的 n 次方个,然后在依次比较两个字符串的子串,效率过低动态规划 LCS算法以动态规划的思想来解这个题,我们用一

2016-04-07 18:44:20 2661

原创 前端面试总结(转载请标明)

最近在准备找工作,心理压力过大,把准备的面试题都整理出来了,就怕面试挂了。。刚刚把前端的整理好,后端的还在整理中。。。有哪里不对的还请大家指出————————————————-web前端优化 JS/CSS: JS会阻塞页面渲染,放在页面最下方; CSS在页面顶部加载。避免CSS表达式 合并重用相同的代码块,对文件进行合并压缩,减少HTTP请求数

2016-04-05 19:15:18 1547 2

原创 关于 PHP 的标准输入

之前做题一直用的 c++ 和 Python,突然间用 PHP 做题,结果方法写好了发现不会输入,真是坑坏了自己(生无可恋)。。。记录一下,老夫也是会用PHP输入的男人了(骄傲脸)// 一行输入,换行结束$r = fgets(STDIN);// 输入的前5个字符$e = fread(STDIN, 5);// 一个字符$s = fgetc(STDIN);

2016-04-05 17:47:33 1507

原创 PHP实现 Manacher 最大回文子串算法

题目:给一个字符串,找出它的最长的回文子序列的长度。 例如,如果给定的序列是“BBABCBCAB”,则输出应该是7,“BABCBAB”是在它的最长回文子序列。输入:aaaa1212asdfdsa1144121输出:47这里我们还是将其封装成函数调用何谓回文序列回文序列就是正向和反向完全一样的序列,比如 asdfdsa 和 aaaa 接下来我们由浅及深,一步一步来说一下 Manacher 算

2016-04-05 11:51:33 2082

原创 蛇形矩阵,回环矩阵,数字螺旋矩阵的PHP实现

回环矩阵指的是一个从一开始,不断按照上、右、下、左顺序依次增大的矩阵序列,例: 1 2 3 8 9 4 7 6 5 现在要求: 输入: m、n,分别代表行数和列数 输出: m * n 的回环矩阵例:输入:7 8输出:1 2 3 4 5 6 7 8 26 27 28 29 30 31 32 9 25 44 45 46 47 48 33 10 24 43 54 57

2016-04-04 10:29:13 2767

原创 现在有N个数字,其中只有一个数字出现的次数是奇数次,如何找到这个数字?

至少要全部过一遍,遍历或是其他什么的 然后依次进行异或,最后结果就是那个数字了 例: // 示例数组 $arr = array(1, 2, 2, 3, 1, 3, 4, 5, 5); // 0与任何数异或都是其本身 $res = 0; foreach ($arr as $value) { // 相同两个数异或结果为0

2016-03-27 16:12:45 2274

java算法大全源码包

java算法大全源码包,1000中java算法

2014-11-11

apache-maven-3.2.3

apache-maven-3.2.3项目管理软件

2014-11-11

IKAnalyzer

全面的IKAnalyzer工具包,包括jar和xml,字典文档

2014-11-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除