书籍是教程吗?

发布者    |      

上周我买了一本《Wicket in Action》,到目前为止一直在不间断地阅读。现在我正在读第6章,但我还没有写一行Wicket代码。这种情况不是第一次发生,我读过的多数书籍都是读一遍就不再尝试代码示例。

上周Gavin给我打电话,我们谈到了《Hibernate in Action》的下一版,这实际上将是《Java Persistence with Hibernate》的第二版。现在JPA2已经接近完成,Hibernate的带有JPA2功能的第一个beta版本也发布了,更新文本在不久的将来是不可避免的。

我需要尽快决定,这次更新是否将强调书籍的教程方面,或者我将添加更多参考资料。我认为这个决定与书的长度(JPwH超过900页)没有太大关系。这实际上都是关于代码示例的。当然,你不能写一本1000页的教程,当你超过200页时,你必须从教程模式切换到参考模式。

因为这不是自动发生的,你不断地问自己同样的问题:读者是否期望书中的代码可以正常工作?他们是否会编写或复制/粘贴这些代码,并期望它们可以运行?它们是否可以在我已经逐步解释到的项目/产品设置中运行?

对于前两本Hibernate书籍,我一直认为那个问题的答案应该是:是的,可能读者想立即尝试大多数代码示例,他们可能在阅读时将书放在桌子上,旁边是键盘,他们会尝试您所描述的《实战》中的产品。这正是出版社期望《实战》系列书籍所能达到的,我们为此进行了无数令人筋疲力的讨论。最后,这是一项艰巨的工作,我确信它并不完美。在某个时候,教程方法已经不再适用,你必须打断流程,继续使用逐点参考材料。有些读者可能无法完成这个跳跃。书籍的评论显示,有少数人无法跟随文本和示例,在某些地方感到困惑。他们可能期望教程可以继续800页。

而我现在,在问自己是否还会再这样做,为什么以前会有这么多麻烦。我刚刚意识到,当我阅读一本书时,我不会尝试代码。我不是新手,我有一些Java和JEE规范/框架经验,我认为在阅读框架书籍时尝试《你好,世界》示例是浪费时间。我会继续阅读,直到我遇到明显的障碍,那时我需要尝试我正在阅读的代码。实际上,当所有《实用》的细节都阻碍我,我不得不跳过页面,因为它们充满了琐碎的《在这里复制这个JAR文件,然后在那里编辑属性文件》解释时,我不会继续阅读一本书。所以显然,我不是我自己的书籍的目标受众,因为它们从《这是您创建工作目录的方法,这里是如何在您的Windows计算机上做到这一点》开始。

那么,为什么一本书不能两者兼得?我一直在关注其他作家如何解决这个问题。例如,在《Wicket实战》中,作家显然不期望读者立即停止并尝试示例。他们甚至没有在正文包括产品配置和初始设置步骤,而是将它们放在附录中。顺便说一句,我对他们如何通过了Manning的《实战》指南感到有些惊讶。;)

我曾考虑过JPwH,将所有设置内容都移到附录中。不要浪费50页在基本设置说明上(特别是JEE与!JEE容器),而是迎合那些有一定经验、希望在一天或两天内快速掌握新知识的读者,而不会受到《现实世界》问题的干扰。由于标题和副标题很可能是《Java持久化与Hibernate,第二版》,我对出版社的看法并不太担心。

尽管如此,我担心会有很多愤怒的新手,他们期望在第1章或第2章中找到所有设置/配置步骤,如果缺少任何细节,他们就不会继续阅读。另一方面,如果你不知道如何创建目录和复制JAR文件,《如果你不知道如何创建目录和复制JAR文件,你需要休息一下,阅读这个附录》有什么不好呢?

那么,下一版应该是更像是《尽管你的鞋子上有'L'和'R',但你可以自学Hibernate 24小时》,还是应该是《Hibernate圣经,下一版》?

附言。无论发生什么,JPwH的下一版都不会有900页。就我所知,.hbm.xmlorg.hibernate.Session示例将在它们与JPA功能重复时被删除,所以如果没有其他变化,那已经会少掉150页。


返回顶部