- 分类
- Coding
编程开发与计算机科学
Laravel 的默认错误处理器通过 Illuminate\Http\Request
的 expectsJson()
方法来决定是否将错误信息渲染成 JSON 格式输出。这要求将请求头的 Accept
字段设置为 application/json
。本文提供一种方法,在尽可能减少代码的情况下,强制让 api 路由组中的所有错误响应变成 JSON 格式,而不依赖于请求的 Accept
头部
Cloudflare 默认不缓存 HTML 页面,必须通过添加页面规则(Page Rule)来开启网页缓存。然而,免费用户每个站点最多只能添加三条规则。对于一个复杂的项目来说,三条规则是远远不够用的。通过设置源站缓存控制(Origin Cache Control),可以仅使用一条规则来启用全站缓存。
……
刚接触 Java,没想到连这种基础功能都需要自己实现,而且还如此复杂。虽然最后也完成了实现代码,不过最后还是使用了 org.reflections
第三方包。记录实现代码,万一以后用得到
Vert.x 是一款基于 JVM 的高性能异步框架。使用官网提供的项目生成器创建的 gradle 配置有一个 BUG,导致在 Windows 环境下无法完成自动部署。 修复方法如下
在使用 Vagrant 的过程中发现了一个问题:对于使用 config.vm.synced_folder
进行配置的共享文件夹,如果在 Host 系统(本地环境)中修改了其路径下的文件,在 Guest 系统(虚拟机环境)中是无法通过 inotifywait
接收到文件系统事件的。
而通常情况下,Vagrant 的共享目录是用来存放源代码的。我们会在 Host 系统中编辑源代码,在 Guest 系统中运行它们。如果 Guest 系统无法监控源代码目录的变化,就无法实现源代码的自动编译和热加载。
……
Swoole 是一种常驻内存进程 Reactor 模式的框架。
支持 Swoole 的 Web 框架:
1 和 2 可以让 Swoole 支持 Laravel 框架;个人更倾向于 Hyperf;Swoft 很好,但也很重,如果要使用Swoft,不如考虑换个技术栈,比如 Java 或 Python。
……
如果还不清楚什么是 CQRS 和 Event Sourcing 模式,可以先阅读下面的两篇文章:
Event Sourcing 模式,即事件溯源模式。该模式使用只可追加的存储来记录对数据所进行的所有操作,而不是存储领域数据的当前状态。其中,存储 Event 记录的介质称作 Event Store。
CQRS(Command Query Responsibility Segregation),即命令和查询责任分离。该模式使用单独的接口来隔离更新数据(命令)的操和读取数据(查询)的操作。这意味着用于查询和更新的数据模型是不同的。
……
Python Web 框架有如下几种部署方式:
WSGI是最常见的接口,由PEP333和PEP3333规范定义,获得了最广泛的支持。
WSGI接口的上游是HTTP Server,下游是WSGI应用,而提供WSGI服务的程序被称为WSGI容器。生产环境中常见的WSGI容器有Gunicorn、uWSGI、Apache mod_wsgi等。另外,很多框架本身也提供了WSGI容器,比如:Gevent、Tornado、Twisted。其中,Gunicorn可以通过自定义worker_class搭载其他异步框架来提高性能,比如:Gevent、Tornado、Meinheld等,且容器中运行的也不一定是标准的WSGI应用,比如Gunicorn+Sanic。
……