sunxu / pragmatic-java-engineer

Java工程师修炼之道 - 梳理Java知识体系,沓实架构基础

Home Page:http://www.broadview.com.cn/book/13

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

《Java工程师修炼之道》

已开源章节

内容介绍

目前互联网行业如火如荼,进入这个行业的技术人员也越来越多。对于研发来说,从工程角度主要分为:前端工程师、客户端工程师(又分为iOS和Android工程师)、后端工程师、算法工程师等职位。本书所说的Java工程师指的是以Java做为主要开发语言的后端工程师。

从2008年还未毕业时做一些小的项目至今做后端开发已经有差不多十年时间。经历过刚学Java时的迷茫,第一次写出Java程序时的激动,第一次写出一个Web系统的醍醐灌顶,一直到接触到Java更底层的东西,对Java有了一个系统的认识,对后端技术体系有了一个宏观的感受。这期间,用过各式各样的编程语言,尝试过各种开源软件,挖过各种坑,也填过各种坑。就单单针对后端的技术来说,自己的这些知识体系,还是觉得是有一定价值的。

此外,还记得笔者毕业后进入第一家公司时,入职培训的课程对于自己来说虽然不难,但确实让自己有种恍然大悟的感觉。业界的最佳实践和自己在学校里学到的、使用到的差别还是非常大的。直到后来加入当前的这家公司,做过一系列后端技术的培训课程,并且在校招的笔试和面试过程中,深刻体会到了学校中的知识与业界脱节之严重,在平时的社招中也遇到很多对后端技术缺乏系统性认识、技能点不足的工程师们,也经常被人问起如何学习Java后端技术。于是就打算写一下目前后端工程师一些比较主流前沿的技术以及实际工作中会用到的一些技能并串联起来,给刚上大学以后打算以Java后端为职业的学生、刚毕业入职的应届生以及初学者们一些入门的指引,避免走一些弯路,也给一些有经验的工程师们提供一个参考手册将零散的知识点串起来,减少在解决某些实际问题时无头绪搜索带来的时间成本,同时也是对自己的一个阶段性总结和查漏补缺。需要注意的一点是,像数据结构、计算机网络等计算机科学基础知识以及JavaSE基本用法,笔者认为是从事程序开发工作的Java工程师应该必备的知识点,因此并不包括在内。

本书会针对Java后端开发工作中经常用到的关键技能点去做阐述,会尽量覆盖在实际工作中需要的所有技能点。但由于很多技能点并非一两篇文章就能讲述完成的,本书仅仅是做一些实践性的经验总结和阐述,更加详细和深入地学习则需要参考专门的书籍或者官方文档。因此,如果是对内容深度有要求的读者,那么本书并不适合。

本书的大部分内容都来自笔者的博客以及平时工作、学习中的一些自我总结和笔记,记录了笔者进入这个行业以来的一些经验教训和思考。

此外,笔者的学习、工作笔记是平时工作中查阅网上资料并经过辨伪后记录下来的零散知识点,难免会有一些对网上资料的引用,因此特别对这些资料的原创者表示感谢,如果有侵权可以联系我。

读者对象

  • 未入门或者刚入门的Java工程师

    包括未来以Java后端开发为职业方向的在校学生、刚毕业入职的Java工程师以及未形成知识体系的Java工程师。通过阅读本书能够对Java工程师的必备技能有一个全局的认识,逐步形成自>己的Java技术体系。

  • 有经验的Java工程师

    有经验的Java工程师可以通过此书查漏补缺,巩固自己的开发技能,进一步加强自身的Java技术体系。

  • 对Java后端开发感兴趣的非Java工程师

    非Java工程师可以通过此书了解Java工程师的技能体系,尤其对于其他语言的后端工程师来说,本书的很多内容也是通用的,并不局限于Java开发。

内容概览

  • 第一章 后端技术导言

    本章主要从总体上描述后端技术的概念、组成、作用、需要的知识点,并给出了学习后端技术的建议。

  • 第二章 Java项目工程化

    本章主要讲述Java项目工程化需要掌握的软件、技能等。

  • 第三章 开发框架

    本章主要讲述Java后端开发中的一些主流框架的使用。

  • 第四章 Spring

    本章主要讲述Spring核心、数据操作以及一些常用组件的使用。

  • 第五章 数据存储

    本章主要讲述Java应用中数据存储上使用的一些软件、服务等。

  • 第六章 数据通信

    本章主要讲述Java应用中数据传输、通信上使用的一些软件、服务等。

  • 第七章 Java编程进阶

    本章主要介绍一些Java开发中的高级特性以及在Java开发中非常流行的类库。

  • 第八章 性能调优

    本章主要讲述如何对Java应用的性能进行分析和调优,并给出了开发建议。

  • 第九章 安全技术

    本章主要对Java开发中常用的加密技术、HTTP以及防范各种攻击的方案做了阐述。

后续计划

此书一开始是计划有一章专门讲述大数据开发技术,毕竟现在越来越多的公司在构建自己的大数据平台,大数据技术也逐渐成了Java工程师的必备技能。但自己此方面经验较少,自认并没有达到可以向别人输出知识的程度,于是暂时搁置此部分。

逐步把部分内容开源在此项目中,并补充一些新的内容进来。

  • Zookeepr本来是想放在大数据一章,现在会作为数据存储的一节补充进来。
  • 异步响应式Web框架会补充在开发框架一章,以Vert.x为主,Spring Flux为辅。
  • Redis加入新版本的特性,并补充如何使用Redis实现分布式锁。
  • Kafka加入最新版本的特性,尤其是Kafka Streams和Exactly one语义。
  • Elasticsearch基于5.0版本更新。
  • 补充协程到并发编程中。
  • 补充Netty到网络编程中。
  • 使用Hystrix做资源隔离和限流会补充在Java开发利器中。
  • 补充RxJava的使用在Java开发利器中。
  • 补充Java10和Kotlin的部分到Java新版本特性。

购买链接

About

Java工程师修炼之道 - 梳理Java知识体系,沓实架构基础

http://www.broadview.com.cn/book/13


Languages

Language:Java 99.5%Language:Thrift 0.5%