第一图书网

编写高质量代码

秦小波 机械工业出版社华章公司
出版时间:

2011-12-28  

出版社:

机械工业出版社华章公司  

作者:

秦小波  

Tag标签:

无  

内容概要

  在通往“java技术殿堂”的路上,本书将为你指点迷津!内容全部由java编码的最佳实践组成,从语法、程序设计和架构、工具和框架、编码风格和编程思想等五大方面,对java程序员遇到的各种棘手的疑难问题给出了经验性的解决方案,为java程序员如何编写高质量的java代码提出了151条极为宝贵的建议。对于每一个问题,不仅以建议的方式从正反两面给出了被实践证明为十分优秀的解决方案和非常糟糕的解决方案,而且还分析了问题产生的根源,犹如醍醐灌顶,让人豁然开朗。
  本书一共12章,第1~3章针对java语法本身提出了51条建议,例如覆写变长方法时应该注意哪些事项、final修饰的常量不要在运行期修改、匿名类的构造函数特殊在什么地方等;第4~9章重点针对jdk
api的使用提出了80条建议,例如字符串的拼接方法该如何选择、枚举使用时有哪些注意事项、出现nullpointerexception该如何处理、泛型的多重界限该如何使用、多线程编程如何预防死锁,等等;第10~12章针对程序性能、开源的工具和框架、编码风格和编程思想等方面提出了20条建议。
  本书针对每个问题所设计的应用场景都非常典型,给出的建议也都与实践紧密结合。书中的每一条建议都可能在你的下一行代码、下一个应用或下一个项目中崭露头角,建议你将此书搁置在手边,随时查阅,一定能使你的学习和开发工作事半功倍。

作者简介

秦小波,资深软件开发工程师、系统分析师和架构师(获Sun架构师认证),从软件开发工作10余年,实践经验极其丰富。资深Java技术专家,Java语言、Spring、Struts 2、Hibernate、iBatis、jBPM等Java技术,在企业级Java应用领域积累了大量工程经验,对ESB、BPEL等整合技术也有较深入的认识。精通设计模式,对设计模式有深刻的认识和独到见解,而且创造性地提出了自己在大量实践中总结出来的新的设计模式。他撰写的《设计模式之禅》一书凭借优质的内容和良好的可读性广获读者好评,被誉为“设计模式领域的里程碑之作。此外,他还是一位优秀的DBA,具有IBM DB2 DBA资格认证,对海量数据处理有深入的研究。

书籍目录

前言
第1章 java开发中通用的方法和准则
 建议1: 不要在常量和变量中出现易混淆的字母
 建议2: 莫让常量蜕变成变量
 建议3: 三元操作符的类型务必一致
 建议4: 避免带有变长参数的方法重载
 建议5: 别让null值和空值威胁到变长方法
 建议6: 覆写变长方法也循规蹈矩
 建议7: 警惕自增的陷阱
 建议8: 不要让旧语法困扰你
 建议9: 少用静态导入
 建议10: 不要在本类中覆盖静态导入的变量和方法
 建议11: 养成良好习惯,显式声明uid
 建议12: 避免用序列化类在构造函数中为不变量赋值
 建议13: 避免为final变量复杂赋值
 建议14: 使用序列化类的私有方法巧妙解决部分属性持久化问题
 建议15: break万万不可忘
 建议16: 易变业务使用脚本语言编写
 建议17: 慎用动态编译
 建议18: 避免instanceof非预期结果
 建议19: 断言绝对不是鸡肋
 建议20: 不要只替换一个类
第2章 基本类型
 建议21: 用偶判断,不用奇判断
 建议22: 用整数类型处理货币
 建议23: 不要让类型默默转换
 建议24: 边界,边界,还是边界
 建议25: 不要让四舍五入亏了一方
 建议26: 提防包装类型的null值
 建议27: 谨慎包装类型的大小比较
 建议28: 优先使用整型池
 建议29: 优先选择基本类型
 建议30: 不要随便设置随机种子
第3章 类、对象及方法
 建议31: 在接口中不要存在实现代码
 建议32: 静态变量一定要先声明后赋值
 建议33: 不要覆写静态方法
 建议34: 构造函数尽量简化
 建议35: 避免在构造函数中初始化其他类
 建议36: 使用构造代码块精炼程序
 建议37: 构造代码块会想你所想
 建议38: 使用静态内部类提高封装性
 建议39: 使用匿名类的构造函数
 建议40: 匿名类的构造函数很特殊
 建议41: 让多重继承成为现实
 建议42: 让工具类不可实例化
 建议43: 避免对象的浅拷贝
 建议44: 推荐使用序列化实现对象的拷贝
 建议45: 覆写equals方法时不要识别不出自己
 建议46: equals应该考虑null值情景
 建议47: 在equals中使用getclass进行类型判断
 建议48: 覆写equals方法必须覆写hashcode方法
 建议49: 推荐覆写tostring方法
 建议50: 使用package-info类为包服务
 建议51: 不要主动进行垃圾回收
第4章 字符串
 建议52: 推荐使用string直接量赋值
 建议53: 注意方法中传递的参数要求
 建议54: 正确使用string、stringbuffer、stringbuilder
 建议55: 注意字符串的位置
 建议56: 自由选择字符串拼接方法
 建议57: 推荐在复杂字符串操作中使用正则表达式
 建议58: 强烈 建议使用utf编码
 建议59: 对字符串排序持一种宽容的心态
第5章 数组和集合
 建议60: 性能考虑,数组是首选
 建议61: 若有必要,使用变长数组
 建议62: 警惕数组的浅拷贝
 建议63: 在明确的场景下,为集合指定初始容量
 建议64: 多种最值算法,适时选择
 建议65: 避开基本类型数组转换列表陷阱
 建议66: aslist方法产生的list对象不可更改
 建议67: 不同的列表选择不同的遍历方法
 建议68: 频繁插入和删除时使用linkedlist
 建议69: 列表相等只需关心元素数据
 建议70:子列表只是原列表的一个视图
 建议71: 推荐使用sublist处理局部列表
 建议72: 生成子列表后不要再操作原列表
 建议73: 使用comparator进行排序
 建议74: 不推荐使用binarysearch对列表进行检索
 建议75: 集合中的元素必须做到compareto和equals同步
 建议76: 集合运算时使用更优雅的方式
 建议77: 使用shuffle打乱列表
 建议78: 减少hashmap中元素的数量
 建议79: 集合中的哈希码不要重复
 建议80: 多线程使用vector或hashtable
 建议81: 非稳定排序推荐使用list
 建议82: 由点及面,一叶知秋—集合大家族
第6章 枚举和注解
 建议83: 推荐使用枚举定义常量
 建议84: 使用构造函数协助描述枚举项
 建议85: 小心switch带来的空值异常
 建议86: 在switch的default代码块中增加assertionerror错误
 建议87: 使用valueof前必须进行校验
 建议88: 用枚举实现工厂方法模式更简洁
 建议89: 枚举项的数量限制在64个以内
 建议90: 小心注解继承
 建议91: 枚举和注解结合使用威力更大
 建议92: 注意@override不同版本的区别
第7章 泛型和反射
 建议93: java的泛型是类型擦除的
 建议94: 不能初始化泛型参数和数组
 建议95: 强制声明泛型的实际类型
 建议96: 不同的场景使用不同的泛型通配符
 建议97: 警惕泛型是不能协变和逆变的
 建议98:  建议采用的顺序是list[t]、list[?]、list[object]
 建议99: 严格限定泛型类型采用多重界限
 建议100: 数组的真实类型必须是泛型类型的子类型
 建议101: 注意class类的特殊性
 建议102: 适时选择getdeclared×××和get×××
 建议103: 反射访问属性或方法时将accessible设置为true
 建议104: 使用forname动态加载类文件
 建议105: 动态加载不适合数组
 建议106: 动态代理可以使代理模式更加灵活
 建议107: 使用反射增加装饰模式的普适性
 建议108: 反射让模板方法模式更强大
 建议109: 不需要太多关注反射效率
第8章 异常
 建议110: 提倡异常封装
 建议111: 采用异常链传递异常
 建议112: 受检异常尽可能转化为非受检异常
 建议113: 不要在finally块中处理返回值
 建议114: 不要在构造函数中抛出异常
 建议115: 使用throwable获得栈信息
 建议116: 异常只为异常服务
 建议117: 多使用异常,把性能问题放一边
第9章 多线程和并发
 建议118: 不推荐覆写start方法
 建议119: 启动线程前stop方法是不可靠的
 建议120: 不使用stop方法停止线程
 建议121: 线程优先级只使用三个等级
 建议122: 使用线程异常处理器提升系统可靠性
 建议123: volatile不能保证数据同步
 建议124: 异步运算考虑使用callable接口
 建议125: 优先选择线程池
 建议126: 适时选择不同的线程池来实现
 建议127: lock与synchronized是不一样的
 建议128: 预防线程死锁
 建议129: 适当设置阻塞队列长度
 建议130: 使用countdownlatch协调子线程
 建议131: cyclicbarrier让多线程齐步走
第10章 性能和效率
 建议132: 提升java性能的基本方法
 建议133: 若非必要,不要克隆对象
 建议134: 推荐使用“望闻问切”的方式诊断性能
 建议135: 必须定义性能衡量标准
 建议136: 枪打出头鸟—解决首要系统性能问题
 建议137: 调整jvm参数以提升性能
 建议138: 性能是个大“咕咚”
第11章 开源世界
 建议139: 大胆采用开源工具
 建议140: 推荐使用guava扩展工具包
 建议141: apache扩展包
 建议142: 推荐使用joda日期时间扩展包
 建议143: 可以选择多种collections扩展
第12章 思想为源
 建议144: 提倡良好的代码风格
 建议145: 不要完全依靠单元测试来发现问题
 建议146: 让注释正确、清晰、简洁
 建议147: 让接口的职责保持单一
 建议148: 增强类的可替换性
 建议149: 依赖抽象而不是实现
 建议150: 抛弃7条不良的编码习惯
 建议151: 以技术员自律而不是工人


图书封面

图书标签Tags

广告

下载页面


编写高质量代码 PDF格式下载



从语法、程序设计和架构、工具和框架、编码风格、编程思想5个方面探讨编写高质量Java代码的技巧、禁忌和最佳实践


编写高质量代码:改善Java程序的151个建议(从语法、程序设计和架构、工具和框架、编码风格、编程思想5个方面 看看


java学了几个月,基础的知识懂了,但是总觉的写的代码不是很好,这本书上的一些意见都是java资深人士的领悟,希望能对自己有些启发和帮助


不错,有些还是技巧还是比较实用的。在java的使用中遇到的问题讲着还是满清楚的。


很好很强大,java用了三年了,书上的很多语法都没见过,确实是高手写的,看了提高很大。但不适合刚入门的人看。


从编程的各个方面改善代码的质量、效率,好书!!


还没有仔细的看,简单的看了下目录,建议也是日常编码中,常见的或者自己写的时候比较容易忽视的。。。


书讲得非常好,能从java各个方面进行详细的阐述,收益匪浅


这本书比较薄,纸质也不是特别好,但是内容超赞。这么简单的书原价要卖50多,当时我看到价格非常吃惊,但是买回来看了,就觉得物超所值了。市场上java的书一大堆,大多是讲java的一些原理分析,那些书当做初学是不错,但是基本上其他书写得都大同小异。而这本书特别适合做java进阶的人看,内容很广,而且真的非常实用。思路和阐述都非常清晰,做java的人进阶看,绝对启发灵感,物超所值。


151个建议那个书对书写代码非常有帮助,而spring内幕讲的太深,可能是我还没到火候,不大能看懂。


该怎么说呢,刚看了前面几页,感觉收获挺大的。书中的很多建议都是对一些编程的规范,纠正编程的错误。


用java那么多年了,通过这本书总结自己的经常忽略的一些毛病


从头到尾浏览一遍,个中建议真实用,很多都需要在项目开发中注意,但只看一遍并不能记住所有内容,所以手边常备。


看了2章,
非常好的一本书! 写的很好,书中例子不错。
对我编码 帮助很大啊!


还没看呢,看目录不错,书中的这些建议应该大有益处。


印刷质量很好,内容很实用,对养成好的编程习惯有帮助。


很好的一本书,不但能提高代码编写能力,还能学到一些新知识!!!


这边数很不错,可以很好提高代码的编写水平


这个商品不错,适合有基础的编程人员


昨晚下的订单,早上就收到书了。质量不错,发货速度比较给力。


印刷质量不错,内容也通俗易懂。开发人员的必备手册。


书的质量不错 正在阅读中


书还没看 质量很好 支持正版


质量很好 大家抢着看。。。内容独辟蹊径


此乃好书题目经典,质量有保障


看了一大半了 书中的部分内容已经用到了实际应用中 内容相当好


这本书非常好看,非常满意
不过有些技术点我还真没用过


正适合自己进阶用,好多东西都没有注意到过


很实用,有些点在工作中很受用


拜读下


书内容还不错,写的都是日常工作中用到的,帮我复习了一遍,两天看完。


不错的书,可以作为项目组的开发规范参考。


此书的总结真的非常好,值得一看,可以少走许多挖路


很实用。。很深入。。


还行,写的很系统。举例也多。


精炼。句句精华,是多年经验之作!


这本书 买了之后还没看过,当时买的时候感觉还可以


理工科的书偶看不懂啊


老大的书,实在


很好,学习提高了自己平时忽略的一些细节!


正在阅读中,有了不少收获


内容很不错,实得一买


萧山区南阳街道赭东村13


编写高质量代码:改善Java程序的151个建议(从语法、程序设计和架构、工具和框架、编码风格、编程思想5个方面探讨编写高质量Jav...


甚是8错8错


上午购买,下午就到货了,速度很快啊!!!


很好,很强大,讲解比较独到


很久前在书城看过,一直想买


可以 比较实用


适合中高级,最好有较好的基础知识


强烈推荐的好书啊


没看完,变成藏书了。


大名鼎鼎的,早就想拜读了


公司用书,很实用.公司用书,很实用.


该书从各个方面介绍JAVA编程方面一些要注意的事情,内容还不错,快看完了。


本书确实一些实战经验积累总结,适合java开发人员学习和参考。


平常写程序的时候遇到种种小问题,然后就百度谷歌搜索,但是总是找不到合适的结果。刚拿到书,感觉很多都是平常写程序的时候没有注意到的地方,或者是盲点。还没来得及细看,不过看着目录还挺不错的,相信多看几遍能有挺大帮助。要是多一些平常可能遇到的问题的解决方法或者提示就更好啦~


本书从很细微的角度介绍一些改善代码坏味增强代码健壮性的方法。


建议很多,都是之前没有用过的


不错,常见问题可以参考。


写的挺好的,有些地方甚至是我了解不深的。


都是一些平时工作容易忽略的地方


但应该是本好书


点很细,不过很实用


内容很好、实用,但就是书贵了一点


不管是新手还是多年的码农,很有意义


刚收到货,简单看了一下,感觉还不错


大概的看了一下,挺实用的。


方方面面都都讲到了,增长见识


刚买来大体看了一下很不错对大家养成良好的变成习惯有很大帮助


适合较高层次的读者,有些看不懂。


朋友认为很好


就是好薄啊~~~~


可以纠正很多细小的不足


作者虽然用心,但是写的内容亮点寥寥无几。只能适用于java刚刚入门级别的吧,看了一二章觉得浪废时间。


太一般了,买的后悔了,没有一点可看头,不建议大家买


书皮完好。纸张质量还行,无缺页!还没有看,是别人推荐买的!不知道日后能不能再追加评论


整本书都已看完,整体感觉是泛泛而谈。一点不深入,有2,3年经验的没必要看这种。


拿到此书,油墨有很重的刺鼻味,看几页就不想看了。


内容还行,书的纸质一般,有几页发现有洞,幸亏不影响观看。。


发货及时,书的纸张不太满意


可以碎片时间看~·


不如effective系列,但有些还是挺好的


实例讲解不够丰富 对于初学者理解起来比较困难 读起来比较费劲.


这本书不是我看的,给个中评


领悟java


同事推荐的,是正版,送货快


太多太乱 记不住


可惜还没看,不知道什么时候能看完


相关图书