Node 的设计错误
Node 的设计错误 Ryan Dahl JS Conf 柏林林 2018.06 背景: 1. 基于最初的开发,我创建了了并管理理 Node。 2. 我的主要关注⽬目标是事件驱动的 HTTP server。 3. 这⼀一主要⽬目标对当时服务器器端的 JavaScript 起着关键作⽤用。即使在当时这⼀一点不不 那么明显,但是服务器器端 JS 的成功需要事件循环的助⼒力力。 的成功需要事件循环的助⼒力力。 背景: 2012 年年我离开 Node 项⽬目的时候,当时我觉得 Node(或多或少)实现了了我的预定 ⽬目标:创建⼀一个⽤用户友好的⾮非阻塞框架,具体内容如下 1 核⼼心⽀支持许多协议:HTTP,SSL... 2. 在 Windows(使⽤用 IOCP)Linux(EPOLL)和MAC(KQuey)上跨平台⼯工作。 3. ⼀一个⽐比较稳定的相对较⼩小的核⼼心API。 4. 通过 NPM 增加外部模块的⽣生态系统。 但我错了了...因为还有许多问题仍待解决..... 使得 Node 保持增⻓长的⼏几项关键⼯工作 1. NPM(Isaac 开发)将核⼼心 Node 库解耦并允许⽣生态系统的分布。 2. N-API 是设计精美的绑定API。 3. Ben Noordhuis 和 Bert Belder 构建了了 libuv。 4.0 码力 | 28 页 | 767.84 KB | 1 年前3Node 在有赞的实践
Node 在有赞的实践 KK 1 • 一、Node 基础框架的迭代与演进 • 二、Node 接入有赞服务化体系的历程 • 三、未来需要做的一些事情 2 3 Koa 中间件 有⼈人(有赞的⼀一个内部管理理系统) 第⼀一个 Node 项⽬目 4 Koa 中间件 有⼈人(有赞的⼀一个内部管理理系统) 第⼆二个 Node 项⽬目 脚⼿手架模板 有赞官⽹网 5 诞⽣生 有赞官⽹网 Astroboy 阿童⽊木 有赞招聘 有赞云官⽹网 Koa + 中间件 脚⼿手架模板 阿童⽊木 0.0.1 6 Koa 中间件 有⼈人 很多项⽬目都开始⽤用 Node 了了 有赞官⽹网 Astroboy 阿童⽊木 有赞招聘 有赞云官⽹网 云控制台 分销 中间件 中间件 7 Koa 交易易 店铺 Astroboy 阿童⽊木 ⽤用户 营销 有赞官⽹网 目前有哪些重要业务用了 Node • 1、订单详情(灰度白名单) • 2、下单(灰度白名单) • 3、微页面(灰度白名单) • 4、有赞云、有赞官网、分销等等 8 二、Node 接入有赞服务化体系的历程 9 10 模板渲染 业务编排 接⼝口转发 业务逻辑 服务接⼝口 服务化 Node.js 11 如何调⽤用? Node.js 12 ⽅方案 2:Node 直接⽀支持0 码力 | 29 页 | 945.50 KB | 1 年前3Node.js Manual & Documentation
Node.js Manual & Documentation 项目网址:http://cnodejs.org Pdf 发布:Lenzhang Table Of Contents Synopsis 概要 Global Objects 全局对象 o global o process o require() o require.resolve() Modules 模块 o Core Modules 核心模块 o File Modules 文件模块 o Loading from `node_modules` Folders 从 `node_modules` 目录中 加载 Optimizations to the `node_modules` Lookup Process 优化 `node_modules` 的查找过程 的查找过程 o Folders as Modules 目录作为模块 o Caching 缓存 o All Together... 总结一下... o Loading from the `require.paths` Folders 从`require.paths`目 录中加载 Note:** Please Avoid Modifying `require.paths` **注意:**0 码力 | 153 页 | 1.21 MB | 1 年前3用 Node.js 滚「雪球」
用 Node.js 滚「雪球」 孟祥宇 mengxy@xueqiu.com http://xueqiu.com/mengxy http://xueqiu.com 聪明的投资者都在这里 「雪球」是什么 管理你的投资信息 与行业专家在线交流 信息复盘 选择Node.js之前的思考 前端工程师的知识结构 HTML/CSS/JS HTTP 前端工程师做什么 ● 面向用户的工程师 初试牛刀 express http://expressjs.com node.js http module } {{ mustache }} 搞定上线 经常挂掉 - -||| uncaughtException https://github.com/shtylman/node-cookie/pull/8 node 进程还在,但是不返回任何请求 还有问题... 错误处理 稳定了,扩大规模0 码力 | 33 页 | 791.85 KB | 1 年前3云原生虚拟数仓 PieCloudDB 的架构和关键模块实现
0 码力 | 43 页 | 1.14 MB | 1 年前3全栈⼯程师之路 Node.js
全栈⼯工程师之路 Node.js by 桑世⻰龙(i5ting) i5ting:⼀一个开源爱好者 StuQ明星讲师 空弦科技CTO Node.js布道者 Cnodejs管理员 ⺫⽬目录 • Part 1:为什么选择 Node.js? • Part 2:Node.js快速开发实践 • Part 3:全栈展望 • Part 4: 如何全栈? Part 1:为什么选择 Node.js? 空弦科技做的是基于云仓储的 SaaS 服务,给中⼩小卖家提供服 务,核⼼心系统是进销存、订单池、WMS。 “JavaScript 是世界上使⽤用最⼲⼴广泛 的语⾔言,没有之⼀一,包括后端开发 ⼯工程师也更爱使⽤用 JavaScript。” ——stackoverflow 以前 我们总是喜欢拿异步说事⼉儿 除了性能,其他都是病? 现在我们拿 Node ⺫⽬目前已经很好的解决了。promise / generator / async 后⾯面会讲。 2、包管理 npm 已经是开源世界⾥里最⼤大的包管理器了,模块⾮非常 丰富(25.6万 )。 我们的瓶颈 • ⼈人 • 开发速度 • 稳定 Node.js 好处 • 同样不优化,性能⽐比⼤大部分语⾔言好。即使优化,也⽐比 其他语⾔言简单,⽐比如Java、go • 有⾜足够多的选择和架构的平衡0 码力 | 50 页 | 1.35 MB | 1 年前3Node.js在YunOS中的最佳实践
Node.js在YunOS中的最佳实践 叶敬福 1 摘要 • YunOS: 万物互联 • YunOS选择Node.js • Node.js在YunOS中的最佳实践 – 对IO优先的Looper机制的改造和优化 – SAB + Worker机制的实践 – 性能优化的实践 2 3 万物互联 4 Cloud App应用场景化 5 CloudApp Manifest.json YunOS选择Node.js 6 基础技术架构 Cloud App Framework Rendering Engine Run(me & Node.js(VM) YunCore Libs & Services YunHAL Linux (kernel + drivers) Cloud App 7 Node.js对YunOS的助力 跨端 8 技术 模块化、NaZve互调、事件模型 Node.js的不足 作为JavaScript虚拟机还不成熟 (缺少完整的libcore) ? 9 与V8强绑定,解耦或升级很困难 (naZve调用强依赖V8接口) ? CPU密集的计算场景中存在性能问题 (单线程,事件驱动,GC效率低) ? Node.js在YunOS中的最佳实践0 码力 | 20 页 | 1.37 MB | 1 年前3Egg & Node.js 从⼩⼯坊⾛向企业级开发
Egg & Node.js 从⼩小⼯工坊⾛走向企业级开发 天猪 / 阿⾥里里游戏前端负责⼈人,Egg 核⼼心开发者 ⾃自我简介 ▸ 天猪 ▸ 阿⾥里里游戏前端负责⼈人,@⼴广州 @Alibaba UC ▸ Node.JS / EggJS / Scrat / Vue ▸ Follow me at : @atian25 @liuyong25 @liuyong25 基于上层框架开发的应⽤用 社区⽣生态 团队架构师 ⼀一线开发者 Node.js Plugin 插件⽣生态 适合特定团队业务场景的上层框架 Framework 蚂蚁 Chair UC Nut aliyun-egg … Specification ⼀一套规范和约定 Tool ⼯工具链 Base on Node.js [1/8] 你是否遇到过? 前端⼩小组 后端⼩小组 简⽽而⾔言之,BFF 谁使⽤用谁开发 ▸ 服务⾃自治带来灵活与⾼高效 ▸ BFF 根据团队的技术栈选型:Java/Node/PHP/Python/Ruby... ▸ 我们的选择: ⼀一件重要的事情:服务⾃自治 在我们的业务场景中,相对较优,⽣生态最活跃,最能被前端接受的 Node.js Base on Koa [2/8] Base on Koa ▸ Koa based framework0 码力 | 70 页 | 7.57 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 16 现代 CMake 模块化项目管理指南
现代 CMake 模块化项目管理指南 彭于斌( @archibate ) 课件 & 源码: https://github.com/parallel101/course 往期录播: https://space.bilibili.com/263032155 找不到头文 件怎么办呀 CMake Cookbook 小彭老师建议 : ~~-·~·~-·~ -~·-·~·- 第一章:文件 / 项目,如何优雅地、模块化地组织大量源文件 ? 推荐的目录组织方式 • 目录组织格式: • 项目名 /include/ 项目名 / 模块名 .h • 项目名 /src/ 模块名 .cpp • CMakeLists.txt 中写: • target_include_directories( 项目名 PUBLIC include) • 源码文件中写: • #include < 项目名 / 模块名 .h> 推荐的目录组织方式 • 头文件(项目名 /include/ 项目名 / 模块名 .h )中写: • #pragma once • namespace 项目名 { • void 函数名 (); • } • 实现文件(项目名 /src/ 模块名 .cpp )中写: • #include < 项目名 / 模块名 .h> • namespace 项目名 { • void 函数名 ()0 码力 | 56 页 | 6.87 MB | 1 年前3聊聊 Node.js 构建部署时我们要关心的数据
聊聊 Node.js 构建部署时 我们要关心的数据 死月 死月 XadillaX(朱凯迪) 蚂蚁金服 Node.js 研发工程师 /《Node.js:来一打 C++ 扩展》作者 • 2013-2015 浙江大学 / 花瓣网 • 2015 大搜车 • 2017 蚂蚁金服 目录 CONTENTS ✦ 源起 ✦ 构建数据 ✦ 插件开发者视角 400+ Node.js 应用 来自灵魂的拷问 我是谁? 我要做什么? 谁用了我? 初衷 egg-niubility 构建部署流程 构建任务 统一脚本 触发部署 应用节点 统一脚本 应用本身 启动元信息收集 接收⽅方 触发构建 部署结果 启动数据 构建数据 2 构建数据 我要关心构建时的哪些数据? 工具 / 版本治理 ‣ Node.js / alinode alinode 运行时版本 ‣ 语言:JavaScript / TypeScript ‣ 前端构建工具 / 版本 ‣ 前后端框架 / 版本 Node.js 版本饼图 Node.js alinode v4.* v6.* v8.* v10.* * 以上图表为演示数据,并非公司真实数据 框架 / 构建工具饼图 Chair 1.3.* Chair 1.4.* Chair 1.5.* Rodhog0 码力 | 47 页 | 5.80 MB | 1 年前3
共 964 条
- 1
- 2
- 3
- 4
- 5
- 6
- 97