微信扫一扫,移动浏览光盘
简介
许多程序员凭直觉来编程,这些直觉来自于他们早期养成的习惯和风格
。这样写出的程序似乎自然、直
观,而且看起来也很不错。但是,如果你想严肃地对待程序员这份职业,那
么直觉就远远不够了。《Perl
最佳实践》讲述了许多关于Perl语言的编程规则、使用惯例、开发标准和最
佳实践,这些内容不仅有
助于程序员之间的交流和协同工作,同时也提供了一套思考问题的可靠框架
和一种表述解决方案的通用语言。
通过生动幽默的表达,作者Damian Conway为Perl编程人员提供了关于编程
艺术的256条规则,这些规则能帮助
你编写出更好的Perl代码。这些规则涵盖了代码布局和命名规则,数据和控
制结构的选择,程序解构和模块化,接
口的设计和实现,面向对象设计,错误处理、程序测试和调试。
本书中所有的规则都是为了写出清晰、健壮、高效、可维护和简洁的程
序而设计。Conway博士并不自诩这些规则
是最广泛和最清晰的实践集,但实际上,本书确实提供了在实践中被广泛认
可和应用的建议,而不是象牙塔似的编
程理论。
最特别的是,《Perl最佳实践》提供的规则是实在有效的,世界各地的
开发人员已经普遍使用。像Perl语言的初衷
一样,这些规则将使你的开发更加出色。
目录
目录
前言
第一章 最佳实践
三个目标
改变习惯
第二章 代码部署
括号方式
关键字
子程序和变量
内置函数
键和索引
运算符
分号
逗号
代码行的长度
缩排
制表符
块
组块
ElSe
垂直对齐
断开长行
非末端表达式
按优先级断开
赋值运算
三元运算符
列表
自动化部署
第三章 命名惯例
标识符
布尔值
引用变量
数组和散列
下划线
大小写
缩写
模糊的缩写
模糊的名称
实用子程序
第四章 值和表达式
字符串定界符
空字符串
单字符字符串
转义字符
常量
前导零
长数字
多行字符串
Here Document
Heredoc缩排
Heredoc终止符号
Heredoc引号
未修饰字
“胖逗号”
少用逗号
低优先级运算符
列表
列表成员关系
第五章 变量
词法变量
包变量
局域化
初始化
标点变量
标点变量局域化
匹配变量
美元符号-下划线
数组索引
切片
切片部署
切片分离
第六章 控制结构
if块
后缀选择器
其他后缀修饰符
否定控制语句
C风格的循环
不必要的索引标示
必要的索引标示
迭代器变量
非词法的循环迭代器
列表的产生
列表的选取
列表的转换
复杂映射
列表处理的副作用
多部分选取
值的切换
表格式的三元表达式
do-while循环
线性编码
分布式控制
重做
循环标签
第七章 说明文档
说明文档的类型
样板文件(boilerplate)
扩展样板文件
地点
集中
位置
技术说明文档
注释
算法说明文档
阐明式说明文档
自卫式说明文档
指示式说明文档
推论式说明文档
校对
第八章 内置函数
排序
逆转列表
逆转标量
固定宽度的数据
分隔的数据
可变宽度的数据
字符串的求值
自动化排序
子字符串
散列的值
glob
睡眠
map和grep
实用程序
第九章 子程序
调用语法
同名异物
自变量列表
具名自变量
缺漏的自变量
默认自变量值
标量返回值
上下文返回值
多上下文返回值
原型
隐式返回
返回失败
第十章 I/O
文件句柄
间接文件句柄
文件句柄局域化
完完整整地开启
错误检查
清理
输入循环
基于行的输入
简单吃进(Simple Slurping)
强力吃进
标准输入
打印至文件句柄
简单提示
交互性
强力提示
进度指示器
进度指示器自动化
自动刷新
第十一章 引用
解引用
大括号式引用
符号引用
循环引用
第十二章 正则表达式
扩展格式
行的边界
字符串边界
字符串末尾
匹配任何东西
懒惰标记(Lazy Flag)
大括号定界符
其他定界符
元字符
具名字符
特性
空白
无约束的重复
捕获小括号
捕获的值
捕获变量
分段匹配(Piecewise Matching)
表格式正则表达式
构建正则表达式
预制的(canned)正则表达式
交替选择
分离交替选择
回溯
字符串比较
第十三章 错误处理
异常
内置函数失败
上下文失败
系统失败
可复原的失败
报告失败
错误消息
替错误编写说明文档
OO异常
易变的错误消息
异常层次
处理异常
异常类
取出异常
第十四章 命令行处理
命令行结构
命令行惯例
元选项
原位自变量
命令行的处理
接口一致
应用程序间一致性
第十五章 对象
使用OO
准则
伪散列
受限散列
封装
构造函数
克隆
析构函数
方法
访问器
lvalue访问器
间接对象
类接口
运算符重载
强制
第十六章 类层次
继承
对象
对象的bless
构造函数自变量
基类初始化
构造和析构
自动化类层次
属性破坏
属性的建立
强制
累积方法
自动加载
第十七章 模块
接口
重构
版本编号
版本需求
导出
声明式导出
接口变量
创建模块
标准链接库
CPAN
第十八章 测试和调试
测试案例
模块化测试
测试集
失败
要测试什么?
调试和测试
责难(stricture)
警告
正确性
覆盖责难
调试器
手动调试
半自动化调试
第十九章 其他主题
版本控制
其他语言
配置文件
格式
绑定
机巧
封装的机巧
性能测试
内存
缓存机制
备忘
缓存机制最优化
剖析
引入缺陷
附录一 Perl基本的最佳实践
附录二 Perl最佳实践
附录三 编辑器配置
附录四 推荐的模块和实用程序
附录五 参考文献
前言
第一章 最佳实践
三个目标
改变习惯
第二章 代码部署
括号方式
关键字
子程序和变量
内置函数
键和索引
运算符
分号
逗号
代码行的长度
缩排
制表符
块
组块
ElSe
垂直对齐
断开长行
非末端表达式
按优先级断开
赋值运算
三元运算符
列表
自动化部署
第三章 命名惯例
标识符
布尔值
引用变量
数组和散列
下划线
大小写
缩写
模糊的缩写
模糊的名称
实用子程序
第四章 值和表达式
字符串定界符
空字符串
单字符字符串
转义字符
常量
前导零
长数字
多行字符串
Here Document
Heredoc缩排
Heredoc终止符号
Heredoc引号
未修饰字
“胖逗号”
少用逗号
低优先级运算符
列表
列表成员关系
第五章 变量
词法变量
包变量
局域化
初始化
标点变量
标点变量局域化
匹配变量
美元符号-下划线
数组索引
切片
切片部署
切片分离
第六章 控制结构
if块
后缀选择器
其他后缀修饰符
否定控制语句
C风格的循环
不必要的索引标示
必要的索引标示
迭代器变量
非词法的循环迭代器
列表的产生
列表的选取
列表的转换
复杂映射
列表处理的副作用
多部分选取
值的切换
表格式的三元表达式
do-while循环
线性编码
分布式控制
重做
循环标签
第七章 说明文档
说明文档的类型
样板文件(boilerplate)
扩展样板文件
地点
集中
位置
技术说明文档
注释
算法说明文档
阐明式说明文档
自卫式说明文档
指示式说明文档
推论式说明文档
校对
第八章 内置函数
排序
逆转列表
逆转标量
固定宽度的数据
分隔的数据
可变宽度的数据
字符串的求值
自动化排序
子字符串
散列的值
glob
睡眠
map和grep
实用程序
第九章 子程序
调用语法
同名异物
自变量列表
具名自变量
缺漏的自变量
默认自变量值
标量返回值
上下文返回值
多上下文返回值
原型
隐式返回
返回失败
第十章 I/O
文件句柄
间接文件句柄
文件句柄局域化
完完整整地开启
错误检查
清理
输入循环
基于行的输入
简单吃进(Simple Slurping)
强力吃进
标准输入
打印至文件句柄
简单提示
交互性
强力提示
进度指示器
进度指示器自动化
自动刷新
第十一章 引用
解引用
大括号式引用
符号引用
循环引用
第十二章 正则表达式
扩展格式
行的边界
字符串边界
字符串末尾
匹配任何东西
懒惰标记(Lazy Flag)
大括号定界符
其他定界符
元字符
具名字符
特性
空白
无约束的重复
捕获小括号
捕获的值
捕获变量
分段匹配(Piecewise Matching)
表格式正则表达式
构建正则表达式
预制的(canned)正则表达式
交替选择
分离交替选择
回溯
字符串比较
第十三章 错误处理
异常
内置函数失败
上下文失败
系统失败
可复原的失败
报告失败
错误消息
替错误编写说明文档
OO异常
易变的错误消息
异常层次
处理异常
异常类
取出异常
第十四章 命令行处理
命令行结构
命令行惯例
元选项
原位自变量
命令行的处理
接口一致
应用程序间一致性
第十五章 对象
使用OO
准则
伪散列
受限散列
封装
构造函数
克隆
析构函数
方法
访问器
lvalue访问器
间接对象
类接口
运算符重载
强制
第十六章 类层次
继承
对象
对象的bless
构造函数自变量
基类初始化
构造和析构
自动化类层次
属性破坏
属性的建立
强制
累积方法
自动加载
第十七章 模块
接口
重构
版本编号
版本需求
导出
声明式导出
接口变量
创建模块
标准链接库
CPAN
第十八章 测试和调试
测试案例
模块化测试
测试集
失败
要测试什么?
调试和测试
责难(stricture)
警告
正确性
覆盖责难
调试器
手动调试
半自动化调试
第十九章 其他主题
版本控制
其他语言
配置文件
格式
绑定
机巧
封装的机巧
性能测试
内存
缓存机制
备忘
缓存机制最优化
剖析
引入缺陷
附录一 Perl基本的最佳实践
附录二 Perl最佳实践
附录三 编辑器配置
附录四 推荐的模块和实用程序
附录五 参考文献
Perl best practices
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×