Perl最佳实践(中文版)
基本信息
- 原书名: Perl Best Practices
- 原出版社: O'Reilly Media, Inc.
- 作者: (澳)Damian Conway [作译者介绍]
- 译者: O'Reilly Taiwan公司编译
- 丛书名: 东南大学出版社O'Reilly系列丛书
- 出版社:东南大学出版社
- ISBN:9787564110093
- 上架时间:2008-4-28
- 出版日期:2008 年3月
- 开本:16开
- 页码:502
- 版次:1-1
- 所属分类:
计算机 > 软件与程序设计 > 网络编程 > perl
编辑推荐
通过生动幽默的表达,作者Damian Conway为Perl编程人员提供了关于编程艺术的256条规则,这些规则能帮助你编写出更好的Perl代码。这些指导方针的发展和调整历经22年程序设计生涯的锤炼,它们能够共同协调运行,以产生清晰、强健、有效率、可维护以及简明的程序代码。
推荐阅读
内容简介回到顶部↑
许多程序员凭直觉来编程,这些直觉来自于他们早期养成的习惯和风格。这样写出的程序似乎自然、直观,而且看起来也很不错。但是,如果你想严肃地对待程序员这份职业,那么直觉就远远不够了。《perl最佳实践》讲述了许多关于perl语言的编程规则、使用惯例、开发标准和最佳实践,这些内容不仅有助于程序员之间的交流和协同工作,同时也提供了一套思考问题的可靠框架和一种表述解决方案的通用语言。
通过生动幽默的表达,作者damian conway为perl编程人员提供了关于编程艺术的256条规则,这些规则能帮助你编写出更好的perl代码。这些规则涵盖了代码布局和命名规则,数据和控制结构的选择,程序解构和模块化,接口的设计和实现,面向对象设计,错误处理、程序测试和调试。
本书中所有的规则都是为了写出清晰、健壮、高效、可维护和简洁的程序而设计。conway博士并不自诩这些规则是最广泛和最清晰的实践集,但实际上,本书确实提供了在实践中被广泛认可和应用的建议,而不是象牙塔似的编程理论。
最特别的是,《perl最佳实践》提供的规则是实在有效的,世界各地的开发人员已经普遍使用。像perl语言的初衷一样,这些规则将使你的开发更加出色。
通过生动幽默的表达,作者damian conway为perl编程人员提供了关于编程艺术的256条规则,这些规则能帮助你编写出更好的perl代码。这些规则涵盖了代码布局和命名规则,数据和控制结构的选择,程序解构和模块化,接口的设计和实现,面向对象设计,错误处理、程序测试和调试。
本书中所有的规则都是为了写出清晰、健壮、高效、可维护和简洁的程序而设计。conway博士并不自诩这些规则是最广泛和最清晰的实践集,但实际上,本书确实提供了在实践中被广泛认可和应用的建议,而不是象牙塔似的编程理论。
最特别的是,《perl最佳实践》提供的规则是实在有效的,世界各地的开发人员已经普遍使用。像perl语言的初衷一样,这些规则将使你的开发更加出色。
作译者回到顶部↑
本书提供作译者介绍
Damian Conway拥有计算机科学博士学位,也是澳洲墨尔本市莫纳什大学计算机科学与软件工程学院的名誉副教授。
目前他经营一家国际IT培训公司(Thoughtstream),在欧洲、北美洲、澳洲提供初级到高级的程序员培训课程。
.. << 查看详细
目前他经营一家国际IT培训公司(Thoughtstream),在欧洲、北美洲、澳洲提供初级到高级的程序员培训课程。
.. << 查看详细
目录回到顶部↑
前言
第一章 最佳实战
三个目标
改变习惯
第二章 代码部署
括号方式
关键字
子程序和变量
内置函数
键和索引
运算符
分号
逗号
代码行的长度
缩排
制表符
块
组块
else
垂直对齐
第一章 最佳实战
三个目标
改变习惯
第二章 代码部署
括号方式
关键字
子程序和变量
内置函数
键和索引
运算符
分号
逗号
代码行的长度
缩排
制表符
块
组块
else
垂直对齐
前言回到顶部↑
这本书的目的是协助你编写出更好的Perl程序:事实上,就是你可能写出的最佳Perl程序。本书收集了256则指导方针,涵盖编码技能的各个方面,包括部署、名称选择、数据和控制结构的选择、程序分解、接口设计和实现、模块化、面向对象、错误处理、测试与调试。这些指导方针的发展和调整历经22年程序设计生涯的锤炼,它们能够共同协调运行,以产生清晰、强健、有效率、可维护以及简明的程序代码。
提醒你,这可不容易达到。简明是清晰的天敌,而效率是降低可维护性的因素。此外,为了让程序代码强健所做的防护也会侵蚀清晰、有效率、简明以及可维护性。.
有时,你就是无法“面面俱到”。
本书并非试图提供一组放诸四海皆准的唯一最佳实践。衡量程序代码质量有很多方式,而评价程序代码也有许多方面,因为不同的程序员会有不同的评估观点。每位程序员和每个程序设计团队对何为程序最重要且最不可或缺的属性都有自己的看法。
相反地,本书提供的是一组最佳实践:这组最佳实践前后连贯、用途广泛、目标平衡,而且是根据程序编写的真实经验,而不是某人认为程序应该如何打造的象牙塔理论。最重要的是,这组实践可实际运作,而且世界各地已经有众多开发人员在使用它们。如同Perl本身,这些指导方针是为了协助你把工作做好,而不是变成开发之路上的绊脚石。
如果你是有经验的开发人员,几乎可以肯定你不会喜欢后面所有的建议。你会发现其中有些方针并不自然或者违反直觉;而其他人可能会觉得很死板,不像Perl。也许这些方针看起来就像是以不必要的不同方式来编写软件,有别于你长久以来根深蒂固、觉得很舒服的编码习惯。
当你阅读本书中的建议时,试着将这些感觉放到一旁。当你试图改善任何程序代码时,就回头看一看这本书:分析一下新实践所提出的论据;问自己是否掉进那些新实践试着避开的陷阱;考虑一下书中所建议的编码技巧是否值得一试。
想一想这些议题——对你当前编写程序的方式保持意识清醒会有很大的益处,即使最后你根本不采用任何一条建议。
本书内容
第一章 最佳实践 说明为何值得花时间重新评估你当前的编码实践。文中讨论编码风格的演化,提出三项宽广准则,说明对现有或提议中的编码实践应该重新评估。本章也说明为何良好的编码习惯是很重要的并提出如何培养良好编码习惯的建议。
第二章 代码部署 解决诸多争议性十足的代码部署议题。本章建议如何设立块定界符;如何在视觉上区分内置函数以及子程序(subroutine)和变量的关键字;将运算符、终止符号、定界符、其他标点符号摆在何处;如何使用一致的空白增加可读性;代码行和代码块缩排的最佳宽度;如何陈列值列表;从何处把冗长表达式打断。最后归结为提出方便的工具,让多数部署任务自动化。
第三章 命名惯例 介绍一系列指导方针,协助你替变量、子程序、命名空间选择更具有描述性的名称。此外,也示范说明一致性命名方案的各种元素如何协同运行,以改善程序代码的整体可维护性 —— 使其更具可读性并减少解谜用的注释。
第四章 值和表达式 提供一组简单规则,当你创建字符串(characteratring)、数字以及列表时,可协助你避开常见的陷阱。主题包括如何避免意外的变量安插(以及非安插)、对非打印字符所采取的可靠且可读的方式、定义常量、避免未修饰字(bareword)以及驯服heredoc、逗号、长数字和列表。..
第五章 变量 探索使用变量的强健手段。文中说明包变量或标点变量的内在缺点,在可行之处提出较安全的替代项,在无替代项时建议较安全的实践做法。本章的后半部分会介绍几种有效、可维护性高的技巧,以处理数组和散列中的数据(使用“容器切片”机制)。
第六章 控制结构 检查Perl丰富的控制结构,鼓励你使用那些易维护、不易出错或较有效的控制结构。本章提出一组简单的指导方针,以决定对特定任务而言,for、while、map之中哪一个才是最恰当的选择。我们也会讨论有效使用迭代器变量,包括必须同时以键和值来迭代散列项的情况。
第七章 说明文档 提出一系列技巧,让你在替程序编写说明文档时不至于太沉闷,因此你就更可能愿意写。文中提倡一种范本式的方法以编写用户和技术说明文档,讨论何时、何处、如何编写有用且准确的注释。
第八章 内置函数 讨论使用Perl最著名的内置函数的较佳方式,包括sort、reverse、scalar、eval、unpack、split、substr、values、select、sleep、map、grep。文中也总结出由标准Perl发行包的两个模块和CPAN的一个模块所提供的其他许多有用的“非内置的”内置函数。
第九章 子程序 说明一些有效以及具有可维护性的方式以编写Perl子程序,包括位置、命名以及可选自变量的使用、自变量验证及默认值、安全的调用及返回约定、各种上下文中可预测的返回值以及为什么应该避免子程序原型及隐性返回值。
第十章 I/O 说明如何以可靠方式打开和关闭文件、何时使用基于行的数据输入、如何正确检查交互式应用程序、提示的重要性、如何在长时间非交互式任务中提供最佳反馈给用户。
第十一章 引用 提供解开Perl众多提取(解引用)语法的神秘之处,讨论为何符号引用造成的问题比能解决的问题更多,然后建议你避免使用循环引用链以免造成内存泄漏。
提醒你,这可不容易达到。简明是清晰的天敌,而效率是降低可维护性的因素。此外,为了让程序代码强健所做的防护也会侵蚀清晰、有效率、简明以及可维护性。.
有时,你就是无法“面面俱到”。
本书并非试图提供一组放诸四海皆准的唯一最佳实践。衡量程序代码质量有很多方式,而评价程序代码也有许多方面,因为不同的程序员会有不同的评估观点。每位程序员和每个程序设计团队对何为程序最重要且最不可或缺的属性都有自己的看法。
相反地,本书提供的是一组最佳实践:这组最佳实践前后连贯、用途广泛、目标平衡,而且是根据程序编写的真实经验,而不是某人认为程序应该如何打造的象牙塔理论。最重要的是,这组实践可实际运作,而且世界各地已经有众多开发人员在使用它们。如同Perl本身,这些指导方针是为了协助你把工作做好,而不是变成开发之路上的绊脚石。
如果你是有经验的开发人员,几乎可以肯定你不会喜欢后面所有的建议。你会发现其中有些方针并不自然或者违反直觉;而其他人可能会觉得很死板,不像Perl。也许这些方针看起来就像是以不必要的不同方式来编写软件,有别于你长久以来根深蒂固、觉得很舒服的编码习惯。
当你阅读本书中的建议时,试着将这些感觉放到一旁。当你试图改善任何程序代码时,就回头看一看这本书:分析一下新实践所提出的论据;问自己是否掉进那些新实践试着避开的陷阱;考虑一下书中所建议的编码技巧是否值得一试。
想一想这些议题——对你当前编写程序的方式保持意识清醒会有很大的益处,即使最后你根本不采用任何一条建议。
本书内容
第一章 最佳实践 说明为何值得花时间重新评估你当前的编码实践。文中讨论编码风格的演化,提出三项宽广准则,说明对现有或提议中的编码实践应该重新评估。本章也说明为何良好的编码习惯是很重要的并提出如何培养良好编码习惯的建议。
第二章 代码部署 解决诸多争议性十足的代码部署议题。本章建议如何设立块定界符;如何在视觉上区分内置函数以及子程序(subroutine)和变量的关键字;将运算符、终止符号、定界符、其他标点符号摆在何处;如何使用一致的空白增加可读性;代码行和代码块缩排的最佳宽度;如何陈列值列表;从何处把冗长表达式打断。最后归结为提出方便的工具,让多数部署任务自动化。
第三章 命名惯例 介绍一系列指导方针,协助你替变量、子程序、命名空间选择更具有描述性的名称。此外,也示范说明一致性命名方案的各种元素如何协同运行,以改善程序代码的整体可维护性 —— 使其更具可读性并减少解谜用的注释。
第四章 值和表达式 提供一组简单规则,当你创建字符串(characteratring)、数字以及列表时,可协助你避开常见的陷阱。主题包括如何避免意外的变量安插(以及非安插)、对非打印字符所采取的可靠且可读的方式、定义常量、避免未修饰字(bareword)以及驯服heredoc、逗号、长数字和列表。..
第五章 变量 探索使用变量的强健手段。文中说明包变量或标点变量的内在缺点,在可行之处提出较安全的替代项,在无替代项时建议较安全的实践做法。本章的后半部分会介绍几种有效、可维护性高的技巧,以处理数组和散列中的数据(使用“容器切片”机制)。
第六章 控制结构 检查Perl丰富的控制结构,鼓励你使用那些易维护、不易出错或较有效的控制结构。本章提出一组简单的指导方针,以决定对特定任务而言,for、while、map之中哪一个才是最恰当的选择。我们也会讨论有效使用迭代器变量,包括必须同时以键和值来迭代散列项的情况。
第七章 说明文档 提出一系列技巧,让你在替程序编写说明文档时不至于太沉闷,因此你就更可能愿意写。文中提倡一种范本式的方法以编写用户和技术说明文档,讨论何时、何处、如何编写有用且准确的注释。
第八章 内置函数 讨论使用Perl最著名的内置函数的较佳方式,包括sort、reverse、scalar、eval、unpack、split、substr、values、select、sleep、map、grep。文中也总结出由标准Perl发行包的两个模块和CPAN的一个模块所提供的其他许多有用的“非内置的”内置函数。
第九章 子程序 说明一些有效以及具有可维护性的方式以编写Perl子程序,包括位置、命名以及可选自变量的使用、自变量验证及默认值、安全的调用及返回约定、各种上下文中可预测的返回值以及为什么应该避免子程序原型及隐性返回值。
第十章 I/O 说明如何以可靠方式打开和关闭文件、何时使用基于行的数据输入、如何正确检查交互式应用程序、提示的重要性、如何在长时间非交互式任务中提供最佳反馈给用户。
第十一章 引用 提供解开Perl众多提取(解引用)语法的神秘之处,讨论为何符号引用造成的问题比能解决的问题更多,然后建议你避免使用循环引用链以免造成内存泄漏。
媒体评论回到顶部↑
“作为一个大型Perl项目的开发经理,我确信我的开发团队的每个成员都会把《Perl最佳实践》放在手边,并将它作为开发准测。” —— Randal Schwartz .
“这本书的出现使开发人员不再有任何借口写糟糕的Perl程序。读过这本书后,所有的Perl开发人员的工作都会更加高效。” —— Peter Scott, Perl trainer and author
“《Perl最佳实践》已经帮我节省了大量的时间,同时,’部门编码规范’的编写不再是难事。” —— Andy Lester, Web Applications Manager, Follett Library Resources ..
“Damian完成的工作是难以置信的,不仅展现了如何构建大型的、可维护的Perl应用,同时,将Perl语言的强大表达力展现在我们面前。” —— Bill Odom, Perl Foundation Steering Committee Chairman ...
“这本书的出现使开发人员不再有任何借口写糟糕的Perl程序。读过这本书后,所有的Perl开发人员的工作都会更加高效。” —— Peter Scott, Perl trainer and author
“《Perl最佳实践》已经帮我节省了大量的时间,同时,’部门编码规范’的编写不再是难事。” —— Andy Lester, Web Applications Manager, Follett Library Resources ..
“Damian完成的工作是难以置信的,不仅展现了如何构建大型的、可维护的Perl应用,同时,将Perl语言的强大表达力展现在我们面前。” —— Bill Odom, Perl Foundation Steering Committee Chairman ...
书摘回到顶部↑
第一章最佳实践
我们的写作不必像Faulkner那样,而我们的程序也不必写得像Dijkstra那样。我很高兴能跟别人谈论我的程序设计风格,而且我甚至会告诉他们我认为他们的风格哪里不明确或者让我跳“脑力呼啦圈”。但是,我是以同样身为程序员的身份这么做的,而非Perl创造者的身份……风格限制应该自我约束或者由周围伙伴的共识决定。
——Larry Wall
《Natural Language Principles in Perl》
程序代码最要紧。分析、设计、重组、算法、数据结构以及控制流程算不了什么,除非以某种程序设计语言的语句赋予形式和力量,这一切才会成真。程序代码让各种抽象概念和想法可以控制实体世界,让数学过程掌控真实世界流程,把数据转换成信息,再把信息转换成知识。
程序代码最要紧。所以,你以什么方式编写程序也很要紧。每个程序员都有编写软件的独特方式,那是一种独特的编码风格。程序员的风格源自于他们最初的程序设计经验:最初所学程序语言的语言特质、所接触的教科书中展示程序代码的方式以及他们的早期教师的风格偏见。随着程序员的经验和技巧的增长,那样的风格也会随之发展和变化。事实上,多数程序员的风格就是一些编码习惯,为了响应他们的职涯中所经历的机会和压力而有所演化。
如同自然演化,这些机会和压力可能会让编码风格极有力地融入程序员的需求,配合得恰到好处;或者,也可能造成令人讨厌、粗野而且粗心大意的编码风格。
……
我们的写作不必像Faulkner那样,而我们的程序也不必写得像Dijkstra那样。我很高兴能跟别人谈论我的程序设计风格,而且我甚至会告诉他们我认为他们的风格哪里不明确或者让我跳“脑力呼啦圈”。但是,我是以同样身为程序员的身份这么做的,而非Perl创造者的身份……风格限制应该自我约束或者由周围伙伴的共识决定。
——Larry Wall
《Natural Language Principles in Perl》
程序代码最要紧。分析、设计、重组、算法、数据结构以及控制流程算不了什么,除非以某种程序设计语言的语句赋予形式和力量,这一切才会成真。程序代码让各种抽象概念和想法可以控制实体世界,让数学过程掌控真实世界流程,把数据转换成信息,再把信息转换成知识。
程序代码最要紧。所以,你以什么方式编写程序也很要紧。每个程序员都有编写软件的独特方式,那是一种独特的编码风格。程序员的风格源自于他们最初的程序设计经验:最初所学程序语言的语言特质、所接触的教科书中展示程序代码的方式以及他们的早期教师的风格偏见。随着程序员的经验和技巧的增长,那样的风格也会随之发展和变化。事实上,多数程序员的风格就是一些编码习惯,为了响应他们的职涯中所经历的机会和压力而有所演化。
如同自然演化,这些机会和压力可能会让编码风格极有力地融入程序员的需求,配合得恰到好处;或者,也可能造成令人讨厌、粗野而且粗心大意的编码风格。
……








点击看大图






加载中...


