基本信息

【插图】

编辑推荐
某大厂资深服务端技术专家10年工程实践经验总结,阿里技术讲师课程大赛冠军作品,
系统梳理服务端开发经验和方法
摆脱编程语言、框架、中间件及传统编程思想束缚,全景式、体系化解读服务端开发的流程、技术栈和实用规范
50余个案例、200余幅图,系统阐述高并发、高可用、高性能、
缓存、幂等、数据一致性等服务端典型难题的解决方案
内容简介
计算机书籍
这是一本从开发流程、技术栈、典型问题解决方案和开发规范等维度全面讲解服务端开发的著作。它衍生自作者在某著名互联网科技公司内部讲授的高口碑课程,是作者近10年服务端开发经验的总结,同时融合了业界在服务端开发方面的宝贵项目经验和实践智慧。
本书理论与实践结合,摆脱编程语言、框架、中间件及传统编程思想的束缚,全景式、体系化地阐述了服务端开发,核心内容包括以下两个部分。
第一部分:服务端开发的技术和方法
首先,介绍了服务端开发的职责、技术栈、核心流程和进阶路径;然后,从需求分析、抽象建模、系统设计、数据设计和非功能性设计5个方面展开,结合案例深入讲解了服务端开发的实操方法和重难点,为读者呈现出服务端开发的全景图,帮助读者快速、体系化地掌握服务端开发的相关知识和方法。
第二部分:服务端典型问题的解决方案
针对高并发、高性能、高可用、缓存、数据一致性、幂等、秒杀等服务端开发实践中的典型问题,给出了对应的解决方案和开发规范,同时还结合案例深入分析了不同方案的优缺点。此外,还总结了接口设计、日志打印、异常处理、代码编写、代码注释等落地层面的行业案例和规范。
作译者
浙江大学工学硕士,杭州市高层次人才,现任某著名互联网科技公司服务端技术专家。先后从事过智能控制算法、分布式中间件和服务端研发。相关成果曾发表于领域顶级会议和SCI期刊。
近年来,致力于构建高效、可靠、可扩展的服务端系统,作为核心成员设计并开发了承载百万级QPS 、服务亿级用户的大型分布式系统,在领域建模、系统架构、信息流推荐及研发规范方面积累了大量优秀实践。
曾获得阿里第二届技术讲师课程大赛冠军、华为“总裁嘉奖令”、浙江省优秀毕业生、NUEDC(全国大学生电子设计竞赛)全国一等奖及瑞萨特别奖、国家奖学金等30余个奖项。
CSDN博客专家,阿里高阶技术“传橙官”,先后在CSDN、“阿里技术”公众号、阿里ATA 等平台发表技术文章数百篇,多篇文章入选平台“年度最火文章合集”“年度好评 TOP 10”和“头条推荐”。
目录
第一部分 方法论
第1章 走近服务端开发
1.1 服务端开发概述
1.1.1 什么是服务端开发
1.1.2 大厂服务端开发的职责
1.2 服务端开发技术栈
1.2.1 编程语言
1.2.2 开发工具
1.2.3 开发框架
1.2.4 数据库和存储技术
1.2.5 中间件
1.2.6 操作系统
1.2.7 应用部署
1.2.8 运维监控
1.2.9 其他
1.3 服务端开发流程
1.3.1 需求分析
1.3.2 抽象建模
1.3.3 系统设计
前言
为什么要写这本书
服务端开发涉及的面非常广,特别是在阿里、腾讯、字节跳动这类动辄十亿级用户、亿级 DAU(Daily Active User,日均活跃用户数)的头部企业的核心业务场景中,服务端开发充满挑战。然而,在校园中,相关学科的编程实践课程仍多停留在开发学生管理系统的水平上,与行业的实际需要脱节;在市面上,服务端开发相关的书籍大都聚焦于解读某种编程语言、中间件、开发框架或编程思想,缺乏互联网服务端开发实践内容和对服务端开发的体系化介绍。一系列因素导致服务端开发长期以来被误解为 Java 开发、Go 开发之类的“某编程语言开发”,或者被简单地定义为“编写运行于服务器的程序”。
2020 年,我在GitChat 和 CSDN上原创的技术博客突破一百万字,成为博客专家。码字科技创始人谢工建议我将博客专栏整理成书出版,并将我引荐给了机械工业出版社的杨福川老师。彼时,写一本全景式介绍服务端开发书籍的想法在我心头萌芽了。当我踌躇满志地准备大干一场的时候,我意识到一个严重的问题:服务端开发涉及的内容实在太多了,纷繁复杂的知识点令人望而生畏。几经思考,自认为没有足够的时间付之于此,于是我又退缩了。
时间来到 2021年年底,支付宝会员与公益技术部要对入职两年以内的服务端开发工程师进行技术培训,晏婴推荐我作为首门课程“大话系分设计”的讲师。接到这个任务,我不由得心头一紧。系分设计涵盖需求分析、抽象建模、系统设计、数据设计和非功能性设计等内容,实际上就是一幅服务端开发全景图。好在有将近一个月的时间准备,借此契机,我得以体系化地梳理服务端开发的知识脉络。
在之后的线下授课和交流中,我发现服务端开发工程师存在一些普遍性问题:其一,倾向于将产品文档“翻译”成代码,轻视业务,由于对业务领域全貌不了解,原本关键的抽象建模过程流于形式;其二,局限于围绕数据库开发,出手便是表结构设计,本末倒置;其三,在系统设计和开发中注重需求功能实现,对于高并发、高可用、高性能等非功能性问题考虑不足。考虑到短暂的线下培训难以将上述问题逐一讲透,我决定结合服务端开发的实际流程,编写一部开发指南。无心插柳柳成荫。随着编写工作的推进,写书的时机悄然成熟了。于是,我再次联系了杨福川老师,并在他的帮助下进一步完善了目录,最终确定了写作本书的计划。
自 2016 年起,我一直坚持通过写技术文章来分享知识,先后在 CSDN、GitChat、知乎、阿里技术公众号、阿里 ATA 等平台上发表了数百篇技术文章,其中部分文章还曾入选平台“年度热门文章合集”“年度好评 TOP10”和“头条推荐”。不过,这些文章像一个个分散的点,不成体系,对读者的帮助相对有限。鉴于此,我希望通过本书,全景式、体系化地为读者呈现服务端开发的方法和实用解决方案。
读者对象
IT 从业人员:服务端开发工程师、客户端开发工程师、产品经理、测试工程师等。
高校学生:计算机、自动化、电气、通信等专业的学生。
本书特色
在互联网领域,技术日新月异,以有限的精力持续学习十分困难。幸运的是,无论技术如何演进,其背后的方法论往往大同小异,经典解决方案历久弥新。因此,掌握方法论和实用解决方案尤为必要。不同于一般的技术书籍,本书不局限于任何一种具体的编程语言、框架、容器、中间件或编程思想,而是致力于全景式、体系化地解读服务端开发的流程、重点和难点。
本书分为技术与方法、解决方案两部分,理论结合实践。第一部分对需求分析、抽象建模、系统设计、数据设计和非功能性设计等服务端开发的核心环节进行了深入的解读,可以帮助读者快速、体系化地掌握服务端开发的相关知识。第二部分针对高并发、高可用、高性能、缓存、幂等、数据一致性等问题提供了行业经典解决方案,可以帮助读者夯实技术基础,提升竞争力。为了便于读者理解,本书还列举了大量案例,并绘制了200多张图,图文并茂。
本书主要内容
本书共 14 章,内容分为两部分。
第一部分包括第 1~6 章,主题是技术与方法。本部分首先介绍服务端开发的定义、职责、技术栈、核心流程和进阶路径,然后从需求分析、抽象建模、系统设计、数据设计、非功能性设计5个方面逐一展开,结合案例深入解读服务端开发的实操方法、重点和难点,为读者清晰呈现服务端开发的全景图。通过学习本部分内容,读者可以快速、体系化地掌握服务端开发的相关知识和方法。
第二部分包括第7~14 章,主题是解决方案。本部分针对高并发、高可用、高性能、缓存、幂等、数据一致性等服务端开发的典型问题,结合业务场景进行系统性分析并给出实战方案,并就接口设计、日志打印、异常处理、代码编写、代码注释等实施细节给出行业案例和规范。本部分内容如同一本服务端开发问题手册,可帮助读者解决实践中遇到的问题。
需要特别说明的是,第一部分内容不仅适合服务端开发人员学习,还适合前端开发、测试、产品经理、运营等岗位的人员学习,对提升技能、构建用例、设计产品和梳理需求大有裨益。第二部分内容所介绍的解决方案和开发规范均为行业实践经验的总结,部分知识点具有一定难度。如果你是一名经验较
媒体评论
——徐正国浙江大学教授/博士生导师/浙江大学湖州研究院副院长
影响软件系统复杂度的因素可以简单分为两个维度:业务与技术。高业务复杂度的服务端系统,需要考虑有效的需求分析与领域建模,方可获得可持续演进的应用架构;高技术复杂度的分布式系统,则需要考虑诸如高并发、高可用、高性能、数据一致性等质量属性,才能在设计权衡中寻求技术架构最优解。书中通过将方法与解决方案二者有机结合,既高屋建瓴,梳理出服务端开发的方法体系,又务实而专注,总结出行业实践经验,诚为服务端开发人员的最佳学习指南!
——张逸 《解构领域驱动设计》作者
2021 年底,我们部门为入职两年内的工程师定制了“系分训练营”,旨在帮助他们更好地掌握业务分析和系统设计方法。训练营的第一门课程由郭进担任讲师,广受学员好评,本书也缘起于此。书中不仅系统地介绍了需求分析、抽象建模、系统设计、非功能性设计等服务端开发的核心环节,而且结合作者多年的互联网实战经验,针对高并发、高可用、高性能、缓存、幂等、数据一致性等典型问题提供了解决方案。本书内容丰富、深入浅出,既适合初学者入门,又适合有经验的开发者深入研究。
——赵航(桑美) 蚂蚁集团资深技术专家/支付宝会员与公益技术部技术总监
本书衍生于作者在阿里和蚂蚁集团的精品培训课程,它蕴含了作者多年的工作实践精华和对软件研发理论的深入理解。书中结合实际问题与案例,将服务端系统的开发过程进行了体系化的阐述,并深入浅出地介绍了多种经典解决方案。对于从事互联网软件研发的读者来说,它是一本有助于提升体系化思考能力和系统设计能力的好“教材”,值得反复品味;对于从事传统企业软件产品研发的读者来说,每一个可落地应用的解决方案又让它如同一本“工具手册”。总之,本书将理论与实践巧妙结合,是一本让人受益匪浅的好书。
——黄浩(陌铭) 阿里资深技术专家/阿里数字供应链技术总监