想成为软件架构师,一定要看的经典书单
参与文末话题讨论,每日赠送异步图书
——异步小编
互联网的发展带动了各行各业信息化的趋势,一大批高新企业如雨后春笋般出现在大众的视野中。于是,不同类型的软件项目应运而生。在这些琳琅满目的项目中,有企业管理、电商平台、财务报表、金融银行、医疗器械、智慧城市和大数据分析等类型。项目的层出不穷带来了巨大的利润,让高新企业不断地成长起来,与此同时,也带来了很多相关的就业岗位。
当然,要顺利地完成这些项目,就需要大量的软件工程师。这种硬性的需求又养活了一大批培训机构,从事软件行业的人员当初是凤毛麟角,现在依然是供不应求。那么,如何提高软件工程师的开发技能就成了一个无法回避的问题。诚然,公司可以不定期进行培训,提高开发人员的技能水平,但从更普遍、更直接的意义上来说,提高技能水平的最佳方式还是系统地阅读相关书籍。
计算机语言从机器语言、汇编语言发展到现在的高级语言,这个过程中诞生了很多种语言。有些语言已经逐步退出历史舞台,有些语言仍然在小众化的范围内存在。而Java语言,经历了二十多年的发展,仍然保持着旺盛的生命力,在编程语言排行榜中高居不下,Java程序员的数量也与日俱增,这种现象主要是由Java自身的优势决定的。作为开发人员,需要关注的并不是底层的核心,更多的是Java带给我们的简单、直观、易于使用的平台。因此,程序员不用关心虚拟机复杂的结构和每一步的运行情况,只需要关注项目业务的代码即可。这种易于接受的情形,让更多人把开发当成了一种乐趣。
最近,在业内流行起来的全栈工程师的定位更像是高级程序员,而架构师则需要站在更高的层面思考问题。作为Java架构师,不但要懂得前端插件化的开发理念,为项目选择合适的前端插件,还需要精通后端开发,为项目选择合适的框架,这样才能高效地完成任务。否则,极有可能出现事倍功半的情况。如果说需要弥补架构缺陷,最乐观的情况是通过加班实现,最糟糕的情况是直接导致项目失败。因为项目经理可能并不会深入了解具体的代码,他通常会参考架构师的意见,所以架构师的意见就显得极为重要。
《Spring微服务实战》
[美]约翰•卡内尔(John Carnell)著
本书详细介绍了微服务架构下Spring体系(Spring ->Spring Boot->Spring Cloud),帮助 Java 开发人员快速拆分单体应用,并对微服务的全生命流程进行了封装,大大简化了开发流程。
本书在构建和部署Spring云应用程序的同时,让读者掌握如何进行微服务设计。整本书是一个完整的例子,传授作者多年的宝贵经验。
本书以一个名为EagleEye的项目为主线,介绍云、微服务等概念以及Spring Boot和Spring Cloud等诸多Spring项目,并介绍如何将EagleEye项目一步一步地从单体架构重构成微服务架构,最终将这个项目拆分成众多微服务,让它们运行在各自的Docker容器中,实现持续集成/持续部署,并最终自动部署到云环境(Amazon)中。针对在重构过程中遇到的各种微服务开发会面临的典型问题(包括开发、测试和运维等问题),本书介绍了解决这些问题的核心模式,然后在实战中选择特定Spring Cloud子项目或其他工具解决这些问题。
《Spring 实战(第4版)》
【美】Craig Walls(沃尔斯)著
全球有超过100 000的开发者使用本书来学习Spring
中文版累计销售超10万册,畅销经典Spring 技术图书,针对Spring 4 全新升级 作者Craig Walls,SpringSource的软件开发人员,也是一位畅销书作者。 第3版译者继续翻译新版,品质保障!
精通Spring MVC 4》
【美】Geoffroy Warin 著
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。Spring MVC4是当前最新的版本,在众多特性上有了进一步的提升。
在本书中,我们将会从头开始构建一个有用的Web应用。本书共计10章,分别介绍了快速搭建Spring Web应用、精通MVC结构、URL映射、文件上传与错误处理、创建Restful应用、保护应用、单元测试与验收测试、优化请求、将Web应用部署到云等内容,循序渐进地讲解了Spring MVC4的开发技巧。
《深入理解Spring Cloud与微服务构建》
方志朋 著
本书共分16章,全面涵盖了Spring Cloud构建微服务相关的知识点。第1、2章详细介绍了微服务架构和Spring Cloud。第3、4章讲解了用Spring Cloud构建微服务的准备工作。第5~12章以案例为切入点,讲解了Spring Cloud构建微服务的基础组件,包括Eureka、Ribbon、Feign、Hystrix、Zuul、Config、Sleuth、Admint等组件。第13~15章讲述了使用Spring Cloud OAuth2来保护微服务系统的相关知识。第16章用一个综合案例,全面讲解了如何使用Spring Cloud构建微服务,可以作为实际开发的样例工程。
《微服务分布式构架开发实战》
龚鹏 著
本书语言简洁,内容丰富,适合具备初级Java后端开发能力的开发人员,大中专相关专业师生,网站培训班学员,以前拥有单工程开发经验并且想尝试分布式微服务架构的人员。
《Java架构师指南》
王波 著
资深Java专家多年经验总结,全程项目驱动,首本完整介绍Java入门进阶到架构师的编程技术图书。
程序员走向架构师是必经之路,本书基于官方API的完美解读,从架构师的角度来讲解Java知识技能,并且从搭建虚拟机开始,学习常用的Linux命令,力争做到使程序员在较短的时间内成功迈入架构师的殿堂。
《分布式对象存储——原理、架构及Go语言实现 》
胡世杰 著
云存储专家200分钟视频讲解,掌握云存储理论,动手搭建分布式对象存储架构
本书首先从一个最简单的对象存储服务原型开始,讨论在原型中存在的问题并介绍对象存储服务中一些常见的概念以及设计理念,然后通过改变架构或添加功能的方式解决这些问题。这一迭代步骤将发生多次,最终我们会收获一个足够完善的对象存储服务。
《App架构师实践指南 》
SkySeraph 潘旭玲 著
一本讲解从程序员转变为架构师需要了解的技能和思想,明确地给程序员指引了移动架构师成长的路线,是想成为架构师的程序员实用指南。
全面介绍了在移动应用开发的架构设计和性能优化方面的知识,是架构师的必备书籍 。讲述了移动应用架构师需要了解的技能、思想等整体的发展方向,是移动架构师成长的路线图。
《遗留系统重建实战》
[英] 克里斯·伯查尔(Chris Birchall) 著
这是一本以经验为主导的指南,能使遗留软件项目脱胎换骨。它涵盖了重构、质量度量学、工具链和工作流、持续集成、基础设施自动化以及组织文化等内容。在技术层面,读者将学习如何给代码模块化引进依赖注入,如何定量地衡量软件质量,以及如何实现基础设施的自动化。
在策略层面,读者将能学到的实践有:软件是应该重写还是应该重构,团队的组织架构应该是什么样的,以及如何让管理层意识到软件质量的重要性。本书的核心议题包括解析和模块化棘手的代码结构、集成和自动化测试、替换过时的构建系统,以及用Vagrant和Ansible 之类的工具实现基础设施自动化。
《编写高性能的.NET代码》
[美] Ben,Watson,沃森 著
想让自己的.NET代码获得zui佳的性能吗?本书将揭开CLR的神秘面纱,不仅教你如何编写性能优异的代码,还能让你“知其所以然”。作者参与设计并搭建的系统是世界上最大型的高性能.NET系统之一,他在本书中融入了很多的经验教训。
本书不仅讲解了CLR的工作机制,还详细介绍了当前获得zui佳性能的新方法,涉及.NET环境下的优化、对CLR功能的深入剖析、免费的工具和教程推荐、颇有价值的案例轶事、评测并提升性能的具体步骤。
《Docker容器:利用Kubernetes、Flannel、Cockpit和Atomic构建和部署》
克里斯托弗·尼格斯(Christopher Negus) 著
Linux系统或云环境上运行Docker的实用指南!
无论是在笔记本上还是在远程云上,Docker 都能够改变创建、测试、部署和管理zui关键应用的方式。本书中,作者Christopher Negus 帮助读者从头开始掌握Docker 容器化技术。
开始的时候读者能够运行一些Ubuntu、Fedora、RHEL、CoreOS 或Project Atomic 的Docker 容器镜像,看完本书之后,读者就可以在现代Linux 和云环境中部署企业级质量、多容器的Kubernetes。
《OpenStack实战》
[美]V. K. 科迪·布姆加德纳(V. K. Cody Bumgardner)著
本书提供了真实环境使用案例和如何构建你自己的云平台的一步步的指导。本书能为你提供所需要的物理硬件集群和基础设施服务设计指导。你将会学到如何选择和设置虚拟服务器和物理服务器,如何实现软件定义网络以及在企业内部设计、部署和运营一个OpenStack云的技术细节,还会探索如何针对自己的环境对OpenStack部署做出最佳的定制。最后,你还会学到自己的云是如何提供面向用户的软件和基础设施服务的。
《第一本Docker书(修订版)》
[澳] 詹姆斯·特恩布尔(James Turnbull) 著
本书由Docker公司前服务与支持副总裁James Turnbull编写,是Docker开发指南。本书专注于Docker 1.9及以上版本,指导读者完成Docker的安装、部署、管理和扩展,带领读者经历从测试到生产的整个开发生命周期,让读者了解Docker适用于什么场景。
书中先介绍Docker及其组件的基础知识,然后介绍用Docker构建容器和服务来完成各种任务:利用Docker为新项目建立测试环境,演示如何使用持续集成的工作流集成Docker,如何构建应用程序服务和平台,如何使用Docker的API,如何扩展Docker。
今日互动
你最喜欢哪一本?为什么?截止时间6月15日17时,留言+转发本活动到朋友圈,小编将抽奖选出3名读者赠送纸书1本和2张e读版80元异步社区代金券,(留言点赞最多的自动获得一张)。
推荐阅读
长按二维码,可以关注我们哟
每天与你分享IT好文。
在“异步图书”后台回复“关注”,即可免费获得2000门在线视频课程
点击阅读原文,购买《Spring 微服务实战》
阅读原文低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Flink 1.4.2 版本踩过的坑
0x1 摘要 最近业务要实时统计半小时维度的UV、PV数据,经过调研准备用Flink时间窗来实现,主要是Flink对eventTime的支持,可以做到更精准的统计,由于第一次尝试使用Flink,所以过程中遇到不少问题,记录下来方便后续查阅。 0x2 执行计划输出JSON问题 Flink对执行计划分析提供了支持,可以通过代码将执行计划打出来,并利用官网提供的图生成工具可以方便分析,通过env.getExecutionPlan()方法可以获取JSON格式的执行计划,将JSON字符串拷贝到http://flink.apache.org/visualizer/网站文本框就可以查看。但我们在项目中调用env.getExecutionPlan()方法后报以下异常信息: Caused by: java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.TimSort.mergeLo(TimSort.java:777) at java.util.TimSort.mer...
- 下一篇
程序员们都他妈给我笑~裤子都脱了你让我干这个?
一直以来 黑程序员都是一项为人民群众喜闻乐见的娱乐活动 我们不仅黑程序员 程序员也喜欢自黑 人们对程序员的印象一般来自两个地方 影视作品和段子手 前者宣传的程序员往往很酷 而后者揭露的程序员往往很挫 和网上各位段子手的说法不一样 我一直觉得 在骨子里面 程序员都是一群调皮的小朋友 并且拥有善良的心和蓬勃的生活激情 更重要的是 他们普遍都耿直真诚不会撒谎 下面来看看 这样有趣的一群人 有什么话是会引起他们不适的呢? @ZH “这个活儿挺简单的,用不了多久就能搞定了。” (you can you up啊!) @蛋哥 “哟,又在写BUG啊?” (才没有呢!你才在写BUG!你全家都在写BUG嘤嘤嘤!) @DQ睿哲 01 “这个应该很简单吧?“ ”为什么淘宝都能做到,你做不到?” (程序员:我也想知道。) 02 下班了,故意从程序员边上飘过。 淡定的来一句:“哟,还在改 bug 呢。” 看着程序猿难过的眼神。 再加一句:“加油!我先下班了啦~” 03 “尽快做完,OK?” (程序员:用邮件发这句话杀伤力更大……) 04 “你先大概开发一个,我再提需求。” (程序员:请问,什!么!叫!大!概!) ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- MySQL8.0.19开启GTID主从同步CentOS8
- Hadoop3单机部署,实现最简伪集群
- CentOS8编译安装MySQL8.0.19
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池