强烈推荐一本今年八月份的新书《后台开发:核心技术与应用实践》,作者腾讯资深后台开发工程师徐晓鑫

   昨天被华章安利了一本今年8月份的新书《后台开发:核心技术与应用实践》,极好的书,评价和口碑超高。
   这本书腾讯公司资深研发工程师多年后台开发经验总结,获腾讯、Facebook、微软、阿里、百度多位资深技术专家高度认可。 完整勾勒后台开发技术能力体系,多维度讲解了成为一名后台开发工程师所需掌握的核心技术、开发工具和实践方法,后台工程师修炼必读。作者sharexu是位值得推崇的女性开发者。

  后台开发是一个“历史悠久”的领域,同是也是一个沉淀深厚,高技术价值的领域。本书清晰、严谨、务实的风格显示出晓鑫对该领域知识的深刻理解。——张子兴 Facebook对外支付项目主程,美国加州MenloPark
  每一位从事后台开发的专业人士都需要一本《后台开发:核心技术与应用实践》。对每一位想要认真从事该领域工作的人来说,这是一本绝对必读的书籍。——彭可竞 微软软件工程师,美国华盛顿州Redmond
  《后台开发:核心技术与应用实践》是作者多年后台开发、架构和研究的精华。本书用通俗的文字、详尽的示例代码,结合实际工作中的案例,讲述了后台开发方方面面的知识,内容丰富。对于从事后台开发的人员,这是一本很好的由浅入深的学习书籍。——周乐 阿里巴巴资深算法工程师,北京望京
  使用C 语言进行后台开发有一定的门槛,本书可以很好的帮助你跨过这个“门槛”。——畅晋 百度大数据高级测试工程师,北京上地

内容推荐

因为后台开发所需要的技术广泛而坚深,要成为一名后台开发工程师门槛很高,所以相关人才比较紧缺。作者是在腾讯工作多年的后台开发工程师,不仅技术精湛,而且在处理大量实际业务的过程中积累了丰富的开发经验。在这本书中,她不仅首次为后台开发工程师勾勒出了完整的知识能力体系结构图,而且还对后台开发工程师所需要掌握的大量复杂的技术知识进行了提炼、剥离和整合,专注于成为一名后台开发工程师所需掌握的核心技术、开发工具和实践方法,大幅度降低后台开发工程师的学习曲线。本书的内容获得了来自腾讯、Facebook、微软、阿里、百度的多位资深技术专家的高度认可。全书一共13章,在逻辑上分为六大部分:第一部分(第1~3章)介绍了编程语言方面的知识,包括常用语法、类与常用STL的使用;第二部分(第4~5章)介绍了编译原理和调试方法相关的知识,编译原理包括编译与链接的具体过程、Makefile的编写、目标文件的内容与处理目标文件相关工具的使用,调试方法主要介绍了strace、gdb、top、ps与valgrind工具的使用等;第三部分(第6~8章)介绍了网络相关的知识,包括TCP协议的关键知识点和TCP server的实现,网络IO模型和select、poll与epoll三个重要函数的使用,还有ping、tcpdump、netstat和lsof这四个网络分析工具的使用;第四部分(第9~11章)主要是多线程、进程和进程间通信相关的知识,包括多线程的使用、多线程的同步和重入问题,进程方面有父子进程、僵死进程、守护进程和进程间通讯的方式;第五部分(第12章)主要是HTTP协议的介绍与使用、CGI的设计原理、实现和FASTCGI的简单介绍;第六部分(第13章)通过常用类库JsonCPP和Protobuf的使用,演示如何使用第三方库。

徐晓鑫:
听到“后台开发”这个词,估计很多人心中都会有一些自己的感性认识,这种认识具体到每个人可能有一些差别,但估计大部分人都有这么一种看法:“后台开发”是编写一些用户看不见的程序,也就是非界面的,既不是网页,也不是App,更不是桌面程序,因为这些都是用户看得见的(被称为“前台开发”)。这种感性认识在一定程度上是正确的,但是它不够具体,也不够全面。
我所理解的“后台开发”的确是用户“看不见”的部分,但是还有很多界面性的程序是给企业内部人员使用的,这些虽然是界面程序,但是对于最终用户来说也是“看不到”的。举个例子,开发一个电子商务的网站,提供给客户进行商品购买的网页是用户看得见的,不属于“后台”,但是电商网站内部员工使用的“用户管理系统”,“订单管理系统”等,也是用户看不见的,但它们不属于本书中所指的“后台”。在有些场合,或者一些人的习惯中,这些内部使用的系统也叫“后台”,这样并没有错,希望读者在听到的时候,知道说话人指的是什么。
在BAT这类成熟的、大型的、技术分工明确的互联网公司里,一般提到“后台开发”,指的是“服务端的网络程序开发”,从功能上可以具体描述成这样:服务器收到客户端发来的请求数据,解析请求数据,然后进行处理,最后把结果返回,如下图所示。

“SERVER”
这里的“SERVER”就是后台开发程序员需要用尽毕生精力去耕耘的“后台程序”,或者“服务器”。 SERVER接收请求的方式既可以是通过TCP请求包,也可以是HTTP请求包(其实也是 TCP连接)。如果是HTTP方式的请求,请求包的格式一般是JSON或者XML ,或者自定义的ASCII文本;如果是TCP请求,二进制的格式会常见一些。解析请求包的方式自然是请求包的格式相对应的,来的是什么格式的包,就用对应的解包库区解析,如果是自定义的格式,就按照自定义的方式去解析。“处理请求”这一步是后台程序的具体业务逻辑。很多封装好的后台程序包会把其他三步都做好,但是这一步还是需要开发者自己去实现,因为只有开发者自己清楚,程序是要去做“登陆”还是去做“注册”的事情。“输出回复包”和“接收请求包”是对应的,一般来说,收到的是 JSON,那么回复的也是JSON,收到的是 XML,那么发送的也是XML,其他的格式也是一样的。这四个步骤是所有后台程序都会有的,无论使用什么语言去实现,都可以看到这四个步骤的影子。
“CLIENT”
“CLIENT”指的是向“ SERVER”发起请求,并接收“SERVER”回复的一方,就是通常称的“客户端”。既然后台程序是通过 TCP或者HTTP 接收和回复消息的,那么只要是能够发起TCP或者HTTP连接的都可以作为客户端,可以是浏览器, PC端的程序,安卓应用,IOS应用,等等。
当然,这只是“后台开发”最基本的概念认识,也是像BAT这类成熟的大型互联网公司对“后台开发”这个岗位的工作范围定位。具体到实际的工作中,后台开发工程师需要涉及的技术层面很多,接入层、逻辑层、数据层等、需要考虑的问题也很多,个人认为最重要的几个就是高可用性(availabilty)、可扩展性(scalability),健壮性(robustness)。也许以后咱们可以一起仔细聊一聊这些话题。
本文部分段落摘自《后台开发:核心技术与应用实践》绪论部分

《后台开发:核心技术与应用实践》
ISBN:978-7-111-54339-8
作者:徐晓鑫

时间: 2025-01-02 13:47:34

强烈推荐一本今年八月份的新书《后台开发:核心技术与应用实践》,作者腾讯资深后台开发工程师徐晓鑫的相关文章

后台开发 -- 核心技术与应用实践

后台开发 核心技术与应用实践 . C++编程常用技术 最好不要在头文件中使用命名空间,很容易造成命名冲突. strlen与sizeof的区别: strlen是函数,在运行时才能计算,传入参数是char*指针,返回字符串长度. sizeof()是运算符,而不是一个函数,在编译时就计算好了,用于计算数据空间的字节数. sizeof常用于返回类型和静态分配的对象.结构或数组所占用的空间,返回值跟内容无关. 在C++中,临时对象都是const类型的. 可以使用union(联合)判断系统是大端(big e

推荐一本大数据的书籍,非技术类

因为关注大数据,也写过若干关于大数据的文章,做过若干关于大数据的演讲,所以对有关这一主题的论文和书籍非常有兴趣.过去几年,在这方面读过十几本书,上百篇论文和文章.相对而言,舍恩伯格的<大数据时代>是迄今为止我读过的最好的一本专著,中英文都算上. 此书的一大贡献是在大数据方兴未艾,众说纷纭的时刻,进一步阐述和厘清了大数据的基本概念和特点,这对许多以为大数据就是数据大的人来说很有帮助. 在人类历史长河中,即使是现代社会日新月异的发展中,人们还主要是依赖抽样数据,局部数据,片面数据,甚至是在无法获得

《App后台开发运维和架构实践》推荐序

软件开发工具的成长速度远远超过开发人员的成长速度,这是现实. 每个月,甚至每天,我们都可以见到新的类库.框架.工具.语言.它们或者极大地降低了开发的成本,或者极大地提升了开发的效率. 随之而来的问题就是,如何让开发人员妥善地运用好这些工具? 曾经有好几个做开发的同事跟我说:"写软件谁不会?从网上找些开源的类和项目来改改就是了".目前也确实充斥着这种"改改就是"的工作思维.介绍某个类库和项目如何安装和调用的文章俯拾皆是. 但是每种工具究竟有什么优缺点?适合用来解决什么

推荐一本算法入门书籍

推荐一本很好的算法入门书籍: <算法设计与分析基础>(第2版),(美) Anany Levitin 著, 潘彦译. 除了 < Thinking in Java >,这是我另外一本读过了三分之二内容还希望不断翻阅的书籍.这本书写得很不错,可以感受到作者是尽力去贴近读者,讲解清晰易懂,涉及比较全面,而且有不少在其它算法书籍中从不曾讲到的东西(比如算法问题求解基础,大量引人思考的谜题). 总体来说,可读性很强,趣味性强,实用性尚可,在理论性和实用化之间进行了很好的平衡和折衷,有很好的启发

推荐一本好书给即将走入工作的程序员and程序媴

近期买了几本IT届推崇的经典书籍.当中有一本<程序猿修炼之道:专业程序猿必知的33个技巧>.由于这本比較薄,所以先翻着看. 这本书有别于其它的技术书籍,事实上算不上一本技术书籍.它不是教你怎么去提高编程,怎么去提高某方面的技术.我觉得这更像一本内功心法,教给你职场的一些软技能.强烈推荐给即将入职的朋友们.我好懊悔当初没有早点接触到这本书,曲曲折折走了不少弯路.如今读来,依旧感触体会非常深. 这本书很多其它的是告诉你,在工作岗位上怎样更有效的开展工作.当中有几点我想谈谈自己的看法. 拜师 基本每

《App后台开发运维和架构实践》前言

笔者在2012年从开发电子商务网站转向了开发App后台,当时在一家做社交App的创业公司里工作,笔者和搭档都没有任何从事移动互联网开发的经验,不清楚App后台怎么架构,只能摸着石头过河,那时网络上只有一些零散的资料,当遇到问题时只能不断地摸索和思考,来找到解决问题的方法. 在从事开发App后台接近4年的时间中,笔者参与了两款社交App的开发,现在就职于bmob,从事云后台服务的研发工作,慢慢地对App后台的架构有了一些体会. 从2013年年底开始,笔者把工作笔记发表在CSDN博客专栏"App后端

做后台开发用到的技能都在这儿——《后台开发:核心技术与应用实践》

大多数面向对象语言没有指针的概念,C语言也没有对象的概念,同时具有指针和对象的C++语言在学习时有高昂的门槛,同时在服务端后台开发.处理多并发的海量网络请求等方面有天然的优势.就像Android开发对性能要求比较高的地图.视频.即时通讯由NDK开发一样,当网络应用的用户量. 并发量迅速增长,达到一定量级之后,后端服务的技术架构都会适用于自己玩玩的JavaScript(Bmob云端代码).适用于小规模网站的PHP和适用于中等规模网站的Java转变为Linux C++. 徐老师的<后台开发:核心技术

资深后台研发工程师(转)

资深后台研发工程师 岗位职责: 1.负责搭建平台网络架构及技术架构: 2.把握平台开发方向和技术路线,解决关键技术问题: 3.负责与战略客户.合作伙伴的方案讨论,技术交流以及开发管理: 4.负责参与项目启动.项目计划.项目选型.项目实施.项目验收及项目内部总结等相关工作: 5.参与公司其它技术问题讨论与决策: 6.公司交办的其他事项. 任职要求: 1.5年以上互联网产品研发经验: 2.精通J2EE相关技术,编程基础扎实,熟悉io.多线程.集合等基础框架: 3.熟悉Spring, Spring M

《App 后台开发运维和架构实践》目录

ps:由于书的目录太长了,各大网店(京东,当当,亚马逊)都显示不完整,所以这里列出目录的完整版. 第1章 App后台入门 16 1.1 App后台的功能 16 1.2 App后台架构 17 1.3 App和App后台的通信 19 1.4 App后台和Web后端的区别 22 1.5 选择服务器 23 1.6 选择编程语言 24 1.7 快速入门新技术 25 1.7.1 思维模式 25 1.7.2 4种快速入门新技术的方法 25 1.8 App是怎样炼成的 26 1.8.1 项目启动阶段 26 1.