Node 的设计错误Node 的设计错误 Ryan Dahl JS Conf 柏林林 2018.06 背景: 1. 基于最初的开发,我创建了了并管理理 Node。 2. 我的主要关注⽬目标是事件驱动的 HTTP server。 3. 这⼀一主要⽬目标对当时服务器器端的 JavaScript 起着关键作⽤用。即使在当时这⼀一点不不 那么明显,但是服务器器端 JS 的成功需要事件循环的助⼒力力。 ⽤用它进⾏行行快速的⼀一次性计算。 ⽽而 JavaScript 就是最好的动态语⾔言。 但是相反,现在我将会抱怨 Node 的所有缺点。 当你是某个项⽬目的负责⼈人时,你总是很难发现其中的错误。 有时 Node 对我来说就像是板上钉钉的事。 它本来可以更更好。 遗憾:不不遵守“诺⾔言” • 我在 2009 年年 6 ⽉月向 Node 添加了了 Promise,但在 2010 年年 可能是⼀一个不不错的选择。 • 如果允许其他⼈人针对 Go 或 Rust 构建他们⾃自⼰己的 Deno,C ++可能仍然是 ⼀一个不不错的选择? Deno ⽬目标:杂项 • 发⽣生未捕获 Promise 错误时⽴立刻⾃自动终⽌止运⾏行行(疯狂的是在 Node 中并⾮非如此) • ⽀支持 top-level 的 await (尚未在原型中) • 兼容浏览器器(功能重叠时) 它诞⽣生只有⼀一个⽉月的时间。0 码力 | 28 页 | 767.84 KB | 1 年前3
Go在工程实践的错误处理Golang在工程实践中的错误处理 彭友顺 石墨文档 产研负责人 目 录 为什么我们处理错误会这么慢 01 如何完善错误信息 02 优雅处理错误信息 03 分布式错误处理 04 错误信息手册的必要性 05 为什么我们处理错误 会这么慢 第一部分 错误信息不够完善 why 原因 出现 错误 定位 慢 恢复 慢 效率低 为什么我们处理错误会这么慢 错误处理不够优雅 分布式错误难以串联 分布式错误难以串联 错误信息难以识别 如何完善错误信息 第二部分 为什么调试慢?-- 错误信息 高亮信息 封装组件 充足信息 gRPC错误日志:param error 哪个Client 调用? 哪一行代码 调用? 我的 参数问题? 对方的问题? ... 遇到一个问题,我们就追加一个日志字段,排查错误效率非常低 为什么调试慢?-- 错误信息 高亮信息 封装组件 充足信息 对端信息 对端信息 请求方法 请求参数 响应数据 状态信息 耗时时间 执行行号 能够确定对端的唯一来源,例如对端的应用名称、对端的 配置、对端的IP。 对端请求的方法。 请求的参数信息,包括 header 里的 metadata 响应的数据,包括 header 里的 metadata 错误码和错误信息 请求到响应的耗时时间 调用处执行的行号 总结起来,调试阶段需要对接的信息 为什么调试慢?--0 码力 | 30 页 | 3.11 MB | 1 年前3
Java EE 企业应用系统开发 - HTTP 响应处理编程大纲 HTTP 响应的内容 HTTP 响应对象 响应对象功能和方法 Java EE 企业应用系统开发 HTTP 响应处理编程 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 November 17, 2018 大纲 HTTP 响应的内容 HTTP 响应对象 响应对象功能和方法 学习目标 1. 掌握 HTTP 响应的内容,包括响应状态行、响应头、响应 体。 2. HTTP 响应对象的类型及其生命周期,掌握响应 对象的功能。 3. 学习并实践掌握部分响应对象方法的用法。 大纲 HTTP 响应的内容 HTTP 响应对象 响应对象功能和方法 大纲 HTTP 响应的内容 HTTP 响应对象 响应对象功能和方法 大纲 HTTP 响应的内容 HTTP 响应对象 响应对象功能和方法 接下来⋯ HTTP 响应的内容 HTTP 响应对象 响应对象功能和方法 大纲 HTTP 响应的内容 HTTP 响应对象 响应对象功能和方法 HTTP 响应的内容 在 Web 服务器接收请求处理后,向客户端发送 HTTP 响应 (Response)。 O 响应的内容 ▶ 响应状态(Status Code) ▶ 响应头(Response Header) ▶ 响应体(Response Body) 大纲 HTTP 响应的内容 HTTP 响应对象 响应对象功能和方法0 码力 | 26 页 | 575.28 KB | 1 年前3
一次线上java 应用响应时间过长问题的排查链滴 一次线上 java 应用响应时间过长问题的排查 作者:xinzhongtianxia 原文链接:https://ld246.com/article/1569574881351 来源网站:链滴 许可协议:署名-相同方式共享 4.0 国际 (CC BY-SA 4.0)最近接手一个老 java 应用,没多久接到响应时间太长的报警,整个排查过程还是挺有意思的, 录一下。
整个过程中,设计到 cpu,内存,垃圾回收,引用,spring, 单例 等等知识,整个下来,心情愉悦。< p>接到报警
吃完晚饭回来,接到报警短信,服务响应时间太长,达到 2s 以上。
第一反应,怎么可能,这个应用很简单,就提供了几个查询接口,QPS 第一反应,怎么可能,这个应用很简单,就提供了几个查询接口,QPS 单机也就 10 左右,居然响应 间 2s 以上,这不科学。看监控
看监控平台,有问题的机器,cpu 占用很高,这。。。更不科学了。理论上,这应用 cpu 能到 1 就不错了,现在居然 80%,吓得我赶紧跑到机器上,top 了一把,确实是 java 应用占用 cpu 很高。 /p>
找出占用
0 码力 | 3 页 | 247.74 KB | 1 年前3
大型Web项目可用性提升 零脚本错误的实战 郭林烁 2017.100 码力 | 62 页 | 7.09 MB | 1 年前3
《Java 应用与开发》课程讲义 - 王晓东. 151 12.1.2 Java 异常分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 12.1.3 常见错误 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 12.1.4 常见异常 . . . . . . . . 18 HTTP 响应处理编程 231 18.1 HTTP 响应的内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 18.1.1 HTTP 响应的内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 18.2 HTTP 响应对象 . . . . . . . 234 18.2.1 响应对象类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 18.2.2 响应对象生命周期 . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 18.3 响应对象功能和方法 . . . . . . . .0 码力 | 330 页 | 6.54 MB | 1 年前3
Laravel 5.2 中文文档Artisan 命令 down 即可: php artisan down 要关闭维护模式,对应的 Artisan 命令是 up: php artisan up 维护模式响应模板 默认的维护模式响应模板是 resources/views/errors/503.blade.php 维护模式 & 队列 当你的站点处于维护模式中时,所有的队列任务都不会执行;当应用退出维护模式这些任 秀的开发 环境,有了它,我们不再需要在本地环境安装 PHP、HHVM、Web 服务器以及其它工具 软件,我们也完全不用再担心误操作搞乱操作系统 —— 因为 Vagrant 盒子是一次性的, 如果出现错误,可以在数分钟内销毁并重新创建该 Vagrant 盒子! Homestead 可以运行在 Windows、Mac 以及 Linux 系统上,其中已经安装好了 Nginx、 PHP7.0、MySQL 所有路由 都使用了中间件组 web,而这个中间件组为路由提供了 Session 状态和 CSRF 保护功 能。通常,我们会将所有路由定义在这个路由组中。 有效的路由方法 我们可以注册路由来响应任何 HTTP 请求: Route::get($uri, $callback); Route::post($uri, $callback); Route::put($uri, $callback);0 码力 | 377 页 | 4.56 MB | 1 年前3
Laravel 5.1 中文文档// }]); 更多关于中间件的内容,请查看中间件一节。 测试革新 Laravel 中内置的测试功能获得了引入注目的提升,多个新方法提供了平滑的,富有变现力 的接口和应用进行交互并测试响应: public function testNewUserRegistration(){ $this->visit('/register') ->type('Taylor' Artisan 命令 down 即可: php artisan down 关闭维护模式,对应的 Artisan 命令是 up: php artisan up 3.1 维护模式响应模板 默认的维护模式响应模板位于 resources/views/errors/503.blade.php 3.2 维护模式 & 队列 当你的站点处于维护模式中时,所有的队列任务都不会执行;当应用退出维护模式这些任务 盒子,该盒子提供了一流的开发环境,有了它,我们不再需要在本地环境 安装 PHP、HHVM、web 服务器以及其它服务器软件,我们也完全不用再担心误操作搞乱 操作系统——因为 Vagrant 盒子是一次性的,如果出现错误,可以在数分钟内销毁并重新创 建该 Vagrant 盒子! Homestead 可以运行在 Windows、Mac 以及 Linux 系统上,其中已经安装好了 Nginx、 PHP5.6、MySQ0 码力 | 307 页 | 3.46 MB | 1 年前3
Laravel 5.6 中文文档config/logging.php 配置文件,你现在可以轻松构建发送日志消息到多个处 理器的日志”堆栈”。例如,你可以发送所有 debug 级别消息到系统日志同时发送 error 级别消息到 Slack 以便团队成员可以快速响应: 'channels' => [ 'stack' => [ 'driver' => 'stack', 'channels' => ['syslog' Collision 默认的 laravel/laravel 应用现在为 Collision 包含了一个 dev Composer 依赖,这个扩展包在通过命令行与 Laravel 应用交互时提供了美观的错误 报告: 本文档由 Laravel 学院提供 Laravel 学院致力于提供优质 Laravel 中文学习资源:http://laravelacademy.org 4 Paginator::useBootstrapThree(); } } 资源 original 属性 资源响应的 original 属性现在被设置为原始模型而不是 JSON 字符串/数组。这样在测试中就可以更好地检查响应的模型。 路由 返回新创建的模型 从路由中直接返回新创建的 Eloquent 模型时,响应状态码由 200 调整为 201,如果应用的任意相应测试显式期望 200 状态码,那么需要将它们修改0 码力 | 377 页 | 14.56 MB | 1 年前3
Laravel 6.0 中文文档com 2 第一部分:序言 新版特性 Laravel 6.0(LTS 版本) 在 Laravel 5.8 的基础上继续进行优化, 包括引入语义化版本、兼容 Laravel Vapor、优化授权响应、支持任 务中间件、新增懒集合、优化数据库子查询、将前端脚手架提取到独 立的 Composer 包 laravel/ui、以及多个 bug 修复和可用性的提 升。 语义化版本 Laravel 支持 Ignition,这个一个开源的错误和异常详情页项目, 由 Freek Van der Herten 和 Marcel Pociot 创建并维护。相对于之 前版本的错误显示,Ignition 提供了诸多便捷之处,比如优化了 Blade 错误文件和行号处理、针对常见问题的可执行解决方案、代码 编辑、异常分享、以及经过优化的用户体验。 优化授权响应 在之前版本的 Laravel 中,获取并提供自定义授权消息给终端用户 中,获取并提供自定义授权消息给终端用户 很困难,主要难点在于如何向终端用户解释清楚为什么特定的请求被 拒绝了。在 Laravel 6.0 中,我们可以使用 Gate::inspect 方法和 授权响应消息来轻松实现。例如,给定如下策略方法: /** * 判断用户是否可以查看指定的航班. * * @param \App\User $user * @param \App\Flight $flight0 码力 | 1442 页 | 14.66 MB | 1 年前3
共 424 条
- 1
- 2
- 3
- 4
- 5
- 6
- 43













