专业 Linux 编程

作者:Neil Matthew 和 Richard Stones
价格:59.99 美元
ISBN:1-861003-01-3
评论者:Stephanie Black
随着市场上 Linux 编程书籍数量的增加,新的 Linux 程序员感到有些困惑。
关于 Linux 的信息正在传播——就开源模式和支持它的社区而言,这是一件好事。 新的 Linux 作者的涌入也往往降低了在同一地点找到文化素养和技术专长的几率。 许多有抱负的作家搭乘“企鹅力量!”的流行浪潮,导致 Linux “圣经” 的数量不断增加,其中大多数都像原著一样难以理解,而且几乎没有那么富有想象力。 在任何一种情况下,上下文通常都被扭曲了,即使有呈现。 然而,也有例外。
《专业 Linux 编程》 对其作者和出版商来说都是巨大的赞誉。 它写得清晰明了,信息量大,并且除了一个或两个主题外,范围很广。 其目标受众是中级程序员,但这本书的语言足够清晰易懂,即使是新手程序员也能轻松理解。
本书的主要“主题”是为一个 DVD 租赁商店设计的项目,其中考虑了设计规范的一般和用户要求。 这些规范在随后的章节中得到了跟进,这些章节讨论了各种要素。 本书的大部分章节都回到了这个项目,并从这个背景下探讨主题。 偶尔,作者会穿插“休息一下”的章节。 这些章节与一般的各种编程问题有关。 然而,该项目是本书的重点。
这种方法不仅提供了上下文,还提供了从一个主题到下一个主题的信息流。 因此,读者可以轻松地学习大量的科目,因为它们都相互关联——这种方法比技术著作中普遍存在的“零散”方法更有利于增加程序员的知识和技能。
大多数编程书籍,甚至 Linux 编程书籍,在提供关于根据一般(和用户)规范进行应用程序设计的合理信息方面都存在疏忽。 鉴于编写应用程序的第一步是定义其用途和用户群,设计常常被忽视,或者即使被提及,也只是被降级到书的末尾。 这是 《专业 Linux 编程》 中讨论的第一个主题,让读者体验到理性地进行软件开发的方法。
阅读了几本 Linux 编程书籍后,所有这些书籍都忽略(有意或无意)了 CVS(并发版本系统)日益普及的趋势,我欣喜地发现有一整章详细介绍了这个出色的工具,包括在协作和个人环境中的应用。 常见的 CVS 术语(检出、提交、存储库等)以及命令和互联网上不断增长的 CVS 资源都被详细描述。
对于许多程序员来说,数据库是唯一最不感兴趣的主题,也是最容易被忽视的主题。 Matthew 和 Stones 不仅提供了数据库需求和功能的基础,还深入比较了 PostgreSQL 和 MySQL。 一个有趣的补充是简要对比了 libpq 和 ecpg 作为从 C 调用 PostgreSQL 的方法。 在本书的后面,当应用程序构建面临连接领域时,PHP 也被详细介绍。
在单独的章节中,调试和测试都得到了仔细的说明,特别关注各种软件错误以及在发布前拦截它们的工具。 测试工具,包括针对不同类型要求的不同类型的测试,都得到了详尽的检查,特别关注如何从测试中获得最多的信息,以确保应用程序的质量。
第 12 章讨论了安全编程(包括参考 Ken Thompson 在每个 UNIX 编译器版本中出现的“特洛伊木马”)。 然而,本章并没有简单地给读者一个简单的警告就结束; 它详细介绍了权限的工作原理、一些有用的密码学工具和一些环境变量,所有这些都可以帮助生成安全的代码。 最后讨论了一些更常见的编程语言附带的安全特性/障碍。
我个人要为任何能够将 Beowulf 集群的复杂性转化为非常容易理解的英语的人鼓掌(我目前正在搜罗一堆 386,用它们来构建我自己的 Beowulf 集群——或者应该叫 Bayou-Wolf?)。
本书的成功之处在于几个因素,其中最重要的是可读性。 这本书可以从头到尾阅读:对于一本 1150 多页的大书来说,这种质量是 remarkable 的。 信息呈现清晰,让读者有一种经历了一次相当有启发性的旅程的感觉(没有航班延误)。
其成功的另一个因素是其主题的时效性:鉴于当前软件开发的趋势,所有程序员都可以从中受益。 它考虑到了对网络化应用程序日益增长的需求,这些应用程序不需要对员工进行大量的培训时间才能熟练掌握。 本书还介绍了大量不太常被讨论的任务,例如 LDAP(轻型目录访问协议)、构建设备驱动程序和分发应用程序。 随着时间的推移,这些主题可能会被证明是信息技术的方向。 就目前而言,它们可以作为构建应用程序所需环境的扩展库的基础。
有两位主要作者,但另外十一位作者根据各自的专业领域贡献了信息:Browne、Clements (Python)、Froggatt、Goodger (Python)、Griffin、Licquia、van Loon (多媒体)、Ranawake (Beowulf)、Rawat (网络)、Sundbakken (QT)、Thomas (PHP)、Turnbull (国际化) 和 Woodhouse (设备驱动程序)。 这种集体努力背后的协同作用是显而易见的,因为每位贡献者的工作、经验和专业知识都为 《专业 Linux 编程》 带来了在“科技文学”中不常见的全面性。 但愿更多的作者能效仿这些先生们精诚合作的榜样。
出版商 Wrox Press 甚至为程序员提供了一个支持网站:http://p2p.wrox.com/。 其中包括本书中使用的源代码,以及一个讨论编程问题的论坛。
