Java 后端开发优秀书籍推荐

2020-03-18 16:18:14 +08:00
 KunMinX

想给自研的 app 开发一套 restfulAPI,

之前主要专注于客户端本身,对后端一无所知,花了几天时间网上查资料,没想到搜了一圈下来,连最基本的概念、边界都没能搞清楚,

网文几乎清一色地 一上来就谈论 怎么做、怎么做,就是只字不提 “为什么”、“为什么”,

后端是我初学的领域,我需要一本书,或者一些知识服务,能 从零到一地为我呈现清楚,为了提供远程服务给客户端,在服务端这边到底需要做什么、每个环节究竟是出于什么考虑而被设计

比如 tomcat,它的边界是什么?它能提供什么?它不能提供什么?(它是应用服务器,监听端口,接收请求,那么它怎么通知 web 程序呢?),servlet 类似于 android 的 sdk 吗? spring boot 是基于 servlet 封装和定制的一整套开发框架吗?……

我需要首先搞清楚它们各自所处的 环节、关系、职责边界,非常非常需要,一上来就怎么做、怎么做,让我 非常困扰

所以想请教一下万能的 v 友,看看有没什么自己看的好的书籍推荐

6042 次点击
所在节点    程序员
23 条回复
hantsy
2020-03-18 16:21:35 +08:00
Manning, Apress, Oreilly 书大把,自己选择吧。
jatesun
2020-03-18 16:29:40 +08:00
springboot 一把梭就行了
yidinghe
2020-03-18 16:37:48 +08:00
楼主如果需要的是设计方面的书,推荐话题:1、重构; 2、敏捷软件开发; 3、测试驱动开发。
dapking
2020-03-18 16:43:08 +08:00
建议看视频,如果只了解概念,只看前两节介绍就行。弄清楚概念,再网上找资料。
linhua
2020-03-18 16:43:28 +08:00
Head First Servlet JSP
从网上找培训班的视频看
ala2008
2020-03-18 17:45:48 +08:00
还别说,大部分人都是不知道为什么就入门了。。应该有个教学 /培训流程
hooych
2020-03-18 17:48:18 +08:00
你学习 Android 的时候也一上来就追问为什么吗?

为什么 Activity 要继承 Context ?
aguesuka
2020-03-18 17:54:35 +08:00
effective java
eden999
2020-03-18 18:01:40 +08:00
应该是先学会用,代码跑起来,再深究原理
zzzzzzggggggg
2020-03-18 18:01:55 +08:00
建议最开始的时候找个功能完善的 demo 跑起来就行了,至于原理和很多为什么可以边用边找资料看,不然会很累。
个人经验之谈。
Lonely
2020-03-18 18:03:51 +08:00
1. 你想入门的话可以看看《 Java Web 高级编程》,书是老了一点,不过很基础的东西没多大变化。
2. 你入门 Android 的时候就搞懂每个东西“为什么”了吗?
3. “我需要一本书,或者一些知识服务,能 从零到一地为我呈现清楚,为了提供远程服务给客户端,在服务端这边到底需要做什么、每个环节究竟是出于什么考虑而被设计”,我暂时没想到哪本大而全的书告诉你所有这些,你可以等入门了再根据需要去找某个方面更深入的书,比如想知道 tomcat 的原理,可以去看解析 tomcat 的书。
haochih
2020-03-18 19:04:28 +08:00
楼主的问题很好,其实楼主所遇到的问题,归根到底还是和 Java 各项标准及其有关框架的发展历史有关。每个标准或者框架出来都是为了解决什么问题,往后发展过程当中也就遇到了楼主所说的各个组件之间的关系,职责边界。所以我觉得要搞清这个问题,Google 其历史和它出现的初衷,然后再通过类似于 A VS B 之类的问题应该能了解大概(我就是这么做的)。目前来看后端开发的书籍好像解决不了这个事情。
oneend
2020-03-18 19:24:12 +08:00
有一条降级之路,学下 php 吧,毕竟这是世界上最好的语言,一天入门两天精通。
meteor957
2020-03-18 19:24:15 +08:00
同问
q447643445
2020-03-18 22:23:52 +08:00
我觉得会出现这样问题就是因为同样是编程,因为已经走过一遍萌新的流程了 再去学另外一系列技术栈后
会有跳跃思维,想马上搞懂每个组件,框架,中间件的作用.
跟我最近一段时间在学前端也碰到 lz 这情况,
刚敲代码的时候做过一段时间前端, 其实就是简单的 bootstrap 和 jq .
然后一直专职后端没做过前端了. 想重新捡起来学一下,
多了好多东西 es6 wepack npm node 也搞不清是什么东西 , 有什么关系, 为什么.
困惑跟 lz 简直一模一样. 反正慢慢折腾就行了 毕竟已经不是萌新了
fogsky
2020-03-18 23:00:51 +08:00
@haochih 说的很赞!
lidlesseye11
2020-03-19 00:31:12 +08:00
@haochih
说的很对。
我就一直觉得计算机书籍里缺历史书。以 java 为例,能有一本书以时间为轴介绍 JavaEE, Spring, Struts, tomcat, jboss, blabla 的开发过程,标准的制定过程等等。这些东西都是为了解决什么问题,由哪些大佬 /公司一步步推动的。
而不是一上来就是 spring, ap server 各种 magic 甩脸
zhoudaiyu
2020-03-19 00:48:14 +08:00
Core Java Effective Java Thinking in Java Algorithms 4th Spring in Action
zhangshangyu
2020-03-19 01:42:00 +08:00
可以按这个顺序学习了解
socket 服务器,http 协议及服务器,servlet 规范 ,Tomcat 容器
spring,spring mvc,spring boot
每个模块都可以试着手写下最简单的能跑起来的 demo
wozhizui
2020-03-19 07:57:17 +08:00
廖雪峰 java 教程,免费,不过还没更新完。偏应用的 web 开发,才刚开始更新,前面都是 Java SE 的内容。
链接放一个,https://www.liaoxuefeng.com/wiki/1252599548343744

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/653914

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX