前言
为什么要写这本书
在当今数字化时代,App已经成为人们日常生活中不可或缺的一部分。而一个优秀的App,往往需要一个高效、稳定、安全的技术架构作为支撑,同时搜索功能也成为大多数App的标配。
2023年年底,我从百度公司离职。算起来,我在百度工作了整整13年。在这13年里,我从一名研发工程师晋升为资深研发工程师;技术水平从只了解一门编程语言到熟悉整个业务和生态;工作方式从独自写代码转变为多人跨地域、跨部门协同;思维方式也从接受需求、编写功能点,逐渐转变为主动思考问题、解决问题并推动事情落地。
非常幸运的是,在百度的这13年里,我参与并负责了多个与搜索有关的App从无到有的构建过程,也见证了百度App用户规模从万级到亿级、客户研发团队从几人到数百人的发展和变化。这个过程既充满挑战,也蕴含机遇,让我能够将对技术架构的理解付诸实践,从而使我更加深入地了解App中的技术架构是如何支持App搜索业务的,以及应该如何对App的技术架构进行优化。
故我撰写本书有两个目标:第一个目标是梳理自己在参与及负责的多个App架构优化工作中遇到的挑战、思考过程以及实际成效,作为对自己在百度工作13年的总结;第二个目标是希望把这些经验分享出来,与所有相关人员进行思想上的交流,因为在App从无到有以及到拥有上亿级用户规模的过程中,不同的App所采用的技术路径是相似的。
读者对象
这是一本专注于搜索业务全流程技术实现的书籍,重点介绍了App中搜索系统在不同阶段的架构设计及实现。无论你是初入行业的新手还是经验丰富的技术专家,或是对技术有浓厚兴趣的读者,本书都将为你提供有价值的知识和实用的指导。本书特别适合以下人员阅读。
❑从事移动搜索业务的人员:包括测试人员、产品经理、前端工程师及后端工程师等。本书重点介绍了与搜索App技术架构相关的知识,可以帮助这些人员更好地理解客户端中的技术架构和设计应用架构。
❑移动应用开发者:对于移动应用开发者,本书提供深入的技术架构设计和实践经验,可以帮助开发者构建更加有效、可用的App技术架构。
❑技术经理和团队领导:本书包含在解决问题时对技术选择的思考,这部分内容可以帮助负责管理技术团队和项目的人员做出明智的决策。
❑计算机相关专业的学生和学者:本书可作为计算机科学、软件工程等相关专业的学生和研究人员学习搜索App开发、App优化的参考书籍,可以帮助他们深入了解App技术架构的实际应用和研究方向。
❑对搜索App或App中搜索功能的实现感兴趣的人员:本书能够帮助这部分人员从更全面的视角了解搜索系统架构的原理、重要性和演化趋势。
本书特色
❑本书是对我从无到有构建多个App技术架构和重构优化超级App技术架构的实践经验的高度总结,在介绍不同架构如何实现的同时,还介绍了当时的背景及实践的流程,目的是让广大读者用更少的时间,在真实的业务场景中学习并吸收我13年工作经验的精华。
❑本书中不仅有具体的技术实现细节,还有我对具体问题的深度思考,这些思考不仅可以帮助读者知道怎么做,还能知道为什么这么做,进而让读者实现举一反三,轻松应对所有同类问题。
❑本书兼顾广度和深度,既覆盖了搜索App设计的全部关键环节,又直指问题本质。
❑虽然本书是以搜索App为主进行讲解的,但是其中的方法和思想可以沿用到其他App产品的设计中,而且可以覆盖技术架构师、开发人员、管理人员和项目经理等多个人群。
如何阅读本书
本书共三篇。
基础篇(第1~3章),简要介绍了搜索客户端的发展与价值、基础技术及基础服务,目的是帮助读者了解必备基础知识,为学习本书后续内容做铺垫。
高级篇(第4~12章),根据搜索全流程业务的需要,围绕输入并行化、可扩展网页能力、场景容器化、安全策略制定、核心指标持续优化、网络统一管理、移动端AI预测、App可变体发布及支持质效提升等9个维度,着重讲解了App技术架构的实现与思考。
个人成长篇(第13章),通过融入团队、有效交付及持续优化3个维度,介绍如何与团队、业务及技术融合,构建个人的架构优化之路。
如果你对搜索的业务流程、基础技术及服务端依赖比较了解,可以直接从高级篇开始阅读。但如果你是初学者,请一定从第1章开始学习。
致谢
首先感谢百度这个平台。百度有良好的技术及实践氛围,这让我可以长期专注于研发工作并积累与App架构设计相关的知识,这也是本书的内容能做到丰富和深入的基础。
感谢刘艳红、Proteas、姬路涛、刘爽、谢柏渊、马光潇对本书进行审阅,他们提出了许多宝贵的建议。
感谢《Java加密与解密的艺术》的作者梁栋的引荐,在他的努力下才促成了这本书的合作与出版。
最后,感谢妻子和女儿在我写书期间给予的理解与支持。写书占用了一些亲子时光。记得那时,女儿经常跑过来找我一起玩,看到我坐在计算机前,她总是懂事地说一句:“爸爸在写书呢!”然后就跑开了。
谨以本书献给我最亲爱的家人、好友和我在百度工作的13年中一起合作过的伙伴们!