个人的java web开发书单

首发至个人博客http://www.zidafone.com/blog/36

以下是对一些读过的书和一些买后随便翻了翻的书的个人感觉。
都是java web开发的程序员可能接触的书,其他的如设计/手机开发/其他语言的书就不写了,因为自己只做过java web开发,那些书没什么资格评判。
因为不是每本书都翻开确定一下再写的,可能有张冠李戴或记忆错误的情况,如发现了请指正。
如有好书我这里没列举到的,请补充。此书单将持续完善。

js书籍:

《Javascript权威指南》犀牛书
厚,唯一的顶尖著作,上册的每个章节都将一个知识点深入挖掘讲透,必看。下册API无关紧要。

《Javascript高级程序设计》
厚,与犀牛书有很大重叠,但感觉各个方面都不如犀牛书。可以看犀牛书之后随便翻翻这本书,有的地方可做补充。

《Javascript精粹》蝴蝶书
薄,让人喜欢javascript的一本书。

《Javascript DOM编程艺术》
薄,最佳入门书没有之一,对新手来说,前两本太厚让人望而生畏心生恐惧,这本书是优选,豆瓣评分高达8.7。

css书籍:

首先入门还是w3school的教程。大部分作为非美工的程序员就够用了。
看过几本不错的书但忘了名字,待补充。

《精通CSS高级WEB标准解决方案》
《CSS设计指南》
入门之后可以用来提高。

《CSS禅意花园》
非新手向,更适合已经熟悉之后寻找灵感和……欣赏艺术。

html的书籍:
……w3school的教程足够了,讲js和css的书里都会讲。

前端性能:

《构建高性能web站点》
《高性能网站建设指南》
类似的两本薄书,都看过之后会觉得自己无敌了,不想看书YSlow的军规其实也够了,重要的是要知其所以然。

rest:

《REST实战》
厚书,没看呢,老外的很多理论书籍过于想当然和自我神化,不接地气让人不喜,讲到后面敏捷的地方还会议论。

《图解HTTP》
倒是http协议的理解至关重要,有语义的东西不用白不用,method啦,状态码啦,但不要宗教般地抠,比如put和post谁增谁改啥的。
这本书萌萌哒。

前端框架:

《锋利的jquery》
其实就是jqueryAPI的加强版,觉得jqueryAPI足够的话就不用看这本了。

《jquery技术内幕》
与《struts2技术内幕》《spring技术内幕》一系列的好书,讲源码的。这三本书都值得一看。但注意“源码无用论”和“源码神圣论”都不可取。

《深入浅出extjs》
可能是extjs唯一的一本可读的书。非常不喜欢这个框架的思想。html和css都丧失了权力一切由它来托管了,未免权力欲过于旺盛。
真正要用ext的话,官方demo和api是最好的选择,尤其是demo。

《用AngularJS开发下一代web应用》
《单页web应用 Javascript从前端到后端》
《Backbone.js实战》
mv*框架大热以来较热的几个框架,对这几个框架都只有摸索,感觉angularJs风险略大,有点像extjs的想当然,一切都要在它内部来,如果能解决当然省时省力,如果不能解决就糟了。但问题是千变万化的。backbone较轻量,功能弱,风险低,功能弱与风险低从来都是共同出现。
另外还有requireJs,也应该研究研究,这些前端架构级框架都不熟。本能地觉得不切实际,但还是该研究研究再下结论。
传统开发中使用的前端技术,毫无疑问jquery是枪王之王。

《Bootstrap用户手册》
《深入理解Bootstrap》
前者超薄,完全不需要,看Bootstrap官网即可(版本更新时中文官网可能跟最新版本对不上,推荐英文官网)。后者是好书,讲应用也讲源码。
基于Bootstrap的前端CSS框架Metronic超酷,页面常用的组件里面都有,其实就是个最佳实践的大整合大杂烩,里面没有的自己找Bootstrap插件就好。
Bootstrap的伟大在于作为一个脚手架,给各种js组件提供平台,只要都是bootstrap版的插件,整合起来样式一致性一般没什么问题。

java基础书籍:

《scjp考试指南》
无数次被人求推荐书籍,无数次说出这本书之后被鄙视:“我不是为了考证”。但这本书真不是只能用来考证。
对j2se的讲解,既简约又精当,知识足够,又不会把人吓走的书,当然是入门的不二之选。

《Thinking in Java》
java界的顶级图书,每个章节都深入讲一个点,可以通读一遍,然后按需再翻具体章节强化。跟《Javascript权威指南》读法是一样的。
但初学者不适合读这本书,已经无数人说过了。但从别的语言转java的人可以直接读这本书。

《Core Java》
评价很高,个人不喜欢,就像《Javascript高级程序设计》被《Javascript权威指南》全面压制一样,《Core Java》也活在《Thinking in Java》的阴影之下。

《Java解惑》
好玩的书,让你喜欢“有趣的”java。

《深入理解Java虚拟机》
《深入java虚拟机》
知其然又知其所以然,java虚拟机的内部原理,理解了没坏处。

《Effective Java》
最喜欢的书之一,箴言式的规谏,作者的经验之谈,告诉你怎样写出优雅的代码。

java web基础书籍:

《scwcd考试指南》
《Head First JSP & Servlet》
《scwcd考试指南》与《scjp考试指南》一系列,但质量不高。相比之下scwcd的官方推荐教材《Head First JSP & Servlet》(该系列中文版都译为深入浅出xxx)更好。
这两本书都是将jsp的标签讲的很透,但如果使用jstl和el,两本书讲的都稍嫌不足,需要另查资料。

java性能书籍:
《java程序性能优化》
《java性能优化权威指南》
《web性能测试实战》
《零成本实现web性能测试——基于Apache Jmeter》
《Java并发编程实战》
经验型书籍,没什么好说。
因为我也就是粗粗看过。但知道都是好书。

java框架书籍:

《struts2技术内幕》
《spring技术内幕》
《Spring3.x企业应用开发实战》
都来自iteye博主的手笔,第1本和第3本尤为推荐。《strut2技术内幕》的哲学思辨之美让我惊为天人,《Spring3.x企业应用开发实战》的实用和接地气也让人爱不释手,国内的程序员高手写的书比起国外的官方/经典著作,更适合中国人阅读。不要崇洋媚外。当然想看第一手资料那还是国外的好。

《Hibernate实战》
Hibernate作者Gavin King的作品,够权威吧。但个人也不喜欢Hibernate,这么多年都没能用纯熟,类似对Extjs的不喜欢一样,前者尝试解决O/R的不匹配,后者尝试解决O/DOM的不匹配,一切以OO为目标,强力扭转乾坤,这属于逆天行事,当然做的都很出色。但感觉像逆练《九阴真经》练出绝世武功,走错的路,居然成绩斐然,让人赞叹你的强大,但不是说你成绩斐然就不是错而是对了。

Mybatis的好书籍没发现过,而且已经有中文文档了。

《深入浅出Hibernate》
《spring2.0技术手册》
两本经典的好书,有一点点古老了,前者用来Hibernate入门的话还是不二之选,另外满江红的中文文档都非常棒。

至于java的优秀类库基本都是开源的,到官网找demo/文档/API足矣。类库一般较小较轻,英文文档硬看也能看下来。框架较重,中文讲原理的书看了提纲挈领,否则容易陷入迷雾不能自拔。
类库和框架的区别是什么?答:控制反转。

至于一些java技术就不赘述了,SpringSide本身就是个大目录,沿着它给打开的窗户们一样样探究吧。

设计模式书籍:

《Head First设计模式》
《设计模式之禅》
《java与模式》
《设计模式java中的应用》
……
设计模式的书没有特别好的也没有特别糟的,不同作者其实也没有什么发挥的余地,都是讲那些东西,所以都很像。
设计模式的要点是通读,都理解了,在脑海中留存,以后写程序适当的时候设计模式自然会蹦出来。
个人感觉最好用的,工厂单例原型迭代这些最简单的不说了,门面调停者这些偏架构的也不说了,最好用的是:适配器,策略,模板,另外组合、访问者、装饰器等各有各的用。桥接一直没有很好的理解。享元轻易用不上。代理spring的aop几近完美不用自己玩。解释器用的机会也不多。别的看情况使用。

《反模式》
介绍的是一些理论上不合理、但非常普及、能解决某些问题的“反模式”。
把“反模式”一锤子打死也不对,但不是非用不可的情况还是轻易不要用。

架构思想书籍:

《企业应用架构模式》
Martin Fowler的不朽著作,也是其人最好的一本书,十几年前的书,牛到了其中的种种思想,现在看来都是理所当然了,可见其影响力和普及程度。

《Expert One-on-One J2EE Development without EJB》
《J2EE设计开发编程指南》
java界的巨人,Spring作者Rod Johnson的封王之作,这两本书同时期出现的spring彻底改变了java世界的格局,用老爵爷的语气说,将他妈的EJB从王座上拉了下来。
“水,善利万物而不争,处众人之所恶,故几于道。”——《道德经》中的这句话,个人感觉可以用来赞颂Spring的伟大。
唯一的顶级框架,java界的万王之王。
个人非常崇拜的SpringSide正是以Spring为核心,提供的最佳实践的展示。功德无量。

《J2EE核心模式》
更早的书了,有空可以读读,不是特别必要。

《大型网站技术架构》
《软件架构设计》
国人的书籍,讲的是“架构”而不是“框架”了,前一本强烈推荐,淘宝系的书籍都很不错。

数据库书籍:

数据库的思想,行列含义,各种范式什么的,好理解。
oracle,mysql,sql server...等主流数据库,书籍都太多了,而且没有特别出彩的(怎么出彩?)或者特别差劲的,随意挑选就可以。不买书网上查资料其实也没问题。
当然这指的是开发人员使用的数据库技术,更深的DBA技术我不了解,如果以后接触到再补充。

《Sql反模式》
为领域建模之后,画E-R图,然后建表,是自然而然的事,不需要书籍。
反模式的议论见上文,SQL中也有一些反模式,这本书做了介绍。

编程基础书籍:

《java数据结构和算法》等数据结构、算法书籍
《编译原理》
《算法导论》
《计算机程序的构造和解释》
《编程珠玑》
《代码大全》
等等……
不用一本本说了,基础的东西几十年也不会过时,认真读了受用无穷。
可惜太过深入,书太厚,节奏太快,一直没能细读,有时间读书也读更“高层”的书去了,太可惜了。

网络安全书籍:

《白帽子讲web安全》
《Web前端黑客技术揭秘》
中国人写的安全书籍,做网站的必看,尤其是仇恨值高的。

软件工程类:

《人月神话》
70年代出的书到现在依然畅销,永垂不朽的名作,程序员必读。

《构建之法》
接地气的著作,软件开发的全景图,不是高高在上的指导,而是娓娓道来手把手来教。

《敏捷软件开发 原则,模式与实践》
个人看过的敏捷类书籍中相对不错的。个人认为敏捷开发宣言背下来,敏捷的价值观记下来,按实际情况灵活运用就是了。有些敏捷爱好者的宗教式狂热特别吓人,简直走火入魔,不可取。

《高效程序员的45个习惯:敏捷开发修炼之道》
这45个习惯,无论敏捷与否,都是应该具备的,应该说是“优雅的”“职业的”行为。
很明显,有些公司的工作不“敏捷”,但不代表程序员不能从这本书中受益。

《代码整洁之道》
《重构——改善既有代码的设计》
职业程序员有义务写好自己的代码,写给接手代码的人,更是写给半年后的自己。
最基本的职业道德,不需要多说。

时间: 2024-11-08 15:21:09

个人的java web开发书单的相关文章

Java web开发路线--Java学习资料汇总

Java web开发是什么? 先来说说java体系,包含:javaSE.javaEE.javaME,其实目前关注主要是javaEE,但学些javaEE必须先学习javaSE(因为这个是java基础).Java web开发其实是应用javaEE实现web应用的开发,是用Java技术来解决相关web互联网领域的技术总和. web开发主要包括前端开发和后端开发,前端主要是HTML.CSS.JS等相关技术,后端技术主要有JavaEE技术.数据库技术.文件存储技术等.java体系比较庞大,也是很多人比较迷

这份Java Web必读书单,值得所有Java工程师一看!

点击蓝色"程序员书单"关注我哟 加个"星标",每天带你读好书! 经过了10多年的发展,Java Web从开发框架到社区都已经非常成熟,而目前市面上最流行的Java Web框架已然是Spring全家桶,从过去的Spring,SpringMVC,再到SpringBoot.而曾经流行的JSP和servlet,随着前后端分离的趋势,以及Spring这类框架的冲击,也逐渐地淡出了人们的视线,被历史所抛弃. 那么今天如果我们要学习Java Web,应该按照什么样的一个路线去学习

Java Web开发中MVC设计模式简介

一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条理性,对于一个小型的网站这样的编写没有任何问题,但是一但我们需要编写大型的web工程的话,我们现有的编写模式会造成web应用的可扩展性较差,而且一但出现问题不能准确的定位出问题出在哪里. Java是一门应用设计模式比较广泛的语言.目前主流提出的23种设计模式均可在Java语言编写的程序中所应用.目前

java web开发 高并发处理

java web开发 高并发处理 java 高并发 java处理高并发高负载类网站中数据库的设计方法(java教程,java处理大量数据,java高负载数据) 一:高并发高负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF.尤其是Web2.0的应用,数据库的响应是首先要解决的. 一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降.常用的优化措施是M-S(主-从)方式进行同步复制,将查询和操作和分别在不

分享Java web 开发必游之路

一.开始,万事开头难啊! Java的学习很难,因为它太庞杂了,有很多令人恐惧的(并非语言本身的)细节. 让我们先看看,我们将碰到哪些难关: 1. 表示 脸面的部分,这里将用到的技术和知识:JSP,Servlet,XML,HTML,JavaScript,CSS等,最好能了解网络基础(TCP/IP协议等). 2. 业务逻辑 核心的部分,这里将用到的技术和知识:Java Bean,XML等. 3. 数据库 存储的部分,这里将用到的技术和知识:数据库的知识,JDBC,XML等. 4. 部署 必备的部分,

Java Web开发之详解JSP

JSP作为Java Web开发中比较重要的技术,一般当作视图(View)的技术所使用,即用来展现页面.Servlet由于其本身不适合作为表现层技术,所以一般被当作控制器(Controller)所使用,而JavaBean作为模型(Model)层使用.这就是经典的MVC模型. Servlet和JSP的关系上篇博客已经讲过了,并演示了一个相当简单的例子.在具体讲述JSP之前,先把JavaBean简单介绍一下. JavaBean其实就是一个Java普通类,定义了类的属性和行为(get.set方法).在M

跟阿根一起学Java Web开发四:邮件发送与短信发送的实现

邮件发送与短信发送常见于用户注册认证以及系统消息提示功能模块,但实现代码过于繁琐:使用JSPGen后,深感其对邮件发送.短信发送的封装让复杂活变得简单很多. 一.基础配置 1.jspgen-config.xml 在框架基础配置文件中,找到mail节点及sms节点,按如下配置: <!-- 邮件服务 --> <mail status="true"> <smtp> <!-- 发送类型(SMTP MX) --> <type>SMTP&

java web开发总结(五):如何进行系统优化的思考 (http://hillside.iteye.com/blog/580639)

前两天跟同事讨论,说到高并发系统如何做优化,提到这个问题,他说他有些茫然,有点不知道该如何下手. 我想了想这几年做的各种系统优化工作,正好也简单总结一下,总结起来就是:一个核心,N种手段. 一个核心就是:多.快.准. N种手段就要围绕上面的核心做的各种处理. 上面这个核心字多点说也就是:更多用户访问.更短响应时间.数据正确性. 优化的过程,我的想法就是先顺藤摸瓜,沿着一个请求发生的路径一路看过去,测量一下每个点上消耗的时间,会发现很多消耗时间多的点,都是值得你去优化的地方.然后再考虑在每个点上发

Java Web开发笔记(2016-5-6 11:13、2016-5-10 11:13、2016-5-12 14:58)

http://localhost:8080/EquipmentSys/equipment/findEquipStateByEquipmentNumber.html?DEVEICEID=04:e6:76:df:f0:94 返回 1,1 设备状态(1运营,2维护,3锁定),是否更新的开关IsUpdate={1,0}(游戏APK更新条件:IsUpdate=1而且版本号不一样) /** * 接口 * @param request * @return * @throws UnsupportedEncodi