目前无货,
欢迎选购其他类似产品。
通知出版社:
请转告出版社我想看这本书的Kindle版

没有Kindle设备?立即购买 ,或者下载免费 Kindle阅读软件

精通正则表达式(第3版) [平装]

~ 佛瑞德 (Friedl J.E.F.) (作者), 余晟 (译者)
平均4.4 星  浏览全部评论 (140 条商品评论) 天天低价·正品质优

版本

亚马逊价格 全新品最低价 非全新品最低价
平装 ¥ 61.40  
平装, 2007年7月1日 --  

图书描述

2007年7月1日
《精通正则表达式》(第3版)是讲解正则表达式的经典之作。本书主要讲解了正则表达式的特性和流派、匹配原理、优化原则、实用诀窍以及调校措施,并详细介绍了正则表达式在Perl、Java、.NET、PHP中的用法。
本书自第1 版开始着力于教会读者“以正则表达式来思考”,来让读者真正“精通”正则表达式。该版对PHP的相关内容、Java1.5和Java1.6的新特性作了可观的扩充讲解。任何有机会使用正则表达式的读者都会从中获益匪浅。

商品促销和特殊优惠

  • 招商银行支付促销:2014年9月1日至10月31日,首次添加招商银行信用卡绑定一键支付,并在活动期间用一键支付成功完成单笔满150元订单,即可获赠300招商银行信用卡积分,活动期间每户限赠一次。 点击查看详情

经常一起购买的商品

精通正则表达式(第3版) + Perl语言入门(中文版)(第6版)
共同购买所选商品

购买此商品的顾客也同时购买


基本信息

  • 出版社: 电子工业出版社; 第3版 (2007年7月1日)
  • 外文书名: Mastering Regular Expressions
  • 平装: 515页
  • 开本: 16开
  • ISBN: 9787121046841, 7121046849
  • 条形码: 9787121046841
  • 商品尺寸: 22.6 x 17.6 x 2.8 cm
  • 商品重量: 880 g
  • 品牌: 电子工业出版社
  • ASIN: B0011C2Q1W
  • 用户评分: 平均4.4 星  浏览全部评论 (140 条商品评论)
  • 亚马逊热销商品排名: 图书商品里排第611,090名 (查看图书商品销售排行榜)

商品描述

编辑推荐

《精通正则表达式》(第3版) 目标读者
Intended Audience
任何有机会使用正则表达式的人,都会对本书感兴趣。如果您还不了解正则表达式能提供的强大功能,这本书展示的全新世界将会让您受益匪浅。即使您认为自己已经是掌握正则表达式的高手了,这本书也能够深化您的认识。第1 版面世后,我时常会收到读者的电子邮件反映说“读这本书之前,我以为自己了解正则表达式,但现在我才真正了解”。
以与文本打交道为工作(如Web开发)的程序员将会发现,这本书绝对称得上是座金矿,因为其中蕴藏了各种细节、暗示、讲解,以及能够立刻投入到实用中的知识。在其他任何地方都难以找到这样丰富的细节。
正则表达式是一种思想——各种工具以各种方式(数目远远超过本书的列举)来实现它。如果读者理解了正则表达式的基本思想,掌握某种特殊的实现就是易如反掌的事情。本书关注的就是这种思想,所以其中的许多知识并不受例子中所用的工具软件和语言的束缚。

如何阅读
How to Read This Book
这本书既是教程,又是参考手册,还可以当故事看,这取决于读者的阅读方式。熟悉正则表达式的读者可能会觉得,这本书马上就能当作一本详细的参考手册,读者可以直接跳到自己需要的章节。不过,我并不鼓励这样做。
要想充分利用这本书,可以把前6 章作为故事来读。我发现,某些思维习惯和思维方式的确有助于完整的理解,不过最好还是从这几章的讲解中学习它们,而不是仅仅记住其中的几张列表。
故事是这样的,前6 章是后面4 章——包括Perl、Java、.NET和PHP——的基础。为了帮助读者理解每一部分,我交叉使用各章的知识,为了提供尽可能方便的索引,我投入了大量的精力(全书中有超过1 200处交叉引用,它们用符号加页码的形式标注)。
在读完整个故事以前,最好不要把本书作为参考手册。在开始阅读之前,读者可以参考其中的表格,例如第92页的图表,想象它代表了需要掌握的相关信息。但是,还有大量背景信息没有包含在图表中,而是隐藏在故事里。读者阅读完整个故事之后,会对这些问题有个清晰的概念,哪些能够记起来,哪些需要温习。随着互联网的迅速发展,几乎所有工具软件和程序语言都支持的正则表达式也变得越来越强大和易于使用。

名人推荐

亚马逊书评
Mastering Regular Expressions, Third Edition Rating:
2006-11-26 21:02:26 Frederick J Eccher Jr [Reply | View]
Mastering Regular Expressions, Third Edition
By Jeffrey E. F. Friedl
Third Edition August 2006
Pages: 542
Series: Adobe Developer Library
ISBN: 0-596-52812-4

Description
Written in the lucid, entertaining tone that makes a complex, dry topic become crystal-clear to programmers, and sprinkled with solutions to complex real-world problems, Mastering Regular Expressions, Third Edition offers a wealth of information that you can put to immediate use.
全书行文清晰而轻松,清晰透彻地向程序员讲解复杂而枯燥的话题,还包含了真实开发中复杂问题的解法。《精通正则表达式(第3版)》提供了大量极有价值的知识,可以直接拿来使用。

The description above is quite an understatement. Even the full description does not do this book justice. Mastering Regular Expressions, Third Edition is almost a classic and should be on your bookshelf, chained down. If your programming friends, coworkers, or enemies try to borrow this book, beware. It takes quite a while to get it back, even bent, spindled and mutilated so you might not want it back [yeah that was actually tried]. You might try a rule about using it at your desk, but that did not work for me either.
上文的评价其实很保守。对于这本书,用整篇书评都用来夸赞都不为过。《精通正则表达式(第3版)》就是一本经典之作,应该放在你的书架上,认真摆好。如果你的朋友、同事或是对手想要借阅,一定得小心。因为要回来得花很多工夫,甚至最后“经过许多年”回到你手中时,书已经卷角、开线或者残缺,你已经不想要了。最好是立个规矩,这本书就摆在书桌上,但这对我同样无效。

My experience agreed with almost everything written, except that I do not have the in depth use of RegEx the author clearly has. I wish I was on the same page with him in experience with RegEx. I started with RegEx in college in the early 90s and remember six projects that I had to do that could have been much easier with this book. My programming experience used RegEx on occasion but not with the power explained in this book. I appreciate the detailed and thorough comparisons of the languages. The only word I really missed in the INDEX and Table of Contents was: SECURITY. Using RegEx to make sure security issues are properly handled would really help many programmers and developers.
我的经验与书中的大多数内容一致,只是我对正则表达式的使用不如作者那样精深。我希望自己关于正则表达式的经验能和作者一样丰富。我最早接触正则表达式是20世纪90年代早期,在学校里,我记得要完成6个项目,如果当时有这本书,就好办多了。我在开发中偶尔会用到正则表达式,但没有用到书中讲解的那些强大功能。我对语言之间详尽而彻底的比较很感兴趣。我没能在索引和目录中看到的唯一内容是:安全。使用正则表达式确保安全事宜的妥善处理能对开发人员提供切实的帮助。

The topics start with a Preface, then moves to Introduction to Regular Expressions, then Extended Introductory Example, then Overview of Regular Expression Features and Flavors, then The Mechanics of Expression Processing, then the Practical Regex Techniques, then Crafting an Efficient Expression, then Perl, Java, .NET, PHP, and finally the Index. Remember to read the Preface, it is very interesting. The author makes some points about how to read the book [the first six chapters] and how to THINK.
这本书以序言开头,然后是正则表达式导论,接下来是入门示例扩展,再介绍正则表达式特性和流派,正则表达式处理的原理,之后讲解使用正则表达式技巧,打造高效的正则表达式,最后是Perl, Java, .NET, PHP和索引。请不要略过序言,它非常有意思。在序言中,作者概要介绍了本书(前6章)的阅读方法以及如何正则表达式思考。

The 10 chapters are written very thoroughly. I like that about this book. Explanations of history and trivia are all over the place but are written like a story and easy to read. The figures are good and useful in the explanation of the concepts. The code is usually more than a few lines. This is a more complicated book and requires more expressive code examples.
全部10章都写得很用心。我喜欢这一点。关于历史和其它小故事的讲解随处可见,以讲故事的方式写出来,便于阅读。所用的图表很适合讲解概念。代码通常不只几行,这本书的内容比较复杂,所以需要更多的代码才能说清楚。

The topics are useful and helpful in just about any language, including the more recent powerful languages like .NET and Java.
书中的内容对编程语言来说非常有用,包括近期出现的重量级语言,例如.NET和Java。

I thought the discriminations made about the different languages that use Regular Expressions went from general to specific in a hurry. Even so, the book is pretty long and needs to be digested in discrete chunks. No way to read this in one evening. There is no way to digest the concepts and comparisons very fast, at least for me. This is valuable knowledge worth your time to read and digest as thoroughly as possible.
我认为,在分别讲解不同的语言,实现从一般原理到特殊实现之间的过渡时有些急促。即便如此,这本书的篇幅还是很长,需要分成几个部分来吸收,而不能在一夜之间整个读完。也没有办法非常快地掌握其中的概念和比较,至少对我来说是如此。这些知识非常有价值,值得花时间细细阅读和思考。

The 540+ pages were easy to read and understand, partly told as a story. I read it in one week. There were a few typos and grammar errors, but not very many. The book is for someone who is a beginner or an expert and needs to know the specific times when one regular expression has even a slight benefit over another. More experienced people should look it over to make sure they are up to speed with this author.
超过540页的篇幅,其中一部分是在讲故事,阅读和理解起来并不困难。其中有些印刷和语法错误,但并不多。这本书适合于初学者,如果专家希望知道,为什么特定场合下某个表达式比另一个稍快一些,也应该阅读这本书。更有经验的人也应该留意这本书,确保他们没有比作者差太多。

I would give this book 5 out of 5 stars. Definitive!!!!!
毫无疑问,我给这本书最高的五星。

Frederick J Eccher Jr
MBA
M.S. Management of Information Systems
A.B. Psychology
B.A. Biology
President, Board of Directors, Saint Louis Visual Basic Users Group
rick@stlvbug.net
November 26, 2006
Good and enjoyed reading it Rating:
2006-11-15 19:13:43 Vikramaditya J [Reply | View]
读来惬意的好书
Regular Expressions is basically the same across most languages (some variations as how you use it and terminology differences too), whether it may be C#, Javascript, PHP, Ruby, Python, TCL, Perl, or JAVA. This is amazing and should be used as an hand book for students and beginning to intermediate developers. As the book is in third edition some basics of the programming languages are expected to be know by its readers. Overall its a good book and worth a reading.
无论是C#,Javascript,还是PHP,Ruby,Python,Tcl,Perl或Java,在大多数语言中,正则表达式都是相通的(可能在术语和用法上有些区别)。这本书精彩纷呈,应该成为初学者和中级开发人员的必备读物。阅读新推出的第3版,要求读者对书中使用的程序设计语言有基本了解。总的来说,这是本好书,值得一读。
Not a Reference! Everything you ever wanted to know about regex! Rating:
不仅仅是参考手册!而是正则表达式的百科全书!
2006-10-20 08:26:36 ismism [Reply | View]
As the author states, this is not a reference. It is everything you might ever want to know about regular expressions and then some. Well written, but a bit too epic for me, and if you aren't interested in perl - as I am not - there is a lot of information you just don't need (or want).
如作者所说,这本书并不是参考手册。它包含了你希望了解的,关于正则表达式的方方面面的知识。书写的很棒,但我觉得有点贪多求全,如果你对Perl不感兴趣——比如我就是,书中的许多内容是不必要的。
Read all reviews
________________________________________
Media reviews
"Classics are funny things, especially in the world of books. There are books that people say "should' be classics (I'll refrain from mentioning names to protect the pretentious) and then there are books that people are too busy actually using to get around to listing as classics. Mastering Regular Expressions, now in it's third edition, is in the second group. It's one of those books that you see on desks in computer departments the world over. This is a real "doers" book...Nail it to your desk unless you want to be constantly retrieving it from your co-workers. If I might be permitted a Spinal Tap reference, this one goes to eleven. If you ever use regular expressions, are thinking of using regular expressions or are in the same room as a regular expression, then you need this book. "
经典都是有来头的,尤其对书本来说,更是如此。有的书只是“应该”成为经典(为给那些自命不凡者留面子,名字就不提了);还有的书,因为随时都要用到,反而没时间列在经典书单上。已经出到第3版的《精通正则表达式》,就属于后者。在世界各地,你都能从开发部门的书桌上找到这本书。它属于真正的“实干家”…如果你不想三番五次找同事借,还是摆一本在自己的书架上吧。对我来说,推荐它就相当于推荐电影《摇滚万万岁》中的精彩一幕——These Go To 11。如果你用过正则表达式,或是希望用到,或是正在使用,那么,你需要这本书。
-- Simon P. Chappell, Slashdot.org
"In sum, let me just say that any developer who finds the need to manipulate text - whether it be scraping a web page, creating a report, importing data, or a hundred other applications, is going to need Regular Expressions. Jeffrey's book provides a complete and mature approach that is fresh, timely and detailed. I would recommend this book for any developer...Highly recommended!"
让我来说,就是一句话:任何人,只要处理文本——无论是抽取网页,生成报表,导入数据,或是其它任何应用——都需要用到正则表达式。Jeffery的这本书对此提供了完整而充分的讲解,引人入胜,紧跟时代,清晰明确。我向所有开发人员推荐这本书,强烈推荐!
-- Peter Bromberg, EggheadCafe.com
"This is an impressive book; it's easily the best book I've encountered on regular expressions."
这本书读来印象深刻,关于正则表达式的书里头,这是我见过的最容易读懂的一本。
-- George Woolley, Oakland Perl Mongers
Read all reviews

王森书评
千头万绪 : 学习多执行绪程序设计的好书
找对书,多执行绪不再避之唯恐不及
科学家对于人类大脑的运作方式,目前仍存在许多争议。但是许多经过科学实验的证据显示,人类的大脑是以平行的方式工作。即使如此,笔者不免想起,大学时期选修操作系统(Operation System)这门课时,当老师教到Task、Process、以及Thread,一群大学生才刚搞懂哲学家的吃饭问题,紧接着关于Thread的算法讨论,搞得同学们一阵千头万绪,纷纷中箭倒地。
从此,计算器相关科系的毕业生,避多执行绪唯恐不及,能够不用就不用,就算不得已一定要多执行绪一番,也不见得可以撰写出真正发挥出多执行绪优势的程序,大部分所见到的,都是存在着隐忧的程序代码。
Win32多执行绪应用程序开发
过去,Win32应用程序当道的时候,要学习如何使用Win32 API所提供的多绪执行功能,Addison Wesley的《Multithreading Applications in Win32:The Complete Guide to Threads》这本书绝对是众多Windows程序设计专家推荐的好书,这本书在1997年8月的时候,曾经由侯俊杰(侯捷)老师翻译,碁峰出版《Win32 多绪程序设计》,以侯老师在写译上的高质量要求,这本书自然是当时国内Windows程序设计师手头上必备的一本书。
8年过去了,现在的系统开发主流是Web应用程序,不再是Windows应用程序,这本书也绝版了,但是其参考性,并没有因此而降低,如果您的工作还是需要在Win32平台上开发多执行绪应用程序,想尽办法也该试着把这本书找出来吧。
Unix多执行绪应用程序开发
相较于Win32平台,Unix为另外一个操作系统的主流,Unix服务器通常肩负着关键性任务,尤其在这个Internet的时代,躲在背后苦命工作的服务器,十之八九采用Unix。即使服务器等级的机器有再多的处理器和内存,仍然需要善用多执行绪的服务器软件,才能充分发挥其效用。因此,在Unix上开发多执行绪软件,同样是个重要议题。
然而,Unix只是一个统称,其分支体系之复杂,非专家无法区分出Linux、FreeBSD、Solaris、Mac OS X这些操作系统之间的亲戚关系。要在这些”类UNIX”的平台上开发一个可以跨平台的应用程序,绝对是一件非常困难且精细的事情,所以制定了POSIX Thread(简称PThread)标准,藉此降低工程师的负担,Addison Wesley《Programming with POSIX Threads》这本书,也成为Unix上撰写多执行绪程序的必备参考书。
除此之外,O’Reilly的《Pthreads Programming》也是另外一本不错的参考书,这本书也曾在1997年11月,由一家早已不存在的『松格信息』出版过中译本。现在如果有人想要买一本来保存,可能真的得到光华商场的地下一楼,中古书店一间间慢慢地找,才有可能找得到。
虽然《Pthreads Programming》的评价没有《Programming with POSIX Threads》来的好,但是作为一本入门书,笔者比较推荐《Pthreads Programming》,除了因为这本书废话不多,一开始就切入主题之外,有更大的原因是因为,读者只需要懂一些简单的Unix 程序开发,就可以很快学会如何使用PThread。这两本书,即使出版年份距今已有8年以上,对于目前还需要在Unix上开发多执行绪应用程序的人,一样具有非常高的参考价值。
在这个Java与.NET的时代
如本文前面所提,这是一个以Web应用程序为主的时代,而采用的开发平台,除了PHP以外,就属Java(Servlet/JSP)与.NET)ASP.NET)。就算要开发Unix平台上的应用程序,也开始有许多软件采用Java(AWT/SWING)开发,如果要开发Win32平台的应用程序,采用.NET(Windows Form)而舍弃MFC/ Delphi的开发者也不在少数。再这个时代,开发原生(native)应用程序变成了相对少数人才具有的技能。
不管是Java或.NET的Web应用程序开发人员,多半很少体会到多执行绪的好处,这是因为底层的Container已经充分利用多执行绪增加系统效能,而位于更上层的开发人员,虽然工作简单了,但是也无形间丧失了学习多执行绪的能力。相较之下,使用AWT/SWING或Windows Form的开发人员,非得好好学习多执行绪,才能做出有效率的使用者接口。
教导如何在.NET下使用多执行绪的书本来就不多,笔者推荐MANNING的《.NET Multithreading》,如果是采用Java开发,那么O'Reilly 的《Java Threads, 3/e》一样是不错的选择。《Java Threads, 3/e》已经由欧莱礼台湾分公司翻译成中文版《Java Threads 深度探讨》,虽然在翻译上,很多英文长句都没有经过断句,就直接翻成一串很长的中文句子,但是整体而言,质量仍然不错。
需要注意的是,《.NET Multithreading》非常适合新手入门,但《Java Threads, 3/e》并非如此,即使是第一章,采用的范例也稍嫌复杂,初学者可能看了老半天,仍会丈二金刚摸不着脑袋,笔者建议可以先读读Prentice Hall PTR的《Core Java 7/e, Volume2》里面关于Thread的章节,然后再回头看《Java Threads, 3/e》,如此才会效果显着。
由于J2SE 5.0之后,Java在Thread上不再只是简单的synchronized关键词配上wait() 、notify()、sleep()等函式,还引进了Concurrency Utility,读者在购买这两本畅销书时,别忘了购买最新讲解J2SE 5.0的版本,才能学习到Java在Thread上的最新变化。
Thread人人会用,巧妙各有不同
话说戏法人人会变,巧妙各有不同。独孤求败用木剑就能够与对手大战七天七夜,平常人拿了倚天剑屠龙刀,恐怕也只能任人宰割。虽然多执行绪程序在撰写上较为困难,但是本身并非一个非常大的议题。光知道每一种平台对多执行绪的支持并非难事,但是如何运用这些基本元素,充分利用多执行绪的优点,恐怕在上述的书籍中着墨不深。
多半的人会认为,J2SE 5.0以前的Java,虽然支持多执行绪,但却只是简单的支持,只有J2SE 5.0之后,Java对多执行绪的支持才算完整,也才能做到许多过去很难完成的工作。但是当您看了博硕文化出版的《Java Multithread Design Pattern-Java多执行绪与平行处理》之后,有这样观念的人就会发现既有观念大错特错。
这本原著以日文写成,专门探讨Java Thread的书籍,使用JDK 1.3为基础,即使没有J2SE 5.0所提供的花俏功能,一样变出许多戏法。尤其是第一章后面的练习题,就算许多自认懂得使用Java撰写多执行绪程序的人,或是为了认证考试熟读Java Thread的人,非常有可能在做完练习题之后,才发现自己原来根本不懂Java Thread。
笔者也是在读完这本书之后,才知道Thread的世界原来别有一番天地,不只是教科书上那些枯燥的算法。虽然最近电视上常看到一堆抗议日本的游行与相关新闻,不过,笔者相信『不以人废言』,才能学到更多知识,眼界也才能更开拓。 (2005-09-11 18:43:49.0) Permalink Comments [1]
THURSDAY SEPTEMBER 08, 2005
基本Java手机程序学会了,接下来看什么书? 三本强化J2ME设计功力的好书

从2000年SUN推出KJava至今,Java手机程序的发展,已经迈向第五个年头了。您一定会发现,现在市面上的手机,不管高阶或低阶,支持Java就像手机一定要支持收发简讯一样理所当然。Java随着手机普及率的增加,理所当然地成为最广泛的目的平台。可是,相较于其它技术,教导开发人员如何开发Java手机程序的书,并没有因为这个平台越来越广泛而变多。目前市面上讲述Java手机程序设计的书,十之八九讲述基本概念。『我已经有了基本的Java手机开发能力,接下来我要看哪些书,让我这方面的能力更进一步呢?』这是许多开发人员最常在公开论坛询问的问题。

要回答这个问题,可以从两个方面来思考,首先是手机应用程序发展趋势这个面向,另一个面向则是手机平台的不一致性。我们先就手机应用程序的发展趋势来看。
即使目前手机内建的处理器运算能力已经高于几年前的个人计算机,联机速度也比过去还要快,但是手机永远是手机,在目前的手机设计无法突破之前,手机永远只能有一个无法满足人类视觉需求的小屏幕,键盘上的按钮永远比需求少一个,更无法使用鼠标来操控。这一点大大地限制了手机上所能开发的应用程序类型,因此,即使理论上可以开发各式各样的应用程序,碍于手机先天的特性,导致Java游戏几乎就是Java手机应用程序的代名词。
大部分的人不喜欢拿手机办公事,但是肯定不会拒绝在无聊的时候,拿起手机玩玩轻松的小游戏,这也是商机的所在。明白了这个发展趋势,身为一个开发人员,要让自己的技术能力更进一步,充实游戏设计的知识肯定是重点。可是市面上讲述游戏设计的书籍,多半是以DirectX、OpenGL为主角,配合C/C++讲述。纵使有几本讲解Java游戏设计的书,也是以AWT/Java 2D/Java 3D为基础,这些API都是手机程序开发人员无法存取的功能。虽然说游戏设计的概念大同小异,但是上述书籍总是有隔了一层的感觉。
Martin J. Wells所撰写的《J2ME Game Programming》,正是一本可以满足Java手机开发人员需求,又没有上述书籍缺点的好书。这本书以MIDP内建的LCDUI为基础,说明如何应用标准LCDUI API之中的低阶模式来设计游戏,本书也提到如何擅用Game API,减轻游戏开发的负担。
本书最有特色的部分,在于说明『如何让您的Java手机程序赚大钱』,不像典型技术书籍只教导我们如何发挥某种技术的最大功能(当然,技术好与卖的好,本身还是有某种程度的关联)。因此这本书有特别的章节介绍移植(porting)相关议题,因为程序能够在越多手机上执行,目标市场才会越大,才会有越多人购买。本书亦有章节特别介绍本地化(Localization),我们所开发的程序如果能用越多国家的语言呈现,您的客户就不会仅局限于中文使用者,使用日文、俄文等其它国家的人,一样会让您赚进更多钞票。
身为一个技术人员,有时候很难了解,一个产品要卖的好,除了技术之外,营销和贩卖占了更大的比重,有了好的营销包装,可以把60分的烂产品讲成100分的好产品,有了好的销售管道,除了可以把东西卖给原本只有一点购买意愿的人,甚至可以卖给本来不需要的人。作者了解营销和贩卖的重要,所以书中有两个章节,分别讲解如何让我们的程序卖相更好,以及如何擅用通路(Sale Channel)让我们的程序卖的更多。
在诸多游戏类型中,可以让人随时开始享受乐趣,又可以充分娱乐的游戏类型,莫过于动作游戏,动作游戏中,最吸引人的,大概就是射击类游戏了,笔者想起学生时代,总会被射击游戏的华丽声光效果吸引,无论是家里的游戏卡带,或是贡献给外面游乐场的硬币,都以射击游戏最多。
要如何设计好的射击游戏,如何完成里头超炫的武器及特殊技,都可以在松浦健一郎所撰写的《射击游戏算法与程序原理(Shooting Game Algorithm Maniax)》书中,得到很好的答案。绝大多数的人都可以同意,日本人对于射击游戏的设计,已经到了炉火纯青的地步,这本书原文以日文撰写成,本来就是一本开发射击游戏的必备宝典,加上林世荣、黄政凯先生优质的翻译,让中文读者可以享受到和原文一样的质量。
本书虽然以C/C++为开法语言来实做算法,但是几乎没有用到C/C++的特性(例如:函式库、指标),这些程序代码大部分可以在不经修改的情况下,全数通过Java编译器的编译,这对Java语言的使用者是一个福利。
这本书还有个非常贴心的地方,就是作者明白,在目前大部分的Java手机执行环境或是使用较老旧处理器的装置,没办法使用浮点数,所以作者也针对这些无法使用浮点数运算的情形,提供整数的解法,这是目前手机游戏开发人员最需要的信息,也是本书最有价值的地方。
最后,我们讲到手机平台的不一致性。许多人会问,Java不是号称跨平台吗? 为什么还会有不一致的情形发生呢? 这是因为手机先天上的多样性,比方说屏幕的大小,按钮的配置,分辨率,色深等,处于百家争鸣的情形,这是一个很难改变的现实(如果所有的手机都跑Windows,外观都大同小异,这个世界肯定无趣许多)。因此,即使Java有再好的架构,也无法让程序完全的跨平台(可以执行,但是会怪怪的),这也是为什么《J2ME Game Programming》这本书需要花许多篇幅讨论移植问题的原因。
再者,每家手机厂商都会为自己的Java执行环境增添特殊的功能,一来绑住开发人员和使用者,一来可以让Java程序更能够发挥手机的特性(例如:照相机、蓝芽、多媒体等),贴近手机的特色。因此,如果只想开发一般的Java手机程序,上述的书籍就已经足够,但是要发挥各厂牌手机的特色,就必须多阅读官方释出的技术文件,Nokia的手机就到Forum Nokia寻找技术文件、SonyEricsson的手机就到SonyEricsson官方开发网站、Motorola的手机就到MotoCoder网站。
但是,藉由技术文件取得的信息毕竟是离散的,要学习完整的知识,还是需要一本专门介绍的书才可以。市面上唯一一本专注特定厂商的Java开发专书《Developing Scalable Series 40 Applications : A Guide for Java Developers》,以Nokia Series 40手机的特性为基础,说明如何开发Java应用程序。
Nokia Series 40是目前Nokia最低阶的手机,显示屏幕最小,操作方式受限较大,要利用这种手机来开发令人满意的应用程序,需要不同于一般的使用者接口设计与操作逻辑,这本书虽然只专注于Nokia手机,而且还仅仅只是专注于Nokia某一个系列的手机,但是里头所呈现的手机程序设计观,测试与除错方法,都是一个手机程序开发人员值得去深入探索的。
(2005-09-08 21:05:28.0) Permalink Comments [0]
TUESDAY SEPTEMBER 06, 2005
世界上最短又最长的距离 – 让我们更了解抽象层优点的好书
IT的世界,真的进步了吗?
『在过去的这10年之中,IT界大体上没有什么太大的变化。』
大多数朋友听到以上这句话,或许会深深不以为然。『谁说变化不大? 每天推出一些新技术、新名词,把我们技术人员搞的昏头转向,东西学也学不完! 已经心中已经萌生放弃一切改卖咸酥鸡的念头了!』。如果您一样无法同意笔者的论点,那么底下我想试着说服您。

万变不离其宗
把自己过去所学拿出来,静心地想一想,这些所谓的新技术、新名词,真的是让人耳目一新的东西吗? 有人说Web Services是新东西,其实只是过去的RPC (Remote Procedure Call)技术,如CORBA、COM、RMI等的变种,基本原理根本没改变,几乎仅是将原来二进制的数据传输方式改用XML罢了。有人说JDO、EJB、Hibernate是新技术,其实这些不过是基于O/R Mapping概念的实现与改进。有人说Struts、JSF(JavaServer Faces)是新技术,然而这些Framework的设计,却没有偏离过MVC Design Pattern的概念,也从来没有脱离过HTML的大门。还有最近几年最困惑各公司CIO以及CTO的问题:『该选用Java Solution或.NET Solution?』、信息相关科系学生最常问的问题:『该学Java或.NET?』,殊不知Java跟.NET本质上几乎是一样的东西,纵然应用上互有消长,却没有人会因为学了另外一个东西,导致难以融入另外一种技术,君不见国内某位Java界大师级人物,并非一开始就进入.NET领域,可是他对.NET技术的领悟却高于其它早已进入的技术人员。更有趣的是,原本设计给Java的开放原始码工具,也都跑出了.NET版,如Ant变成NAnt、JUnit变成NUint、Hibernate变成NHibernate。表面上水火不容的技术,私底下却不断地发生『和亲』事件,眼光锐利的开发人员,一眼就看破假象,不会被官方的营销语言唬的一愣一愣的。

那么,到底什么东西改变了?
那么,为什么会出现那么多的新名词困扰IT从业人员呢? 答案很简单 – 因为抽象层越来越多。这些年来,改变的并不是技术的本质,而是为了让开发工作更简单,更有效率、更容易维护,所以不断出现各式各样的抽象层。什么叫做抽象层呢? 简单的来说,只要您所撰写的程序代码,需要经过转换才能执行,那么这个转换的工具就称为抽象层。举例来说,现在网页上最火热的Flash,里面所使用的ActionScript,最后经过Flash的Runtime Engine解译才能执行,所以Flash Runtime Engine就是一种抽象层。有人嫌Flash还是太难,所以发展了Flex、或是开放原始码的Open Laszlo,开发人员撰写的是XML,可是最后却转换成Flash呈现在网页上,所以Flex和Open Laszlo就是一种抽象层。
抽象层的实例俯拾即是。
汇编语言太难写,那就发明更高阶的C语言。C语言的指针太难搞,就搞个没有指标概念的Java。Java还是太难,再用Java写个Script语言,例如BeanShell。一层包一层,即使最后执行的指令还是与汇编语言指令相距不远的机器语言,但是开发人员至少与机器相隔了三重天。CGI太难写,所以发展了Servlet。Servlet还是太复杂,没关系,有JavaServer Pages。开发人员觉得JavaServer Pages还是太难,那设计一堆可以重复使用的Tag Library总行了吧。可是开发人员更希望像开发VB程序一样,拖拖拉拉就可以写出程序,只好再发展JavaServer Faces满足开发人员的胃口。谁知道接下来还会以这些为基础,发展出什么新玩意儿呢? 开发人员所开发的动态网页,哇~ 随便讲讲又和最基本的HTML隔了四重天、五重天。于是,开发人员和机器隔离的越来越远,真实地成为了世界上最短又最长的距离。而太多的层次,最大的缺点就是效能,不断地转译,耗费更多的内存,也让 2GHz的CPU,执行应用程序的速度,好像没有比过去DOS时代的486快多少。就好像一个国家,如果政府机构一层又一层,行政效率肯定不高,而且还会浪费公帑。

抽象层带来了什么好处?
虽然说抽象层会造成效率的下降,系统资源的耗损,可是却带来了一个很大的优点 – 弹性。弹性可以展现在很多面向上,对Java开发人员来说,展示弹性最基本的地方莫过于Java本身的Reflection机制,乍看之下,Reflection和C++所具备的RTTI(Runtime Type Information)类似,不过Reflection机制却可以带来更有威力的应用。一般而言,实作系统程序(Application Server、Container、IDE等)的工程师比较有机会用到Reflection,一般的开发人员很少有机会体验Reflection所带来的好处。甚至因为误用,以为做出了一个非常有『弹性』的系统,结果却是一个太过『松散』,难以维护的系统。知道Reflection能够怎么用,以及如何正确地使用,就是一个重要的课题。Manning出版社所出版的Java Reflection in Action正是一本这样的书籍。薄薄的273页。道尽所有和Reflection有关的议题,很多深入的知识让其它书籍难以望其项背。
本书一开始就介绍Method Object,以及Method Object所带来的动态呼叫(Dynamic Invocation)功能,让开发人员可以在程序执行时期,先查询类别所具备的Method,然后再决定叫用哪一个Method。充分让读者享受到Reflection的强大威力。接下来,作者为大家介绍Field Object,这是一个可以在执行时期得知对象所具有的字段之功能。此功能的重要性在于,Java的序列化永续储存功能(Serialization),或是我们在整合开发工具之中所看到的Property Sheets,都是原自Field Object所具有的功能。从这里开始,读者开始接触系统程序(System Programming)的实作。
作者在本书中,花了两个章节,解释类别加载器(Class Loader)以及动态加载的功能,可以让读者更了解Reflection功能的来龙去脉。在本书中,最重要的,莫过于讲述Java Dynamic Proxy的章节,这大概是众多Java相关书集中,将Dynamic Proxy解释的最清楚的一本书。正常的Java程序设计师,会接触到Dynamic Proxy的少之又少,可是,它却又在我们的生活中扮演重要的角色,举凡EJB技术与JAX-RPC技术中常常用到的Stub/Proxy,或是单元测试工具JUnit,都有Dynamic Proxy的存在,如果您想知道这些技术如何运作,那么这一章是绝对不能省略的。
在本书最后两个章节,作者利用一个章节说明Reflection所带来的缺点 – 效能降低,该如何去量测与面对,让开发人员不至于『言必称Reflection』,结果造成一个没有效率的系统。而最后一个章节,作者说明了J2SE 5.0之后,JSR 14 Generic以及JSR 201 Language Extension在Reflection所带来的对应改变,更谈到了各种具有Reflection特性的Java竞争者(最大的当然是C#),让大家了解其它语言在Reflection机制上与Java的差异性。作为一本介绍Java Reflection的书籍,本书可以说是『鞠躬尽瘁』。


更多的抽象层,最后世界会变得如何呢?
虽然抽象层带来了一个千变万化的世界。不过笔者开始对无穷无尽的抽象层感到厌烦。当这些抽象层越来越多,会不会有一天,引发下一波的革命,反璞归真呢?。这是一个有趣的议题,笔者也期待着下一波革命的到来。 (2005-09-06 05:18:21.0) Permalink Comments [1]
MONDAY SEPTEMBER 05, 2005
剖析操作系统运作的好书

国内有一家知名的老牌出版社,过去出版了很多经典的老书,包括Windows操作系统核心、CPU保护模式等,几乎每本都脍炙人口,可是近几年却没有类似的出版品问世。笔者对该出版社的转变感到非常疑惑,所以逮到机会就询问该出版社的朋友,他们给我的答案是,过去的IT从业人员,看到任何讲述特殊技术的书籍,或是看不懂的书名,不管如何,一定会买一本回家,找机会学习。而现在的IT从业人员,见到看不懂的书名就避之唯恐不及,买书都是以可以最快找到他们所要的结果为主,而这些朋友在学生时代,通常只购买能够最快找到课堂作业答案的书籍。

其实这种情况的演变,并非现代IT从业人员的错。在过去,开发人员可以直接在DOS下叫用中断,直接和机器沟通,在Windows下,最有效率的方法就是直接呼叫Win32 API。而随着时代的进步,软件越来越复杂,整个信息科技的分枝越来越细,再也没有任何一个人有能力搞懂所有的技术,就像现代西方医学的分类,内科医生对泌尿系统的了解比不上泌尿科医生,泌尿科医生对肾脏的了解,也比不上专攻肾脏的肾脏科医生。懂得操作系统运作的人不见得了解Java虚拟机器如何运作,而知道如何实做Java虚拟机器的人,也不见得可以写出好的Java应用程序。所有的开发人员和真正运作的机器之间,隔了一层又一层的抽象层。这些抽象层之所以产生,就是为了让开发人员『不要管底层怎么做』,可以快快乐乐地开发应用程序。于是,Java和.net变成显学,在这个以Web应用程序为主的时代里,ASP.net和JavaServer Faces变成显学中的显学,却鲜少人会问『那么CLR Hosting怎么实现?』、或是『如何实作一个J2EE Web Container?』因为这些问题没有急迫性,就算不懂,对薪水根本没影响,如果花时间去穷究,反而项目惠赶不上时程进度。

即使如此,操作系统还是每天出现在我们生活中,我们买来的硬件要能够帮我们做点事,非得先灌好操作系统才行,不管是Windows、Linux、FreeBSD、或是Solaris x86版。撇开汇编语言不谈,要在每种平台上开发出最有效率的应用程序、或是发挥该平台所赋予的所有功能、甚至想要产生一个抽象层让其它人快快乐乐地开发应用程序,那么C或C++无疑是最佳选择,这是一个与机器隔阂最少的位置。当您选择了这条路,虽然少了现代高阶程序语言所附的丰富函式库(Java Class Library、.NET Framework),很多功能都要自己亲自动手,但是也进入了一个前所未有的发挥空间。既然这是一个离机器最近的位置,开发人员跟机器之间只隔了一个操作系统,这个时候,了解操作系统的运作就变得非常重要。

看过此商品后顾客买的其它商品?


商品评论

按有用程度排序
115/120 人认为此评论有用
平均5.0 星 我认为是好书 2011年8月10日
评论者 hate_copy
版本:平装|已确认购买
[牢骚篇]
正则是工具,至于有的人说“我只要掌握了基本的使用就行了,我才不想做什么正则大师”、“至少用不着买了读——除非你想当“正则表达式家”,这个是我在豆瓣上看到的,我不知道现在的人都怎么了,你要是不想学习,就不要影响别人好不好,不知道说这些话的人是不是都偷偷的在看这本书,说实在的,如果你想要赚更多的钱,就不要排斥学习,如果你的时间、资金已经不容许你再去多买一本好书的话,那就另说了,这本书我买了之后,就认真的去读,每次往返于津京两地,坐在慢车上,就是这段时间我在认真的去读(平时工作真的没有大块的时间来阅读),总是有收获的,毕竟我还想做程序员,想做更牛逼的程序员,我想掌握更多的知识;在卓越买过N多的书,手中不乏有被读者叱之为google翻译的书籍,然而看过之后,利仍旧远大于弊的。
[心里话]
现在已经看完第二章了,反复的看了两遍左右,给我感触最大的就是,作者说“经验很重要”,这个和“实践出真知”有异曲同工之妙,人也许是自私的,也许是嫉妒别人的,做为一名过来人,你们是不是应该给小鸟们指点道路,而不是想当然的胡乱评价一本经典著作呢?这本书很适合我,我决心要掌握正则,倒不是想要成为什么,只是想在遇到问题的时候多一种解决问题的思路而已,另外,谁不是要养家糊口的,程序员如果只会排斥、只会轻浮、只会在论坛、群组里讨论着一些生理、女性、没有意义的辩论(甚至转化为谩骂、仇恨),这就有失学习的真谛了。
[结尾话]
愿我中华繁荣富强!愿我爱的人幸福快乐!
这条评论对您有用吗?
11/12 人认为此评论有用
平均5.0 星 正则表达式经典之作 2008年12月9日
评论者 fising
版本:平装|已确认购买
昨天从卓越网买的《精通正则表达式》终于到了,晚上下班回到家迫不及待地读完了第一章。有一种很激动的感觉,仅仅第一章,就让我收获了很多。作者特别在容易出错的地方数次提醒读者,以求印象深刻。例如[^df]表示的不是“不匹配df”,而是匹配“除了df之外的其他字符”。我决定一周之内读完本书。如果你和我一样,也恐惧于正则表达式的复杂,那么本书绝对是你的不二之选。
这条评论对您有用吗?
12/13 人认为此评论有用
平均3.0 星 快递投送很垃圾呀 2010年1月24日
评论者 liuqian
版本:平装|已确认购买
书的质量还不错,就是快递很垃圾
收到书的时候书都破损了
希望能改善快递的服务质量
这条评论对您有用吗?
2/2 人认为此评论有用
平均4.0 星 正则圣经,翻译的不怎么样…… 2012年2月10日
评论者 胖丁
版本:平装|已确认购买
不知道没有正则基础的人从头看是不是也能入门的很快,不反正是在对正则已经有了相当的了解后才看的。
书的开始介绍了很多基础的东西,但不知道一点不会的人能不能理解作者想要表达的。

这本书的内容真心不错,而且行文很好,可以看的出作者是用了心的。
不过翻译的质量我不很满意。如果能直接看原文版的,应该会更好一些(可是原文的太贵呀)。如果英语不好的话,这本可以看看。
比如:里面的 backrefrence 和 backtrace 就翻译的乱七八糟。有些措辞,我感觉译者明显有点曲解了作者的意思。
不过作者也在前言里提了它翻译的很尽力,应该是吧,毕竟这么厚一本书,前后很多章翻译的时候可能隔了很久,翻乱了也没办法。而且有些个说法,确实可能没有统一的中文叫法。

总体评价是:好。毕竟这么经典的书,没有中译是个遗憾。
评价这本书的内容:那么我非常倾向于相信,关于讲正则的书,可能没有比它更好的了。即是说:如果你想学正则,不仅需要这本书,而且一但有了这本书,就不需要别的书了。
评价中文译本的质量:一般般:在计算机技术类的书里,翻译成这样的很多。翻译质量的不如这个更多。(不过我见过有些书,翻译的质量很高,所以如果看译本总希望用高水平来要求。)
别外印刷的字体方面,中文和英文的代码还不错,不过里面有些个
... 阅读更多 ›
回应 | 
这条评论对您有用吗?
19/22 人认为此评论有用
平均1.0 星 卓越是流氓 2010年9月7日
评论者 Jason
版本:平装|已确认购买
送货出了问题,书封面都折了。
想着这是一本经典的书,卓越也有义务将一本完好的书送到我手上,我申请了换货,生成了订单,都快两个月了,都没有人联系我。
找不到电话,javascript:doReview('release');看我以后还来不来这里买东西。
这条评论对您有用吗?
1/1 人认为此评论有用
平均2.0 星 垃圾亚马逊 2009年9月8日
评论者 liuyzphp
版本:平装|已确认购买
在亚马逊买了两本书
一本是 就是这本精通正则表达式
还有一本是javascript精髓
js那本 到没发现有什么毛病

可是正则这本 有8页的空白 害的我没法看 收到书的时候 没怎么仔细看,再说了 也不能一页一页的看吧?

给亚马逊发了三封邮件,要求换货和资讯换货事宜,都四五天了还没有音讯

打客服电话 打了一刻钟都说忙,,,,,nnd

亚马逊的人都到哪去了!!!
回应 | 
这条评论对您有用吗?

用户论坛

话题列表
话题 回复 最后发表
中文版还是English version 0 2008-12-1
amazon上的是第几次印刷的? 0 2008-8-19
浏览全部2个话题...  
发起新话题
话题:
正文:
登录后提交
 

论坛搜索
   


查找其它相似商品