推荐阅读

为速度而生的Laravel框架Lumen(一)-安装与部署

Lumen?Lumen是什么?Lumen其实是Laravel的微框架,相信大家都听过Laravel了吧?Laravel是号称宇宙最快的框架之一,而Lumen就是构建在Laravel之上,使其具备Laravel强大的功能,适合用于构建微服务架构和API应用。官网:http://www.golaravel.com/介绍:https://phphub.org/topics/701服务器要求PHP>=5.6.4OpenSSLPHPExtensionPDOPHPExtensionMbstringPH

更新时间: 2017-12-15 11:05:29 0

程序员自我修炼(一) - 如何编写合格代码(下)

在《如何编写合格代码》的上篇中的开头,我给大家分享了对于“合格的代码”的定义。在本文的开头,不妨先让大家重温一下:满足要求定义的初始化规则代码清晰简洁,没有思维逆反的逻辑或者刻意为之的陷阱代码尽可能控制代码风险合理的代码注释合理的标准化接口定义合,杜绝误用或者滥用关于前三点的具体注意事项和例子,之前已经有所阐述。(有所忘记的读者可以再重读上篇)接下来,我将会继续阐述剩下的两点守则。合理的代码注释当一个经验丰富的工程师第一眼接触到不合格的代码时,就会下意识地有所察觉。而引起这种“不适感”的很大一个

更新时间: 2017-12-15 10:48:45 0

AvalonJS 源码分析(一)

上次主要讲解了avalon的整体框架,以及其模块加载器,那么接下来我们将一步一步讲解接下来的参数(注入)依赖部分,今天使用的源码跟上次分析的一样也是2.16版本。整体内容介绍:从我们上一次最后讲解的部分开始,也就是从代码63行到结束,我们所讲的参数(注入)依赖部分是以一个数组的形式引入的,从开始到结束一共有80个模块,这样可以直接以数组下标去直接引入我们所需要的模块。例如:__webpack_require__(0);这里直接加载模块一,也是直接返回我们最终一个的avalon对象分析一:模块一和

更新时间: 2017-12-15 10:47:38 0

Swoole入门(5)☞进程相关知识

什么是进程?什么是上下文、上下文切换?进程包含三个要素:1.一个可执行的程序。2.和该进程相关的数据;包括变量、内存空间、缓冲区等。3.程序的执行上下文。【总结】:1.进程就是一个可执行程序的一次执行过程中的一个状态。2.系统中有个进程表,进程表中的每一项记录了每个进程当前的状态,方便系统的管理。什么是上下文?上下文可以理解为当时的环境,环境可以包括当时程序状态以及变量的状态什么是上下文切换?上下文切换(ContextSwitch)是一种将CPU资源从一个进程分配给另一个进程的机制之前,会保存现

更新时间: 2017-12-15 10:25:06 0

Swoole入门(4)☞创建毫秒级定时器

crontab服务VS基于swoole的定时器一般开发者都是使用linux自带的crontab定时处理服务,crontab服务够稳定,有日志,基于服务器,非常好用;但是有个缺点就是只支持分钟时间级别的定时器。而swoole的timer定时器完全可以弥补这个缺点,支持毫秒级的定时器,同时支持异步操作!timer定时器timer定时器基于Reactor线程,在Worker进程和Task进程使用。timer定时器基于epoll的timeout机制实现。timer定时器使用最小堆数据结构存放定时任务,触

更新时间: 2017-12-15 10:24:04 0

Swoole入门(3)☞使用Worker、Task模块

task模块的用途task模块可以用来一些异步的慢速任务,比如广播消息,发送群邮件等等;同时还支持PHP的数据库连接池,异步队列等,功能很强大。当swoole接收到任务时,worker进程将任务丢给task进程之后,worker进程可以继续处理新的数据请求。任务完成后会异步地通知worker进程告诉它此任务已经完成。再次深入了解Reactor、Worker、Task的关系Reactor线程Reactor线程以多线程、异步非阻塞模式接收客户端机器的TCP连接、处理网络IO、收发数据;Reactor

更新时间: 2017-12-15 10:22:55 0

Swoole入门(2)☞创建TCP服务器

编码前的准备在编码之前需要简单了解下网络协议,下面主要介绍一下协议中的TCP、UDP协议,何两者区别是?何为网络通信协议?从计算机时代的开始,由一个个相互独立的计算机,到计算机和计算机互联,最后形成一个计算机互联网;而这其中的互联是就是通过互联网规定的通信协议来实现的,它规定了如何在两机之间传输,规定了传输数据的大小,方式。TCP协议TCP最主要的一个特点是可靠、可靠、可靠;即提供可靠的数据传输服务。那么TCP要保证可靠性,就需要在源和目的方建立一个连接来维持可靠性,而这个连接就叫三次握手。下面

更新时间: 2017-12-15 10:21:08 0

SWOOLE入门(1)☞初识SWOOLE

什么是swoole?Swoole允许通过PHP构造一个新的Server,提供跟Apache类似的功能,监听请求,作出响应。这个时候PHP不再是写Web业务逻辑的PHP了,它参与了Server的构建,成为一个NetworkServer,也不需要依赖与apache/nginx,因此访问该server是通过cli模式,不能再通过浏览器访问了。PHP和swoole到底是什么关系呢?很多编码人都认为PHP语言大部分都用来做Web开发,更有人认为只能做Web;把PHP黑的可惨,此次我必须得替天行道,匡扶正义

更新时间: 2017-12-15 10:19:49 0

AvalonJS 源码分析(一)

前言之前通过一篇文章简单介绍了avalon这个前端框架,作为这款框架的使用者,在了解过它所带来的好处之后,那必然会对它是如何实现的产生好奇感。那这次就一起来研究下它的代码,也通过这次机会来更深入了解它本身的实现方式和设计思想。好,我们进入主题,以官方2.16为分析对象。打开avalon之后,首先我们看到avalon的源码,开始是这样着的:(functionwebpackUniversalModuleDefinition(root,factory){if(typeofexports==='obje

更新时间: 2017-12-14 14:12:15 0

Ceph源码之 common/config.*

今天在研究ceph时,看到一个初始化成员变量的技巧。如果一个class中有成百上千个成员变量,有没有觉得当写类头文件都写到手痛,还要在构造函数里初始化它们,简直不敢再想下去了。像下图这样,这只是头文件:还有实现的:接着还有get和set:以上是最笨的方法。那么ceph的开发者是怎样做的呢。他们利用c++的宏,在class的头文件定义成员变量前定义好要用的宏,如下OPTION(name,ty,init)宏能根据ty,也就是成员变量的类型,在编译时生成成员变量,成员变量的最终定义是在common/c

更新时间: 2017-12-14 12:05:17 0

微信关注

获取更多技术咨询