生成器提供了一种更容易的方法来实现简单的对象迭代,相比较定义类实现 Iterator 接口的方式,性能开销和复杂性大大降低。
uHTTPd详解
uHTTPd
uHTTPd 是一个 OpenWrt/LUCI 开发者从头编写的 Web 服务器。 它着力于实现一个稳定高效的服务器,能够满足嵌入式设备的轻量级任务需求,且能够与 OpenWrt 的配置框架 (UCI) 整合。默认情况下它被用于 OpenWrt 的 Web 管理接口 LuCI。当然,uHTTPd 也能提供一个常规 Web 服务器所需要的所有功能。
WebBench剖析
webbench.c: ```c /*
- (C) Radim Kolar 1997-2004
- This is free software, see GNU Public License version 2 for
- details. *
- Simple forking WWW Server benchmark: *
- Usage:
- webbench –help *
- Return codes:
- 0 - sucess
- 1 - benchmark failed (server is not on-line)
- 2 - bad param
- 3 - internal error, fork failed
*
*/
#include “socket.c”
#include
#include <rpc/types.h> #include #include #include <sys/param.h> #include #include
异步阻塞IO和异步非阻塞IO对比
Socket的同步阻塞IO和IO多路复用对比
教室根据课程排位
这是segmentfault中的一个问题,尝试把算法写出来了。
PHP异常处理注意项
在实际开发中,错误及异常捕捉仅仅靠try{}catch()是远远不够的。 所以引用以下几中函数。
- set_error_handler 一般用于捕捉 E_NOTICE 、E_USER_ERROR、E_USER_WARNING、E_USER_NOTICE 不能捕捉: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR and E_COMPILE_WARNING。
- set_exception_handler 设置默认的异常处理程序,用于没有用 try/catch 块来捕获的异常。 在 exception_handler 调用后异常会中止。 与throw new Exception(‘Uncaught Exception occurred’),连用。
- register_shutdown_function 执行机制是:php把要调用的函数调入内存。当页面所有PHP语句都执行完成时,再调用此函数。 一般与trigger_error(“…”, E_USER_ERROR),配合使用。
一个PHP算法面试题优化过程
$listData = [
'111' => ['a', 'b', 'c', 'a'],
'222' => ['d', 'e', 'f', 'f', 'b'],
'333' => ['g', 'h'],
'444' => ['i', 'j'],
...
];
定义一个函数,传入$listData 如果111里面的元素,和 222/333/444… 里面的元素有重复,返回false 如果222里面的元素,和 111/333/444… 里面的元素有重复,返回false 如果333里面的元素,和 111/222/444… 里面的元素有重复,返回false 如果 … 允许 111/222/333/444 自己里面的元素重复,返回true 其他情况返回true
ELK命令
Yii2架构探究
基于Yii2框架的架构分析图,整理了请求的生命周期以及主要功能模块的关系。
通过DI(依赖注入)载入各模块
重要模块说明:
- 路由、请求模块
- Module模块,将应用了多块模块,便于开发,管理
- Controller解析Action参数,调度执行Action,根据结果渲染Views
- Action,实现业务逻辑;主要关联模块就是数据库操作的Model
- Model,AR模型,数据库封装
- Views,模板引擎
服务说明:
- 会话、Cookie
- Exception、Logger
- 认证授权
- 缓存
- 加密(TOKEN)
- 国际化
- 验证类
- Restful
- 邮箱
- 任务调度
- 队列
- 等等。。。
其他:
- Codeception测试框架