有电书房店铺主页二维码
有电书房
微信扫描二维码,访问我们的微信店铺

全栈JavaScript实践

108.29 限时折扣 原价:¥115.20
运费: ¥ 5.00-22.00
库存: 300 件
全栈JavaScript实践 商品图0
全栈JavaScript实践 商品图1
全栈JavaScript实践 商品图2
全栈JavaScript实践 商品缩略图0 全栈JavaScript实践 商品缩略图1 全栈JavaScript实践 商品缩略图2

商品详情

书名:全栈JavaScript实践
书号:978-7-5239-1150-1
定价:128元
作者:[美]米莱西亚·麦格雷戈(Milecia McGregor) 著 何婷婷 余琦 译
出版时间:2026-07-31
出版社:中国电力出版社
页码: 484    字数(千字):475
开本:特16开    版次:B1    印次:Y1


品牌介绍

中国电力出版社成立于 1951 年,作为中国成立最早的中央科技出版社之一,曾隶属于水利电力部、能源部、电力工业部、国家电力公司,现为国家电网公司所属的科技出版社,在电气技术专业出版领域享有极高的声誉。该社作为以图书出版为主体,音像、电子出版物、期刊、网络出版共同发展的大型出版企业,以强大的出版资源和高素质的专业队伍,致力于向读者提供包括电力工程、电气工程、建筑工程、电子技术、信息技术、外语、大中专教材、家教等学科门类齐全的权威出版物,也竭力为广大师生提供精品教材,是教育部和北京市教委规划教材的出版基地之一。


编辑推荐

一句话推荐 每一位开发人员都需要了解的JavaScript隐藏部分。 专家推荐 “本书是中级开发人员的规则改变者。本书作者提供了清晰的见解,帮助人们在 JavaScript 这一全球最流行的编程语言中,掌握全栈开发的挑战。这是职业生涯进阶的必读书籍。” ——Gant Laborde,DTM,O'Reilly 作者及疯狂科学家 “如果你是一名全栈开发人员,正为提升职业生涯所需理解的海量工具、技术和流程感到不知所措,那么你一定要读读这本书。本书作者针对最复杂的技术主题和关键的软技能提供了丰富的实用建议,这些将帮助你在日益激烈的竞争领域中脱颖而出。” ——Ethan Brown, OptionLab 编辑推荐 作为一名在职软件开发人员,你已经知道如何用扎实的代码完成任务,无论是在前端还是后端。现在,你已准备好步入职业生涯的下一个阶段,需要培养那些让资深开发人员成为整个系统权威的技能。这本实用的书向你展示了在云平台上托管全栈Web应用程序所需的一切。 本书作者将帮助你了解整个系统是如何运作的,以及资深开发人员是如何做出技术决策的。你将学习设计和开发原则,以及何时应用它们。你还将发现与不同团队合作的策略,并理解产品团队是如何做出决策的。


作者介绍

Milecia McGregor是一位高级软件工程师,曾使用JavaScript、React、Node.js、Python、SQL、AWS,以及许多其他工具构建Web应用。她拥有自己的企业,在多个国际技术会议上发表演讲,并担任过从前端开发人员到副工程总监等多种职位。


内容介绍

本书的主要内容有:将设计转化为任务,并提出引导成功的技术和产品问题。做出后端架构决策,考虑可扩展性、安全性和第三方服务等因素。在处理状态与数据管理、性能以及其他与前端应用相关的关注点时,构建项目的用户界面。集成前端、后端及其他系统,并将全栈应用部署到生产环境。
本书适用于广大读者


前言

前言 我写这本书的目标是为你提供一个参考手册,有点像是一个“理智检查表”。当你在处理新项目或遗留项目时,不论是前端、后端还是部署环节,都会遇到类似的问题。比如测试、性能和安全要怎么做?不同应用之间往往有许多共通之处,不论你所在的行业是什么都适用。希望当你遇到那些“为什么以前没人告诉过我”的时刻时,这本书能让你更有信心去提出那些看似“简单”的问题。 本书适合谁读 如果你曾好奇,为什么资深开发者似乎“魔法般”地知道一切,而且能快速理解复杂概念,那么我会告诉你其中的技巧。 此时此刻,你可能已经有几年软件开发经验了。你能够在前端或后端写出可靠的代码,完成分配的任务。虽然你可能对全栈都有所涉猎,但大多数情况下,你在某一部分更为熟悉。在前端方面,你应当熟悉实现响应式布局,从API 获取数据,使用框架(如React、Astro、Svelte)。在后端方面,你可能已经做过数据库迁移,构建API,处理基础认证流程。 除此之外,你还会使用Git 以及托管服务(如GitHub 或GitLab),并且会用不同的工具测试代码。你可能长期维护过一个项目,也可能频繁切换过不同项目,但工作范围大多涵盖上述技能。 现在,你已经准备好进入职业生涯的下一个阶段,理解整个系统是如何运作的,以及技术决策为什么要这么做。这就是本书要讲的内容。 你会学到什么 从宏观上说,本书会教你如何创建一个部署在云平台上的全栈Web 应用。你会学到:如何找到每个应用的业务逻辑来源;如何快速地在不同架构、第三方服务和工具之间做出选择,以便创建可维护的应用;你将学习成为资深开发者所需的那些细微却重要的深层能力。本书将为你提供与不同团队合作的策略,帮助你理解产品决策的形成过程。同时,你也会在全栈的每一层面提升已有技能,做到更加自信。 无论你最初是做前端还是后端,你都将学习到设计与开发原则,以及在什么场景下应用它们。随着你在书中经历完整的软件开发生命周期(SDLC),并构建一个接近生产环境的应用,这些知识会逐步融入你的实践中。 把这本书看作一个随时可以翻阅的参考清单。在项目的每个阶段,你都能找到需要考虑的关键点,确保你知道遇到问题时该怎么做。等你读完时,你会清楚如何、为什么、何时做出技术决策,以及业务需求是如何演进的。 本书不是什么 这不是一本讲解某个具体工具的深度教程,也不会从零开始教你JavaScript 编程。虽然本书涵盖的主题非常广泛,并配有示例来展示资深开发者的思考方式,但默认你已经会阅读代码,调试问题,以及自行寻找更多学习资源。 由于涉及主题众多,本书会在代码示例之外,更多强调策略。这些策略是你在不同项目中都能借用的思维工具,但它们未必适合所有情况。没有任何一种方法可以在所有项目中通用,因此本书的目标是为你提供多个选项,供你按需选择。 这本书有一部分的内容会需要比本书中一章或一节更加深入的讲解。同时一本书也难以完全覆盖所有我想呈现的主题。所以本书会在必要时给出外部参考资料,帮助你继续深入学习。 本书结构 第1 部分:介绍如何将设计转化为任务,以及你需要向产品团队和其他团队提出的问题。这里你将第一次接触到业务逻辑的来源。 第2 部分:专注于构建后端。会使用NestJS,并探讨开发中需要考虑的安全、第三方服务等问题。 第3 部分:转向React 前端项目,构建用户界面,同时学习与前端相关的常见问题,如响应式和性能优化。 第4 部分:深入讲解如何将前端、后端及其他系统连接起来,并最终部署一个生产级的全栈应用。 书中各部分的篇幅有所不同,这是为了真实反映开发中时间和精力的分布:有些环节更耗时,有些环节反馈周期更长。本书尽可能贴近现实开发环境。 此外,为了增加真实感,本书还引用了其他软件工程师的观点:Ethan Brown,OptionLab 创始人,《Learning JavaScript, 3rd Edition》《Web Development with Node and Express, 2nd Edition》的作者。Jeff Graham,Proxima AI 的工程主管,曾在金融科技、教育科技、媒体和电商领域工作。 排版约定 本书使用以下排版约定: 斜体(Italic) 表示新术语、URL、电子邮件地址、文件名和扩展名。 等宽字体(Constant width) 用于程序清单,或在段落中引用程序元素(如变量、函数名、数据库、数据类型、环境变量、语句、关键字)。 等宽斜体(Constant width italic) 表示需要替换为用户输入或上下文决定的值。 使用代码示例 补充材料( 代码示例、练习等) 可在以下仓库获取: 和https://github.com/flippedcoder/dashboardserver。 如有技术问题或代码示例相关问题,请发邮件至:support@oreilly.com。 本书旨在帮助您完成工作。一般来说,如果本书提供了示例代码,您可以在您的程序和文档中使用这些代码。除非您复制了大量代码,否则不需要联系我们获得许可。例如,编写一个使用本书中几个代码段的程序无需许可。销售或分发来自O’Reilly 书籍的示例需要许可。通过引用本书并引用示例代码来回答问题不需要许可。在将本书中的大量示例代码合并到您的产品文档中时需要许可。 我们欣赏但通常不要求注明出处。注明出处通常包括标题、作者、出版商和ISBN。例如:“Full Stack JavaScript Strategies by Milecia McGregor (O’Reilly).Copyright 2025 Milecia McGregor, 978-1-098-12225-6.” 如果您认为您对代码示例的使用超出了上述许可或公平使用范围,请随时联系我们:permissions@oreilly.com。 O’Reilly 在线学习平台(O’Reilly Online Learning) 近40 年来,O’Reilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。 公司独有的专家和改革创新者网络通过O’Reilly 书籍、文章以及在线学习平台,分享他们的专业知识和实践经验。O’Reilly 在线学习平台按照您的需要提供实时培训课程、深入学习渠道、交互式编程环境以及来自O’Reilly 和其他200 多家出版商的大量书籍与视频资料。更多信息,请访问网站:/。 联系我们 任何有关本书的意见或疑问,请按照以下地址联系出版社。 美国: O’Reilly Media, Inc. 141 Stony Circle, Suite 195 Santa Rosa, CA 95401 中国: 北京市西城区西直门南大街2 号成铭大厦C 座807 室(100035) 奥莱利技术咨询(北京)有限公司 勘误、示例和其他信息可访问https://oreil.ly/full-stack-javascript 获取。 对本书中文版有任何建议可以发电子邮件到errata@oreilly.com.cn。 有关我们书籍和课程的新闻和信息,请访问https://oreilly.com。 我们的LinkedIn:。 我们的YouTube:。 致谢 首先,我要感谢我的外婆Carol Matthews,在过去两年里,她总是耐心倾听我无休止地抱怨写书的艰辛。每当我需要倾诉时,她都在。 我要感谢O’Reilly 团队里所有让我写作过程顺利的人。Virginia Wilson,没有你帮我处理所有的修改和反馈,我绝不可能完成! Amanda Quinn,谢谢你幕后协调一切! Ethan Brown,感谢你在写作过程中给出的极其细致的反馈与资源,我从中学到了很多。Adam Scott,谢谢你在书中的各个部分不断提出意见与建议。 我还要感谢我的妹妹Soleil Gibbs 和我亲密的朋友们,在我经历低落或遇到难题时,她们总是愿意倾听我的抱怨,让我坚持下去。最后,最大的动力来自我的丈夫,他给予我足够的时间与空间,让我顺利走过这段旅程。 这绝不是一段孤独的过程,我对每一位在这条路上给予帮助的人,怀有深深的感激。


目录

目录
前言 1
第一部分 启动你的新项目
第1 章 启动项目 9
11 你将构建的项目 9
12 项目启动会议 10
13 设计考量 14
14 数据驱动设计 16
141 将设计拆分为任务 16
142 从功能需求中细化任务 18
15 与产品及其他团队讨论时间表 20
151 与其他开发团队沟通20
152 与DevOps 协作 21
153 与QA 团队合作 23
154 与客户支持团队协调25
16 总结 26
第二部分 构建后端
第2 章 搭建后端 31
21 为什么选择NestJS 31
22 选择项目方案 32
23 搭建NestJS 33
231 本地测试后端 35
232 更新README 36
233 添加CHANGELOG 37
24 单体和微服务架构 38
25 可考虑的替代架构 40
26 选择API 设计模式:REST 和GraphQL 41
27 总结 44
第3 章 构建数据模型 45
31 初始化考量 46
32 绘制数据模型图 47
33 搭建Postgres 49
34 决定使用哪种ORM 51
35 编写迁移 54
36 初始化数据库 56
37 总结 59
第4 章 REST API 61
41 确保前端与后端达成一致 62
42 创建约定文档 63
43 创建API 及第一个端点 65
431 创建订单端点 66
432 处理Orders 服务 68
433 检查数据库连接 69
44 总结 70
第5 章 第三方服务 71
51 选择第三方服务 72
52 潜在服务列表 73
53 集成Stripe 75
531 编写Controller 78
532 编写Service 80
54 总结 82
第6 章 后台任务 83
61 更新后台架构 84
62 使用定时任务 86
621 警报与监控 89
622 日志 89
623 数据同步和任务执行中的问题 90
624 未来需要考虑的事项90
63 总结 91
第7 章 后端测试 93
71 为什么要花时间写测试 94
72 如何编写测试 95
73 模拟数据 101
74 总结 102
第8 章 后端安全考虑 105
81 身份验证 106
82 授权 108
83 OWASP Top 10 112
84 其他值得注意的实践 114
85 总结 116
第9 章 后端调试 117
91 详细的日志消息 118
92 环境配置 124
93 追踪bug 的策略 126
94 帮助其他开发者调试 129
95 调试清单 130
96 总结 132
第10 章 后端性能 133
101 指标 134
102 警报与监控 138
103 缓存 139
1031 缓存策略 141
1032 不同类型的缓存 143
1033 缓存在Redis 中的实现144
104 产品层面的考量 146
105 总结 147
第11 章 可扩展性考虑 149
111 扩展类型 150
1111 垂直扩展 150
1112 水平扩展 150
1113 混合扩展 151
1114 资源扩展 152
112 扩展最佳实践 152
1121 制定计划 152
1122 将计划形成文档 153
1123 运行测试 154
1124 沟通进度 155
1125 逐步迁移流量 156
113 总结 157
第12 章 监控、日志记录与事故处理 159
121 日志和监控的用途159
1211 使用日志进行调试 160
1212 使用监控来指导操作 161
1213 监控和日志工具 162
122 事故操作手册 166
1221 操作手册 167
1222 事故响应模板 169
1223 无责事后分析 170
123 总结 172
第三部分 构建前端
第13 章 搭建前端 175
131 前端架构决策 176
132 选择前端框架 179
1321 应用构建选项 181
1322 常用组件 181
1323 选择依赖包181
133 与其他团队合作 184
134 总结 185
第14 章 构建React 应用 187
141 设置初始React 应用 188
1411 设置Linter 和Formatter 188
1412 设置构建配置 191
1413 设置样式 192
1414 设置测试 195
1415 设置CHANGELOG 和README 196
1416 在本地运行应用 197
142 构建第一个功能 199
1421 项目结构 199
1422 设置路由 201
1423 更新应用的根文件 202
143 总结 204
第15 章 状态管理 205
151 组件状态的工作原理 206
1511 useState 206
1512 useReducer 208
1513 useContext 208
1514 了解在应用的哪个级别管理状态 210
152 不同的状态管理方法 210
153 设置状态管理器 212
154 总结 215
第16 章 数据管理 217
161 潜在的数据获取工具 218
162 使用Axios 和TanStack Query 处理API 调用 220
1621 env 文件 221
1622 处理加载状态 225
1623 处理错误状态 226
1624 配置请求头227
163 何时检查后端功能228
164 总结 229
第17 章 自定义样式 231
171 可访问性 232
1711 创建一个可访问的表单 233
1712 检查你的可访问性实现 235
1713 更多可访问性考量 238
172 一致性设计 238
173 自定义主题 239
174 响应式设计 240
175 总结 242
第18 章 前端错误处理 243
181 错误边界方法 244
1811 错误组件 246
1812 记录错误 250
182 用户校验错误 251
183 API 错误 253
184 总结 255
第19 章 前端安全考量 257
191 常见漏洞 258
1911 业务逻辑校验 258
1912 会话管理 259
1913 软件包版本维护 260
1914 输入校验 261
192 其他原则 264
193 如何检查你自己的应用 264
194 总结 265
第20 章 前端性能 267
201 基准指标 268
2011 Lighthouse 工具269
2012 Sitespeedio 272
202 改进领域 274
2021 打包文件大小分析 275
2022 构建配置 276
2023 缓存配置 277
2024 懒加载 279
2025 预加载 282
2026 CSS、图像和字体 282
203 总结 283
第21 章 前端测试 285
211 确定测试场景 286
212 单元测试 287
2121 Jest 和React Testing Library 287
2122 Vitest 287
2123 Mock Service Worker 291
213 使用Cypress 进行e2e 测试 293
214 总结 295
第22 章 前端调试 297
221 调试过程 298
222 查阅日志 298
223 检查代码 301
2231 使用consolelog 消息 301
2232 使用断点 302
2233 使用单元测试 303
2234 使用Git 303
224 使用浏览器开发者工具 305
2241 Elements 选项卡 305
2242 Sources 选项卡 308
2243 Network 选项卡 309
2244 Application 选项卡 311
225 在其他环境中调试312
226 在意想不到的地方调试 313
227 总结 314
第四部分 部署全栈应用
第23 章 全栈部署设置 319
231 参与部署的团队 320
232 后端与前端的连接步骤 321
2321 后端步骤 321
2322 前端步骤 324
2323 清理步骤 327
2324 文档和维护步骤 327
233 总结 329
第24 章 集成测试 331
241 测试用例 332
242 使用Cypress 进行端到端测试 332
243 使用Playwright 进行端到端测试 335
244 使用Nightwatch 进行端到端测试 341
245 包之间的比较 345
246 总结 346
第25 章 进行部署 347
251 部署仅前端或仅后端的更新 348
252 部署策略 349
2521 发布日期 349
2522 版本发布 352
2523 蓝绿部署 353
2524 金丝雀部署354
253 回滚策略 356
2531 部署旧版本356
2532 还原或重置PR 356
2533 部署热修复358
254 总结 360
第26 章 集成中要考虑的点 361
261 前后端要考虑的点362
262 第三方服务相关考量 363
263 在生产环境中的数据和安全 365
264 容器化你的应用 367
265 总结 371
第27 章 构建CI/CD 流水线 373
271 创建你自己的流水线 374
2711 速度考量 375
2712 Git 钩子 376
2713 GitHub 配置 381
2714 CircleCI 配置383
272 环境流水线 390
2721 功能环境(Feature Environment) 390
2722 开发环境(Development Environment) 390
2723 预发布环境(Staging Environment) 391
2724 生产环境(Production Environment) 391
2725 环境变量 391
273 总结 394
第28 章 Git 管理 395
281 分支策略 396
2811 常见分支和合并流程 396
2812 PR 审查 397
2813 针对较小功能的分支 398
2814 针对较大功能实现的分支 399
2815 压缩提交(Squashing Commits) 401
2816 变基与合并分支 404
282 处理合并冲突 407
2821 与进行更改的开发人员讨论 408
2822 使用git bisect 查找受影响的文件 409
2823 手动比较文件更改 410
283 总结 411
第29 章 项目管理 413
291 Sprint 讨论 414
2911 估点 414
2912 开发容量 415
2913 功能需求 416
2914 开发团队工单评审 418
2915 路线图 421
292 定义和管理任务 422
2921 保持团队感知 422
2922 撰写并澄清工单或故事卡 423
2923 考虑额外开销任务 425
2924 调整自己的节奏 426
2925 管理上下文切换 426
2926 保持沟通畅通 428
293 总结 428
第30 章 理解业务领域 431
301 特定领域的知识 432
3011 向直接在领域内工作的人学习 433
3012 参加课程 433
3013 在该领域工作 434
302 架构和系统设计决策 434
3021 领域驱动设计 435
3022 C4 设计 437
303 向其他团队学习 438
3031 加入销售通话 439
3032 加入用户研究 439
3033 与市场部门交谈 440
3034 旁听客户支持通话 440
3035 了解法律合规 441
304 文档考量 441
3041 定义术语 441
3042 只保留相关信息 442
3043 分享你的知识 442
3044 展示产品如何影响组织 442
305 总结 443
第31 章 在你的职业生涯中参与不同类型的项目 445
311 全新应用程序的考量因素 446
3111 理解你试图解决的问题 446
3112 构建数据模式 447
3113 决定架构 448
3114 选择你的云提供商 448
3115 构建后端 449
3116 构建前端 449
3117 集成后端和前端 449
3118 设置你的CI/CD 流水线 450
3119 执行QA 测试 450
31110 在生产环境中检查你的应用程序 451
312 现有应用程序的考量因素 451
3121 获取你所需服务的访问权限 451
3122 运行开发实例 452
3123 在生产环境中查看应用程序 452
3124 在非生产环境中查看应用程序 453
3125 阅读代码 453
3126 记录潜在的重构 454
3127 提问并记录答案 454
3128 提高代码质量 455
3129 添加测试 456
31210 了解不同警报的含义 456
313 你的职业生涯 457
3131 技术路线 457
3132 管理路线 458
3133 职业日志 460
3134 转向其他领域 462
314 总结 463


有电书房店铺主页二维码
有电书房
扫描二维码,访问我们的微信店铺

全栈JavaScript实践

手机启动微信
扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏

微信支付

支付宝

扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏