新书速览|循序渐进Node.js企业级开发实践
《循序渐进Node.js企业级开发实践》

1
本书内容
《循序渐进Node.js企业级开发实践》结合作者多年一线开发实践,系统地介绍了Node.js技术栈及其在企业级开发中的应用。全书共分5部分,第1部分基础知识(第1~3章),介绍Node.js的基础知识,包括模块化、测试等;第2部分核心编程(第4~9章),介绍Node.js的缓冲区、事件、定时、文件、进程、流等方面的处理;第3部分网络编程(第10~16章),介绍Node.js的TCP、UDP、HTTP、WebSocket、TSL/SSL、常用Web中间件、Vue.js与响应式编程等方面的内容;第4部分数据存储(第17~19章),介绍Node.js关于MySQL、MongoDB、Redis等数据存储的操作;第5部分综合应用(第20章),介绍Node.js实现即时聊天应用的完整过程。除了Node.js技术外,本书还讲述了Express、Socket.IO、Vue.js、MySQL、MongoDB、Redis等热门技术的应用。本节还精心设计了26个实战案例和43个上机练习,所有练习都提供了操作步骤,便于读者实操演练,快速上手。
2
本书作者
柳伟卫,网名老卫、waylau,在IT公司担任过项目经理、架构师、高级技术顾问等职位,拥有十余年开发经验,具有丰富的软件开发管理及系统架构经验。主导过多个省、国家级大型分布式系统的设计与研发,参与过面向全球的供应链系统服务化改造。在实际工作中,积累了大量的分布式系统、微 服务架构以及性能调优经验。业余时间创建了 waylau.com 网站,用于分享个人技术心得。喜欢开源,长期跃于各大开源社区,编著了《跟老卫学HarmonyOS开发》《Netty 实战(精髓)》等近30余本开源技术教程(见 https://waylau.com/books/),广受网友好评,是 CSDN、 开源中国、阿里云开发者、华为开发者等技术社区专家,慕课网、华为开发者联盟社区认证讲师。已出版包括《HarmonyOS应用开发入门》《分布式系统常用技术及案例分析》《Java核心编程》《轻量级Java EE企业应用开发实战》《Node.js+Express+MongoDB+Vue.js全栈开发实战》《循序渐进Spark大数据应用实践》等在内的几十本专著。
3
本书读者
《循序渐进Node.js企业级开发实践》技术新颖,实例丰富,理论讲解与代码实现相结合,既适合作为Node.js的初学者和进阶读者的自学用书,也适合作为培训机构或高校相关专业的教学用书。
4
本书目录
向上滑动阅览
目 录
第 1 章 走进Node.js的世界 1
1.1 认识Node.js 1
1.1.1 Node.js简介 1
1.1.2 Node.js的特点 2
1.2 安装Node.js及IDE 6
1.2.1 安装Node.js和npm 6
1.2.2 Node.js与npm的关系 6
1.2.3 安装npm镜像 6
1.2.4 选择合适的IDE 7
1.3 实战:第一个Node.js应用 7
1.3.1 创建Node.js应用 7
1.3.2 运行Node.js应用 7
1.3.3 小结 8
1.4 实战:在Node.js应用中使用TypeScript 8
1.4.1 创建TypeScript版本的Node.js应用 8
1.4.2 运行TypeScript应用 9
1.5 上机演练 9
1.6 本章小结 11
第 2 章 模块化 12
2.1 理解模块化机制 12
2.1.1 理解CommonJS规范 12
2.1.2 理解ECMAScript模块 14
2.1.3 CommonJS和ECMAScript模块的异同点 16
2.1.4 Node.js的模块实现 16
2.2 使用npm管理模块 18
2.2.1 使用npm命令安装模块 18
2.2.2 全局安装与本地安装 18
2.2.3 查看安装信息 19
2.2.4 卸载模块 19
2.2.5 更新模块 19
2.2.6 搜索模块 19
2.2.7 创建模块 20
2.3 核心模块 20
2.3.1 核心模块介绍 20
2.3.2 实战:核心模块fs的简单示例 20
2.4 上机演练 21
2.5 本章小结 22
第 3 章 测试 23
3.1 使用断言 23
3.1.1 什么是断言测试 23
3.1.2 严格模式和遗留模式 24
3.1.3 实战:断言的使用 25
3.1.4 了解AssertionError 27
3.1.5 实战:deepStrictEqual示例 27
3.2 第三方测试工具 29
3.2.1 Nodeunit 30
3.2.2 Mocha 31
3.2.3 Vows 31
3.3 上机演练 33
练习一:使用Node.js的断言功能进行简单的单元测试 33
练习二:使用.js的AssertionError 34
练习三:使用Node.js的第三方测试工具 34
3.4 本章小结 35
第 4 章 缓冲区 36
4.1 了解缓冲区 36
4.1.1 了解TypedArray 36
4.1.2 Buffer类 37
4.2 创建缓冲区 38
4.2.1 初始化缓冲区的API 39
4.2.2 理解数据的安全性 39
4.2.3 启用零填充 40
4.2.4 指定字符编码 40
4.3 切分缓冲区 41
4.4 连接缓冲区 42
4.5 比较缓冲区 43
4.6 缓冲区编解码 44
4.6.1 解码器和编码器 44
4.6.2 缓冲区解码 44
4.6.3 缓冲区编码 45
4.7 上机演练 46
练习一:创建缓冲区 46
练习二:切分缓冲区 46
练习三:连接缓冲区 47
练习四:缓冲区编解码 47
4.8 本章小结 48
第 5 章 事件处理 49
5.1 理解事件和回调 49
5.1.1 事件循环 50
5.1.2 事件驱动 50
5.2 事件发射器 51
5.2.1 将参数和this传递给监听器 51
5.2.2 异步与同步 52
5.2.3 仅处理事件一次 52
5.3 事件类型 53
5.3.1 事件类型的定义 53
5.3.2 内置的事件类型 54
5.3.3 error事件 54
5.4 事件的操作 56
5.4.1 实战:设置最大监听器 56
5.4.2 实战:获取已注册的事件的名称 56
5.4.3 实战:获取监听器数组的副本 57
5.4.4 实战:将事件监听器添加到监听器数组的开头 57
5.4.5 实战:移除监听器 58
5.5 上机演练 60
5.6 本章小结 61
第 6 章 定时处理 62
6.1 定时处理常用类 62
6.1.1 Immediate 62
6.1.2 Timeout 63
6.2 定时调度 64
6.2.1 setImmediate 64
6.2.2 setInterval 65
6.2.3 setTimeout 65
6.2.4 setInterval和setTimeout的异同 66
6.3 取消定时 67
6.4 上机演练 69
6.5 本章小结 70
第 7 章 文件处理 71
7.1 了解node:fs模块 71
7.1.1 同步与异步操作文件 71
7.1.2 文件描述符 73
7.2 处理文件路径 74
7.2.1 字符串形式的路径 74
7.2.2 Buffer形式的路径 74
7.2.3 URL对象的路径 75
7.3 打开文件 76
7.3.1 文件系统标志 77
7.3.2 实战:打开当前目录下的文件 78
7.4 实战:读取文件 79
7.4.1 fs.read 79
7.4.2 fs.readdir 80
7.4.3 fs.readFile 80
7.5 实战:写入文件 82
7.5.1 将buffer写入文件 82
7.5.2 将字符串写入文件 83
7.5.3 将数据写入文件 84
7.6 上机演练 85
7.7 本章小结 86
第 8 章 进程 87
8.1 执行外部命令 87
8.1.1 spawn() 87
8.1.2 exec() 89
8.1.3 execFile() 90
8.2 子进程ChildProcess 92
8.2.1 生成子进程 92
8.2.2 进程间通信 92
8.3 终止进程 94
8.4 上机演练 94
练习一:执行外部命令 94
练习二:进程间通信 95
练习三:终止进程 95
8.5 本章小结 96
第 9 章 流 97
9.1 流的概述 97
9.1.1 流的类型 97
9.1.2 对象模式 97
9.1.3 流中的缓冲区 98
9.2 可读流 98
9.2.1 stream.Readable类事件 99
9.2.2 stream.Readable类方法 101
9.2.3 异步迭代器 104
9.2.4 两种读取模式 105
9.3 可写流 105
9.3.1 stream.Writable类事件 106
9.3.2 stream.Writable类方法 107
9.4 双工流与转换流 110
9.4.1 实现双工流 110
9.4.2 实战:双工流的例子 110
9.4.3 对象模式的双工流 111
9.4.4 实现转换流 112
9.5 上机演练 112
练习一:使用可读流读取文件 112
练习二:使用可写流写入文件 113
练习三:实现一个简单的双工流 113
9.6 本章小结 114
第 10 章 TCP 115
10.1 创建TCP服务器 115
10.1.1 了解TCP 115
10.1.2 了解socket 116
10.1.3 node:net模块 117
10.1.4 实战:创建TCP服务器 117
10.2 监听连接 118
10.2.1 server.listen(handle[, backlog][, callback]) 119
10.2.2 server.listen(options[, callback]) 119
10.3 发送和接收数据 120
10.3.1 创建socket对象 120
10.3.2 创建socket对象来发送和接收数据 121
10.3.3 实战:TCP服务器的例子 121
10.4 关闭TCP服务器 122
10.4.1 socket.end() 123
10.4.2 server.close() 124
10.5 上机演练 125
练习一:创建TCP服务器 125
练习二:发送和接收数据 126
练习三:关闭TCP服务器 127
10.6 本章小结 128
第 11 章 UDP 129
11.1 创建UDP服务器 129
11.1.1 了解UDP 129
11.1.2 TCP与UDP的区别 130
11.1.3 实战:创建UDP服务器 130
11.2 监听连接 131
11.3 发送和接收数据 131
11.3.1 message事件 131
11.3.2 socket.send()方法 132
11.4 关闭UDP服务器 133
11.5 实战:UDP服务器通信 134
11.5.1 UDP服务器 134
11.5.2 UDP客户端 135
11.5.3 运行应用 135
11.6 上机演练 136
练习一:创建UDP服务器 136
练习二:发送和接收数据 137
练习三:关闭UDP服务器 137
11.7 本章小结 138
第 12 章 HTTP 139
12.1 创建HTTP服务器 139
12.1.1 使用http.Server类创建服务器 139
12.1.2 http.Server事件 140
12.2 处理HTTP的常用操作 142
12.3 请求对象和响应对象 142
12.3.1 http.ClientRequest类 142
12.3.2 http.ServerResponse类 146
12.4 REST概述 149
12.4.1 REST定义 149
12.4.2 REST设计原则 150
12.5 成熟度模型 151
12.5.1 第0级:使用HTTP作为传输方式 151
12.5.2 第1级:引入资源的概念 153
12.5.3 第2级:根据语义使用HTTP动词 153
12.5.4 第3级:使用HATEOAS 155
12.6 实战:构建REST服务 157
12.6.1 新增用户 157
12.6.2 修改用户 158
12.6.3 删除用户 159
12.6.4 响应请求 160
12.6.5 运行应用 161
12.7 上机演练 163
练习一:创建一个简单的HTTP服务器 163
练习二:实现一个简单的RESTful API服务 164
12.8 本章小结 165
第 13 章 WebSocket 166
13.1 创建WebSocket服务器 166
13.1.1 常见的Web推送技术 166
13.1.2 使用ws创建WebSokcet服务器 168
13.2 监听连接 168
13.3 发送和接收数据 169
13.3.1 发送数据 169
13.3.2 发送ping和pong 170
13.3.3 接收数据 170
13.4 准备的状态 171
13.5 关闭WebSocket服务器 171
13.6 实战:WebSocket聊天服务器 171
13.6.1 聊天服务器的需求 172
13.6.2 服务器的实现 172
13.6.3 客户端的实现 173
13.6.4 运行应用 174
13.7 上机演练 175
练习一:创建一个简单的WebSocket服务器 175
练习二:实现一个简单的聊天室功能 176
练习三:实现客户端与服务器的实时通信 177
13.8 本章小结 178
第 14 章 TLS/SSL 179
14.1 了解TLS/SSL 179
14.1.1 加密算法 179
14.1.2 安全通道 182
14.1.3 TLS/SSL握手过程 182
14.1.4 HTTPS 185
14.2 Node.js中的TLS/SSL 186
14.3 产生私钥 186
14.4 实战:构建TLS服务器和客户端 187
14.4.1 构建TLS服务器 187
14.4.2 构建TLS客户端 188
14.4.3 运行应用 189
14.5 上机演练 190
练习一:生成自签名SSL证书和私钥 190
练习二:构建TLS服务器和客户端 191
14.6 本章小结 192
第 15 章 常用Web中间件 193
15.1 Express 193
15.1.1 安装Express 193
15.1.2 实战:编写“Hello World”应用 195
15.1.3 运行“Hello World”应用 195
15.1.4 实战:使用Express构建REST API 195
15.1.5 测试Express的REST API 198
15.2 Socket.IO 201
15.2.1 Socket.IO的主要特点 201
15.2.2 安装Socket.IO 202
15.2.3 实战:编写Socket.IO服务器 203
15.2.4 实战:编写Socket.IO客户端 204
15.2.5 运行应用 205
15.3 上机演练 206
练习一:使用Express构建REST服务 206
练习二:使用Socket.IO实现一个简单的实时聊天应用 207
15.4 本章小结 209
第 16 章 Vue.js与响应式编程 210
16.1 常见UI框架Vue.js 210
16.1.1 Vue.js与jQuery的不同 210
16.1.2 Vue.js的下载和安装 212
16.1.3 实战:创建Vue.js应用 214
16.2 了解Observable机制 217
16.2.1 了解Observable的基本概念 218
16.2.2 定义观察者 218
16.2.3 执行订阅 219
16.2.4 创建Observable对象 220
16.2.5 实现多播 221
16.2.6 处理错误 223
16.3 了解RxJS技术 224
16.3.1 创建Observable对象的函数 224
16.3.2 了解操作符 225
16.3.3 处理错误 226
16.4 了解Vue.js中的reactive 227
16.5 上机演练 229
练习一:探索Vue.js与jQuery的不同 229
练习二:使用create-vue创建并运行Vue.js应用 231
练习三:理解Vue.js中的响应式和Observable机制 231
16.6 本章小结 232
第 17 章 操作MySQL 233
17.1 下载安装MySQL 233
17.1.1 下载安装包 233
17.1.2 解压安装包 233
17.1.3 创建my.ini 234
17.1.4 初始化安装 234
17.1.5 启动MySQL Server 234
17.1.6 使用MySQL客户端 235
17.1.7 关闭MySQL Server 235
17.2 MySQL的基本操作 236
17.3 实战:使用Node.js操作MySQL 237
17.3.1 安装mysql模块 237
17.3.2 实现简单的查询 239
17.3.3 运行应用 239
17.4 深入理解mysql模块 242
17.4.1 建立连接 242
17.4.2 连接选项 243
17.4.3 关闭连接 244
17.4.4 执行CURD 245
17.5 上机演练 247
练习一:安装并配置MySQL 247
练习二:使用Node.js操作MySQL进行基本数据库操作 248
练习三:深入理解mysql模块的使用 250
17.6 本章小结 251
第 18 章 操作MongoDB 252
18.1 安装MongoDB 252
18.1.1 MongoDB简介 252
18.1.2 下载和安装MongoDB 253
18.1.3 启动MongoDB服务 254
18.1.4 连接到MongoDB服务器 254
18.2 MongoDB的基本操作 255
18.2.1 显示已有的数据库 255
18.2.2 创建和使用数据库 255
18.2.3 插入文档 256
18.2.4 查询文档 259
18.2.5 修改文档 264
18.2.6 删除文档 269
18.3 实战:使用Node.js操作MongoDB 270
18.3.1 安装mongodb模块 270
18.3.2 实现访问MongoDB 272
18.3.3 运行应用 272
18.4 深入理解mongodb模块 273
18.4.1 建立连接 273
18.4.2 插入文档 273
18.4.3 查找文档 274
18.4.4 修改文档 276
18.4.5 删除文档 277
18.5 上机演练 278
练习一:安装MongoDB并连接查看数据库 278
练习二:在Node.js应用中操作MongoDB 278
练习三:深入理解Node.js中的mongodb模块操作 279
18.6 本章小结 280
第 19 章 操作Redis 281
19.1 下载和安装Redis 281
19.1.1 Redis简介 281
19.1.2 在Linux平台上安装Redis 282
19.1.3 在Windows平台上安装Redis 283
19.2 Redis的数据类型及基本操作 284
19.2.1 Redis key 284
19.2.2 Redis String 285
19.2.3 修改和查询key空间 286
19.2.4 Redis超时 287
19.2.5 Redis List 287
19.2.6 使用Redis List的第一步 288
19.2.7 List常见的用例 289
19.2.8 限制列表 289
19.3 实战:使用Node.js操作Redis 290
19.3.1 安装redis模块 290
19.3.2 实现访问Redis 291
19.3.3 运行应用 292
19.4 上机演练 293
练习一:安装Redis并测试连接 293
练习二:使用Redis存储和检索数据 293
练习三:使用Redis List实现消息队列 294
19.5 本章小结 295
第 20 章 综合实战:基于WebSocket的即时聊天应用 296
20.1 应用概述 296
20.2 实现后台服务器 297
20.2.1 初始化websocket-chat 297
20.2.2 访问静态文件资源 298
20.2.3 事件处理 299
20.3 实现前台客户端 300
20.3.1 页面HTML及样式设计 300
20.3.2 业务逻辑 302
20.4 运行效果 309
20.5 上机演练 313
练习一:初始化WebSocket聊天应用 313
练习二:配置静态文件服务和事件处理 314
练习三:完善前台客户端 315
20.6 本章小结 316
参考文献 317
5
本书特色


本文摘自《循序渐进Node.js企业级开发实践》,获出版社和作者授权发布。
循序渐进Node.js企业级开发实践——jd
相关文章:
新书速览|循序渐进Node.js企业级开发实践
《循序渐进Node.js企业级开发实践》 1 本书内容 《循序渐进Node.js企业级开发实践》结合作者多年一线开发实践,系统地介绍了Node.js技术栈及其在企业级开发中的应用。全书共分5部分,第1部分基础知识(第1~3章)…...
Xlsxwriter生成Excel文件时TypeError异常处理
在使用 XlsxWriter 生成 Excel 文件时,如果遇到 TypeError,通常是因为尝试写入的值或格式与 XlsxWriter 的限制或要求不兼容。 1、问题背景 在使用 Xlsxwriter 库生成 Excel 文件时,出现 TypeError: “expected string or buffer” 异常。此…...
【NLP高频面题 - LLM架构篇】大模型使用SwiGLU相对于ReLU有什么好处?
【NLP高频面题 - LLM架构篇】大模型使用SwiGLU相对于ReLU有什么好处? 重要性:★★★ 💯 NLP Github 项目: NLP 项目实践:fasterai/nlp-project-practice 介绍:该仓库围绕着 NLP 任务模型的设计、训练、优化…...
2021 年“泰迪杯”数据分析技能赛B 题肥料登记数据分析
2021 年“泰迪杯”数据分析技能赛B 题肥料登记数据分析 完整代码请私聊 博主 # 一、背景 肥料是农业生产中一种重要的生产资料,其生产销售必须遵循《肥料登记管理办法》,依法在农业行政管理部门进行登记。各省、自治区、直辖市人民政府农业行政主管部门主…...
网络原理之 IP 协议
目录 1. IP 协议报文格式 2. 网段划分 3. 地址管理 1) 动态分配 2) NAT 机制 (网络地址转换) 3) IPv6 4. 路由选择 1. IP 协议报文格式 IP 协议是网络层的重点协议。 网络层要做的事情,主要就是两方面: 1) 地址管理 制定一系列的规则ÿ…...
在 Spring Boot 项目中使用 Thymeleaf 时,通常情况下,你需要配置热加载(Hot Reload)来在开发过程中更快速地看到页面的变化。
配置步骤: 1. 添加 DevTools 依赖 在 pom.xml 中添加 spring-boot-devtools 依赖。DevTools 提供了自动重启、LiveReload、模板热加载等功能。 <dependencies><!-- Spring Boot DevTools (用于热加载) --><dependency><groupId>org.spri…...
arm-linux GPIO控制-脚本及shell格式
以下是针对BCM编号27, 28, 29, 30, 31的shell命令 shell方式 导出GPIO引脚 echo 27 > /sys/class/gpio/export echo 28 > /sys/class/gpio/export echo 29 > /sys/class/gpio/export echo 30 > /sys/class/gpio/export echo 31 > /sys/class/gpio/export 设…...
Go 语言基础知识语法
很早听人说过一句话:“每年学习(接触)一门新的编程语言”,这听起来可能有点不太现实,但是其实很多种语言都是相通的。掌握新的编程语言不仅仅是增加职业工具箱中的工具,更是一种扩展我们思维方式、解决问题…...
贪心算法part05
文章参考来源代码随想录 (programmercarl.com) 56. 合并区间 本题和前几题类似,都是判断上一个元素的右边界与当前元素的左边界大小关系 但是需要注意是:本题需要更新结果数组元素的右边界,因此比较的是数组最后一个元素右边界与当前元素左…...
02、SpringMVC核心(上)
一、RequestMapping注解 @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented @Mapping @Reflective({ControllerMappingReflectiveProcessor.class}) public @interface RequestMapping {String name() default "";…...
EasyPlayerPro的同一个组件实例根据url不同展示视频流
效果 学习 url的组成 webrtc://192.168.1.225:8101/index/api/webrtc?applive&stream001&typeplay 协议部分 webrtc://: 这表示使用 WebRTC 协议来进行实时通信。WebRTC 允许浏览器之间直接交换音频、视频和其他数据,而不需要通过中间服务器 主机和端口部分…...
哈希表介绍、实现与封装
哈希表介绍、实现与封装 一、哈希概念二、哈希表实现直接定址法其他映射方法介绍1. 哈希冲突2. 负载因子3. 将关键字转为整数4. 设计哈希函数除法散列法 / 除留余数法乘法散列法全域散列法其他方法 将关键字转为整数处理哈希冲突开放定址法线性探测二次探测双重散列 开放定址法…...
使用vm配置网络
查看本地ip 配置vm网络 配置固定ip vi /etc/sysconfig/network-script/ifcfg-ens33参考 vm使用nat模式,导致vm中docker部署的服务,无法通过局域网中其他机器连接 https://www.cnblogs.com/junwind/p/14345385.html 三张图看懂vm中,三种网…...
OpenStack介绍
OpenStack概述 OpenStack是一个开源的云计算管理平台软件,主要用于构建和管理云计算环境。它允许企业或组织通过数据中心的物理服务器创建和管理虚拟机、存储资源和网络等云计算服务。其核心组件包括计算(Nova)、网络(Neutron)、存储(Cinder、Swift)等。这些组件相互协作…...
力扣93题:复原 IP 地址
力扣93题:复原 IP 地址(C语言实现详解) 题目描述 给定一个只包含数字的字符串 s,复原它并返回所有可能的 IP 地址格式。 有效的 IP 地址需满足以下条件: IP 地址由四个整数(每个整数位于 0 到 255 之间…...
mock.js介绍
mock.js http://mockjs.com/ 1、mock的介绍 *** 生成随机数据,拦截 Ajax 请求。** 通过随机数据,模拟各种场景;不需要修改既有代码,就可以拦截 Ajax 请求,返回模拟的响应数据;支持生成随机的文本、数字…...
React开发 - 技术细节汇总一
React简介 React 是一个声明式,高效且灵活的用于构建用户界面的 JavaScript 库。使用 React 可以将一些简短、独立的代码片段组合成复杂的 UI 界面,这些代码片段被称作“组件”。 ui render (data) -> 单向数据流 MVC // model var myapp {}; // …...
【论文复现】分割万物-SAM
📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀ 分割万物-SAM 介绍原理分割任务任务预训练zero-shot transfer相关任务 模型Image EncoderPrompt EncoderMask Eecoder消除歧义高效Loss 和训…...
实现RAGFlow-0.14.1的输入框多行输入和消息框的多行显示
一、Chat页面输入框的修改 1. macOS配置 我使用MacBook Pro,chip 是 Apple M3 Pro,Memory是18GB,macOS是 Sonoma 14.6.1。 2. 修改chat输入框代码 目前RAGFlow前端的chat功能,输入的内容是单行的,不能主动使用Shift…...
Pointnet++改进71:添加LFE模块|高效长距离注意力网络
简介:1.该教程提供大量的首发改进的方式,降低上手难度,多种结构改进,助力寻找创新点!2.本篇文章对Pointnet++特征提取模块进行改进,加入LFE模块,提升性能。3.专栏持续更新,紧随最新的研究内容。 目录 1.理论介绍 2.修改步骤 2.1 步骤一 2.2 步骤二 2.3 步骤三 1.理…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...
深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向
在人工智能技术呈指数级发展的当下,大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性,吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型,成为释放其巨大潜力的关键所在&…...
DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态
前言 在人工智能技术飞速发展的今天,深度学习与大模型技术已成为推动行业变革的核心驱动力,而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心,系统性地呈现了两部深度技术著作的精华:…...
