热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

昨天被华章安利了一本今年8月份的新书《后台开发:核心技术与应用实践》,极好的书,评价和口碑超高。这本书腾讯公司资深研发工程师多年后台开发经验总结,获腾讯、Facebook、微软、阿

   昨天被华章安利了一本今年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
作者:徐晓鑫

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


推荐阅读
  • 本文详细探讨了Java集合框架的使用方法及其性能特点。首先,通过关系图展示了集合接口之间的层次结构,如`Collection`接口作为对象集合的基础,其下分为`List`、`Set`和`Queue`等子接口。其中,`List`接口支持按插入顺序保存元素且允许重复,而`Set`接口则确保元素唯一性。此外,文章还深入分析了不同集合类在实际应用中的性能表现,为开发者选择合适的集合类型提供了参考依据。 ... [详细]
  • 在 HihoCoder 1505 中,题目要求从给定的 n 个数中选取两对数,使这两对数的和相等。如果直接对所有可能的组合进行遍历,时间复杂度将达到 O(n^4),因此需要考虑优化选择过程。通过使用哈希表或其他高效的数据结构,可以显著降低时间复杂度,从而提高算法的效率。具体实现中,可以通过预处理和存储中间结果来减少重复计算,进一步提升性能。 ... [详细]
  • Spring Security 认证模块的项目构建与初始化
    本文详细介绍了如何构建和初始化Spring Security认证模块的项目。首先,通过创建一个分布式Maven聚合工程,该工程包含四个模块,分别为core、browser(用于演示)、app等,以构成完整的SeehopeSecurity项目。在项目构建过程中,还涉及日志生成机制,确保能够输出关键信息,便于调试和监控。 ... [详细]
  • 如何在IDEA中安装和配置反编译插件以提高代码审查效率
    在 IntelliJ IDEA 中提升代码审查效率的一种方法是安装和配置反编译插件。首先,进入 IDEA 的设置界面,然后导航到插件管理部分。接下来,搜索 "ideaJad" 插件并进行安装。安装完成后,重启 IDEA 以确保插件生效。这将帮助你在审查二进制文件时更加高效地查看源代码。 ... [详细]
  • 深入解析 OpenCV 2 中 Mat 对象的类型、深度与步长属性
    在OpenCV 2中,`Mat`类作为核心组件,对于图像处理至关重要。本文将深入探讨`Mat`对象的类型、深度与步长属性,这些属性是理解和优化图像操作的基础。通过具体示例,我们将展示如何利用这些属性实现高效的图像缩小功能。此外,还将讨论这些属性在实际应用中的重要性和常见误区,帮助读者更好地掌握`Mat`类的使用方法。 ... [详细]
  • 本文深入探讨了 iOS 开发中 `int`、`NSInteger`、`NSUInteger` 和 `NSNumber` 的应用与区别。首先,我们将详细介绍 `NSNumber` 类型,该类用于封装基本数据类型,如整数、浮点数等,使其能够在 Objective-C 的集合类中使用。通过分析这些类型的特性和应用场景,帮助开发者更好地理解和选择合适的数据类型,提高代码的健壮性和可维护性。苹果官方文档提供了更多详细信息,可供进一步参考。 ... [详细]
  • 解决基于XML配置的MyBatis在Spring整合中出现“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”问题的方法
    在将Spring与MyBatis进行整合时,作者遇到了“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”的问题。该问题主要出现在使用XML文件配置DAO层的情况下,而注解方式配置则未出现类似问题。作者详细分析了两个配置文件之间的差异,并最终找到了解决方案。本文将详细介绍问题的原因及解决方法,帮助读者避免类似问题的发生。 ... [详细]
  • 在探讨如何高效处理大规模数据报表的分页展示之前,首先需要明确导致报表加载缓慢的主要原因。通常情况下,这主要是由于两个方面:一是查询条件过于宽泛,使得数据库返回的结果集包含数百万甚至更多的记录;二是前端渲染性能不足,无法高效处理大量数据。为了优化这一过程,可以从以下几个方面入手:优化查询条件,减少不必要的数据返回;采用分页查询技术,每次仅加载所需的数据;利用缓存机制,减少对数据库的频繁访问;提升前端渲染效率,使用虚拟滚动等技术提高用户体验。 ... [详细]
  • 题目描述非常吸引人。每颗星星可以通过其在窗口的左下角和右上角位置构建两条扫描线,从而将问题转化为区间增减和求最大值的操作。需要注意的是,位于边界的星星不应计入结果,因此在处理时应分别对左右边界进行适当的增减调整。此外,利用线段树和离散化技术可以显著提高算法效率,确保在大规模数据下的性能表现。 ... [详细]
  • 大数据应用实例:电视收视率分析企业项目实操第二篇
    本文继续探讨大数据在电视收视率分析中的应用,详细介绍了如何在CentOS系统中进行防火墙管理。针对CentOS 6.5及更早版本,提供了具体的命令操作步骤,包括停止防火墙服务和禁用防火墙启动。此外,还深入讨论了这些操作对数据传输和系统安全的影响,为实际项目实施提供了宝贵的技术参考。 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • PHP中元素的计量单位是什么? ... [详细]
  • Vuex 实战进阶:构建高效笔记本应用(第二篇)
    在上一篇文章中,我们初步探讨了 Vuex 在该项目中的应用。本文将深入解析整个项目的架构设计。首先回顾 `main.js` 的内容,然后重点分析 `App.vue` 文件,其中引入了 `Toolbar.vue` 和 `NodeList.vue` 组件,详细说明它们在应用中的作用和交互方式。通过这些组件的协同工作,我们将展示如何构建一个高效且响应迅速的笔记本应用。 ... [详细]
  • 新年伊始,正是学习的最佳时机。本文全面解析了CK1957-Zookeeper的核心概念与实践技巧,旨在帮助初学者快速掌握这一深度学习工具。通过详细的理论讲解和实际操作示例,读者可以更好地理解Zookeeper的工作原理及其在分布式系统中的应用。无论是新手还是有一定基础的学习者,都能从中受益匪浅。 ... [详细]
  • 从无到有,构建个人专属的操作系统解决方案
    操作系统(OS)被誉为程序员的三大浪漫之一,常被比喻为计算机的灵魂、大脑、内核和基石,其重要性不言而喻。本文将详细介绍如何从零开始构建个人专属的操作系统解决方案,涵盖从需求分析到系统设计、开发与测试的全过程,帮助读者深入理解操作系统的本质与实现方法。 ... [详细]
author-avatar
手机用户2502921201
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有