首发至个人博客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个习惯,无论敏捷与否,都是应该具备的,应该说是“优雅的”“职业的”行为。
很明显,有些公司的工作不“敏捷”,但不代表程序员不能从这本书中受益。

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

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

  1. Java Web开发技术教程入门-静态网页技术

        昨天了解了构建动态网站的几种技术:Servlet技术.JSP技术,ASP技术和ASP.NET技术以及PHP技术.昨天的精髓在于JSP技术的运行原理:通过用户请求JSP文件,首先检查JSP文件的 ...

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

    点击蓝色"程序员书单"关注我哟 加个"星标",每天带你读好书! 经过了10多年的发展,Java Web从开发框架到社区都已经非常成熟,而目前市面上最流行的Jav ...

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

    一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条 ...

  4. 【原创】三分钟教你学会MVC框架——基于java web开发(2)

    没想到我的上一篇博客有这么多人看,还有几位看完之后给我留言加油,不胜感激,备受鼓励,啥都别说了,继续系列文章之第二篇.(如果没看过我第一篇博客的朋友,可以到我的主页上先浏览完再看这篇文章,以免上下文对 ...

  5. Java Web开发之详解JSP

    JSP作为Java Web开发中比较重要的技术,一般当作视图(View)的技术所使用,即用来展现页面.Servlet由于其本身不适合作为表现层技术,所以一般被当作控制器(Controller)所使用, ...

  6. 《Java web 开发实战经典》读书笔记

    去年年末,也就是大四上学期快要结束的时候,当时保研的事情确定了下来,终于有了一些空闲的时间可以学点实用的技术. 之前做数据库课程设计的时候,也接触过java web的知识,当时做了一个卖二手书籍的网站 ...

  7. day04 Java Web 开发入门

    day04 Java Web 开发入门 1. web 开发相关介绍 2. web 服务器 3. Tomcat服务器启动的问题 4. Tomcat目录结构 5. Web应用程序(虚拟目录映射,缺省web ...

  8. Java Web开发和Python Web开发之间的区别

    今天的文章讨论了Java Web开发和Python Web开发之间的区别.我不鼓励我们在这里从Java Web迁移到Python Web开发.我只是想谈谈我的感受.它不一定适合所有情况,仅供我们参考. ...

  9. java web 开发入门

    Java web,是java技术用来解决web互联网领域的技术总和.Java web技术主要包括客户端和服务端,java在客户端的服务有java applet,不过用的非常少,大部分应用在服务端,比如 ...

随机推荐

  1. 10 Ways to Inspire Your Team

    Inspire. Just the word itself causes us to pause and think. We may remember our own personal heroes ...

  2. iOS prototype Cells

    在storyboard这方面用到的很少,cell也没有用到.上个周五,汤老师快下班的时候说:你看,我的界面已经搭建完成了.而我这边还没有头绪.现在想把需求模拟一下,结果流程没有弄完,自己在这搭起界面来 ...

  3. Linux系统产生随机数的3种方法

    Linux系统产生随机数的3种方法 方法一:生成8位随机数 [root@localhost ~]# echo "$RANDOM$(date +%N%t)" | md5sum | c ...

  4. How to read the HTML DTD

    Contents How to read the HTML DTD 1. DTD Comments 2. Parameter Entity definitions 3. Element declara ...

  5. 微信域名weixin.com天价成交!是腾讯吗?

    据业内人士爆料,“微信”双拼域名weixin.com已于今天交易了,成交价格8位数.如此大手笔,神秘买家会是腾讯吗? 通过查询该域名的whois信息,最近一次的更新时间显示为今年4月13日,注册邮箱信 ...

  6. 如何查看自己的linux是32位还是64位

    查看linux是多少位的几位方法:查看linux机器是32位还是64位的方法:方法一:file /sbin/init 或者 file /bin/ls结果如下:/sbin/init: ELF 64-bi ...

  7. applicationContext.xml文件放置位置不同而导致的jUnit测试的时候路径的不同

    如果applicationContext.xml文件放置在src下面的的时候使用jUint测试的时候编写的路径应该是这样的: @Test public void testFindByPage() { ...

  8. android中用Spannable在TextView中设置超链接、颜色、字体

    昨晚研读 ApiDemo 源码至 com.example.android.apis.text.Link 类.首先,看一下其运行效果:  要给 TextView 加上效果,方式主要有几种: 第一种,自动 ...

  9. iOS 对UIButton的imageView和titleLabel进行重新布局

    #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @pr ...

  10. 使用visual studio 2012 编译opencv2.4.9

    最近,由于需要从opencv源码部分对opencv中的某个函数进行修改,以提升算法的速度,因此一直在尝试使用vs2012来编译opencv.期间不乏多次的失败.今天通过实验发现了自己编译的opencv ...