首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Node.js】你真的了解 Node.js

最近笔者在阅读《深入浅出Node.js》,结合查阅的相关资料,本文算是一篇 Node.js 笔记。 Node.js 基于 Chrome V8 引擎的 JavaScript 运行时环境。...浏览器和 Node.js 的结构相似的,比如它们都是通过事件驱动的异步架构,浏览器通过事件驱动来完成界面 UI 交互,Node.js 通过事件驱动完成服务 I/O。...既然异步 I/O,那什么时候去指定这个任务呢?跟浏览器一样,Node.js 也有一套事件循环的机制。...Node 基于 libuv 实现跨平台的,它处于操作系统与 Node.js 上层模块之间。libuv 也是很多系统实现跨平台的基础组件。...什么场景下使用 Node.js 适合场景 上文提到,Node.js 单线程、使用非阻塞 I/O 调用,这允许它支持数以万计的并发支持(在事件循环中维持)。

5.4K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    RTO, RPO啥?割韭菜的意思

    第一次听到RPO,我以为专门割韭菜的IPO,加上说这话的人不断对我挤眉弄眼,以至于我手抖,怎么搜都搜不到这个技术名词。 到了最后我才弄明白,他说的RPO,而不是IPO,灾备场景中的名词。...RTO = Recovery Time Objective = 恢复时间目标 RPO = Recovery Point Object = 恢复点目标 其差别,一个Time、一个Point。...值得注意的,任何宣称RTO=0和RPO=0的厂商,都是在吹牛皮。 单机服务 对于单机服务来说,从故障到恢复正常服务,它的间隔时间不可能0。...但如果数据写入的恰好A机房的这三个节点,数据还没有完全同步到B机房,那同步时间间隔内的数据就会丢失。...所以智能的服务还要有能够识别出机房和zone的能力,以便在发生问题时,B机房起码有一份数据时刻最新的。

    1.5K40

    这么写接口的

    夏日的美好 本文来自一位前端人员的吐槽,笔者自己在做接口测试的时候,也会发现各类不太合理的接口定义,看看前端人员怎么说。...一个接口可以10分钟搞定,复杂的搞个一周都有可能,有时我们在项目中可能急于完成任务,而忽视了其他方面,但,我认为有些问题可以提前避免的。 01 接口能实现功能就可以了吗?...什么好的接口? 一个能满足需求实现的接口远远达不到“好”的标准,我相信大部分的Java工程师都可以写出满足需求实现的接口,但是并非所有人都能写出好的接口。.../模块下的,后面就不需要再出现了,应改为:dashboard/group/treeList 笔者注:这个规范的问题,产品级的系统,还是要注意规范化编码,减少人为障碍。...问题三:路由风格要统一 接口风格不统一,有些Rest风格的,有些不是Rest风格的 问题四:所有接口全部合成一个 上图某项目的销售简报,从电商迁移过来的,一个页面中有多个图表,但全部用一个接口查询返回

    16310

    这么写接口的

    本文来自一位前端人员的吐槽,笔者自己在做接口测试的时候,也会发现各类不太合理的接口定义,看看前端人员怎么说。...一个接口可以10分钟搞定,复杂的搞个一周都有可能,有时我们在项目中可能急于完成任务,而忽视了其他方面,但,我认为有些问题可以提前避免的。 01 接口能实现功能就可以了吗?...什么好的接口? 一个能满足需求实现的接口远远达不到“好”的标准,我相信大部分的Java工程师都可以写出满足需求实现的接口,但是并非所有人都能写出好的接口。...问题三:路由风格要统一 接口风格不统一,有些Rest风格的,有些不是Rest风格的 问题四:所有接口全部合成一个 上图某项目的销售简报,从电商迁移过来的,一个页面中有多个图表,但全部用一个接口查询返回...往期推荐: 测试团队的一次复盘实践 接口测试断言 你写的接口脚本合理 事务一致性测试 研发效能度量指标的陷阱思考

    12120

    你知道什么标签函数

    JS中有一类特殊的函数 —— 标签函数,用于自定义模版字符串的处理逻辑。...内置的标签函数 JS中只有一个内置标签函数 —— String.raw,用于获取模字符串的原始字符串形式,即: 处理替换(例如替换${name}为变量实际的值) 不处理转义序列(例如 \n) 对于如下代码...要实现一个简易的String.raw也很简单,比如下面的myRaw,其中: strings参数保存原始字符串的数组 values参数保存所有替换变量的数组 function myRaw(strings...身份标签 标签函数的一个有意思的应用场景「定义身份标签」,也就是告诉编译器「接下来这段模版字符串是什么语言」。...举个例子,我们在JS文件中定义两个变量(markup与style),IDE此时只认为这是两个普通的模版字符串(没有语法高亮): 现在,我们将String.raw分别重命名为html和css: const

    43010

    这么骚的 js 代码,不怕被揍

    因此,之前有大牛提出,不要在 JS 中使用位运算: Javascript 完全套用了 Java 的位运算符,包括按位与&、按位或|、按位异或^、按位非~、左移>和用0补足的右移>>>...这套运算符针对的整数,所以对 JavaScript 完全无用,因为 JavaScript 内部,所有数字都保存为双精度浮点数。...但是在我看来,如果对 JS 的运用达到炉火纯青的地步,能避开各种“Feature”的话,偶尔用一下位运算符也无所谓,还能提升运算性能,毕竟直接操作的计算机最熟悉的二进制。...位运算的原理可以参考这篇文章 《位运算符在JS中的妙用》 1....9. n & (n - 1),如果为 0,说明 n 2 的整数幂 ? 10. 使用 A + 0.5 | 0 来替代 Math.round() ? 如果负数,只需要-0.5 ?

    1.5K20

    程序员吃青春饭

    那些写程序员不是吃青春饭的文章,基本上都是这两点理由:第一见着的老程序员写代码都超级牛叉,小年轻都自愧不如,人家收入还很高;第二国外人家程序员写到退休的有的啊。...基本上就这两点吧,这两点第一点说的岁数大的技术大牛,第二外国人,各位对号入座觉着自己能成为岁数大写代码很牛叉的那个还是能成为外国人呢? 编程这个工作并没有多少年的历史。...有一个公认的的结论就是,程序员一个需要长期不断学习新知识的工种,老程序员的弱点就是在学习新知识这块,精力的确不如年轻人。...再有一些公司,有一些程序员可以自己主动转职的,比如转实施或者转测试啊等等,代码写的没那么牛就可以想办法改成公司中的其他工种,这也是转型,有很多人就写了一两年代码就改行了,发展其实也未必比程序员差。...如果不转型的话,岁数大一些以后,就得琢磨养老问题啦,最好找一个公司比较稳定,不经常换技术的公司,今天学安卓明天学ios的这种公司就不要待了,开了一辈子车的老司机也不习惯今天学开装载机明天学开挖掘机。

    94250

    Semihosting真的嵌入式阑尾

    要回答这个问题,就要搞清楚这里的所谓的“做东”主要是为谁提供怎样的服务,这里: 客人(被服务的对象)运行在MCU上的程序; 服务主要是 Libc 所许诺提供的服务; 与大家一般意义上的理解不同: 这里的主人并非...(然而并不是,哈哈哈……) 【Semihosting如何成为嵌入式“阑尾”的】 正如前面所说,Semihosting一种由PC上运行的调试程序(Debugger),经由调试仿真器(Debugger...其中 BKPT Cortex-M 的 Break Point(软件断点)指令,而常数 0xAB 则是 Semihosting 专用暗号。...下面Semihosting所覆盖的libc功能的主要类别: 1....Compiler 5向Arm Compiler 6迁移必经之路上的拦路虎之一就是名为BKPT 0xAB的Hardfault: 你以为你写了 int main(void) 编译器就不给main()函数传参数了

    28920

    实时性迷思(1) —— “快优点?”

    相信不少朋友和我一样通过实时性操作系统(Real Time Operating System, RTOS)第一次接触到实时性概念的——我记得那还是大学时代、参加机器人竞赛的时候。...考虑一个有趣的问题:对一个实时性任务来说,实时性窗口内的时间,其价值一样的?换句话说,横竖处理事件消耗的时间不变的,早点做迟点做都是做,有什么区别?...需要强调的,task_a()、task_b()和task_c()三个函数的策略本质上都是一样的——“一旦检测到事件立即处理,绝不迟延”!...作为一个系统开发者,我们显然需要从全局考虑的,因此完全没有必要从单个实时性任务的自私视角来看问题,因此结论就变得更为直接:实时性窗口内越靠前的时间价值越高,从总体上来看“单纯”越快越好的策略对实时性有害的...从结论上看简单的“越快越好”策略在实时性系统中不允许的。

    1.1K30

    Redis 架构如何演进?为什么?

    Redis 现在已经十分流行,互联网几乎所有项目都会用到,在使用 Redis 时,你知道如何保证稳定和高效的提供服务呢,它的架构演化路程是什么呢?...哨兵集群 有了主从复制就万无一失了?答案是否定的。 因为我们通过人工介入来实现主从切换的,就必须要算上人的反应时间、操作时间,所以,在这期间你的业务应用依旧会受到影响。 如何把这个过程自动化?...哨兵 Redis 的一种运行模式,它专注于对 Redis 实例(主节点、从节点)运行状态的监控,并能够在主节点发生故障时通过一系列的机制实现选主及主从切换,实现故障转移,确保整个 Redis 系统的可用性...Redis 集群一种分布式数据库方案,集群通过分片(sharding)来进行数据管理(「分治思想」的一种实践)。 将数据划分为 16384 的 slots,每个节点负责一部分槽位。...一个无中心架构,并提供复制和故障转移功能。 展望未来 Redis 受欢迎主要原因极高的性能以及丰富、方便使用的数据结构,这些简单好用的数据结构大幅度降低开发业务复杂度。

    15310

    delete后加 limit个好习惯

    blog.csdn.net/qq_39390545/article/details/107519747 在业务场景要求高的数据库中,对于单条删除和更新操作,在 delete 和 update 后面加 limit 1 绝对个好习惯...delete limit 语法如下,值得注意的,order by 必须要和 limit 联用,否则就会被优化掉。...针对上述第二点,前提 sex 上加了索引,大家都知道,加锁都是基于索引的,如果 sex 字段没索引,就会扫描到主键索引上,那么就算 sex = 1 的只有一条记录,也会锁表。...确实是这样的,第二种方式相对较好的。 第一种方式(即:直接执行 delete from T limit 10000)里面,单个语句占用时间长,锁的时间也比较长;而且大事务还会导致主从延迟。...所以,在 delete 后加 limit 个值得养成的好习惯。 好了,本文就带你了解这些,如果有相关疑问和好想法,请在下方留言,方便和小伙伴儿们一起讨论。

    66710

    delete后加 limit个好习惯

    详细了解请跳转另一篇博文《delete、truncate、drop 的区别有哪些,该如何选择》 下面只讨论 delete 场景,首先,delete 后面支持 limit 关键字的,但仅支持单个参数,也就是...delete limit 语法如下,值得注意的,order by 必须要和 limit 联用,否则就会被优化掉。...针对上述第二点,前提 sex 上加了索引,大家都知道,加锁都是基于索引的,如果 sex 字段没索引,就会扫描到主键索引上,那么就算 sex = 1 的只有一条记录,也会锁表。...确实是这样的,第二种方式相对较好的。 第一种方式(即:直接执行 delete from T limit 10000)里面,单个语句占用时间长,锁的时间也比较长;而且大事务还会导致主从延迟。...所以,在 delete 后加 limit 个值得养成的好习惯。 之前,给大家发过三份Java面试宝典,这次新增了一份,目前总共四份面试宝典,相信在跳槽前一个月按照面试宝典准备准备,基本没大问题。

    49130

    delete后加limit个好习惯

    在业务场景要求高的数据库中,对于单条删除和更新操作,在delete和update后面加limit 1绝对个好习惯。...详细了解:https://blog.csdn.net/qq_39390545/article/details/107144859 下面只讨论delete场景,首先,delete后面支持limit关键字的...delete limit语法如下: (值得注意的,当需要用到order by排序时,必须order by + limit联用,否则order by 就会被优化器优化掉,被认为无意义。)...针对上述第二点,前提sex上加了索引,大家都知道,加锁都是基于索引的,如果sex字段没索引,就会扫描到主键索引上,那么就算sex = 1 的只有一条记录,也会锁表。...所以,在 delete 后加 limit 个值得养成的好习惯。 好了,本文就带你了解这些,如果有相关疑问和好想法,请在下方留言,方便和小伙伴儿们一起讨论。

    68020
    领券