Perl Best Practices (Paperback)
暫譯: Perl 最佳實踐 (平裝本)

Damian Conway

  • 出版商: O'Reilly
  • 出版日期: 2005-08-16
  • 定價: $1,400
  • 售價: 9.5$1,330
  • 語言: 英文
  • 頁數: 544
  • 裝訂: Paperback
  • ISBN: 0596001738
  • ISBN-13: 9780596001735
  • 相關分類: Perl 程式語言
  • 立即出貨 (庫存 < 3)

買這商品的人也買了...

商品描述

Description:

Many programmers code by instinct, relying on convenient habits or a "style" they picked up early on. They aren't conscious of all the choices they make, like how they format their source, the names they use for variables, or the kinds of loops they use. They're focused entirely on problems they're solving, solutions they're creating, and algorithms they're implementing. So they write code in the way that seems natural, that happens intuitively, and that feels good.

But if you're serious about your profession, intuition isn't enough.  Perl Best Practices author Damian Conway explains that rules, conventions, standards, and practices not only help programmers communicate and coordinate with one another, they also provide a reliable framework for thinking about problems, and a common language for expressing solutions. This is especially critical in Perl, because the language is designed to offer many ways to accomplish the same task, and consequently it supports many incompatible dialects.

With a good dose of Aussie humor, Dr. Conway (familiar to many in the Perl community) offers 256 guidelines on the art of coding to help you write better Perl code--in fact, the best Perl code you possibly can.  The guidelines cover code layout, naming conventions, choice of data and control structures, program decomposition, interface design and implementation, modularity, object orientation, error handling, testing, and debugging.

They're designed to work together to produce code that is clear, robust, efficient, maintainable, and concise, but Dr. Conway doesn't pretend that this is the one true universal and unequivocal set of best practices. Instead, Perl Best Practices offers coherent and widely applicable suggestions based on real-world experience of how code is actually written, rather than on someone's ivory-tower theories on how software ought to be created.

Most of all, Perl Best Practices offers guidelines that actually work, and that many developers around the world are already using.  Much like Perl itself, these guidelines are about helping you to get your job done, without getting in the way.

 

Table of Contents:

Preface

1. Best Practices

     Three Goals

     This Book

     Rehabiting

2. Code Layout

     Bracketing

     Keywords

     Subroutines and Variables

     Builtins

     Keys and Indices

     Operators

     Semicolons

     Commas

     Line Lengths

     Indentation

     Tabs

     Blocks

     Chunking

     Elses

     Vertical Alignment

     Breaking Long Lines

     Non-Terminal Expressions

     Breaking by Precedence

     Assignments

     Ternaries

     Lists

     Automated Layout

3. Naming Conventions

     Identifiers

     Booleans

     Reference Variables

     Arrays and Hashes

     Underscores

     Capitalization

     Abbreviations

     Ambiguous Abbreviations

     Ambiguous Names

     Utility Subroutines

4. Values and Expressions

     String Delimiters

     Empty Strings

     Single-Character Strings

     Escaped Characters

     Constants

     Leading Zeros

     Long Numbers

     Multiline Strings

     Here Documents

     Heredoc Indentation

     Heredoc Terminators

     Heredoc Quoters

     Barewords

     Fat Commas

     Thin Commas

     Low-Precedence Operators

     Lists

     List Membership

5. Variables

     Lexical Variables

     Package Variables

     Localization

     Initialization

     Punctuation Variables

     Localizing Punctuation Variables

     Match Variables

     Dollar-Underscore

     Array Indices

     Slicing

     Slice Layout

     Slice Factoring

6. Control Structures

     If Blocks

     Postfix Selectors

     Other Postfix Modifiers

     Negative Control Statements

     C-Style Loops

     Unnecessary Subscripting

     Necessary Subscripting

     Iterator Variables

     Non-Lexical Loop Iterators

     List Generation

     List Selections

     List Transformation

     Complex Mappings

     List Processing Side Effects

     Multipart Selections

     Value Switches

     Tabular Ternaries

     do-while Loops

     Linear Coding

     Distributed Control

     Redoing

     Loop Labels

7. Documentation

     Types of Documentation

     Boilerplates

     Extended Boilerplates

     Location

     Contiguity

     Position

     Technical Documentation

     Comments

     Algorithmic Documentation

     Elucidating Documentation

     Defensive Documentation

     Indicative Documentation

     Discursive Documentation

     Proofreading

8. Built-in Functions

     Sorting

     Reversing Lists

     Reversing Scalars

     Fixed-Width Data

     Separated Data

     Variable-Width Data

     String Evaluations

     Automating Sorts

     Substrings

     Hash Values

     Globbing

     Sleeping

     Mapping and Grepping

     Utilities

9. Subroutines

     Call Syntax

     Homonyms

     Argument Lists

     Named Arguments

     Missing Arguments

     Default Argument Values

     Scalar Return Values

     Contextual Return Values

     Multi-Contextual Return Values

     Prototypes

     Implicit Returns

     Returning Failure

10. I/O

     Filehandles

     Indirect Filehandles

     Localizing Filehandles

     Opening Cleanly

     Error Checking

     Cleanup

     Input Loops

     Line-Based Input

     Simple Slurping

     Power Slurping

     Standard Input

     Printing to Filehandles

     Simple Prompting

     Interactivity

     Power Prompting

     Progress Indicators

     Automatic Progress Indicators

     Autoflushing

11. References

     Dereferencing

     Braced References

     Symbolic References

     Cyclic References

12. Regular Expressions

     Extended Formatting

     Line Boundaries

     String Boundaries

     End of String

     Matching Anything

     Lazy Flags

     Brace Delimiters

     Other Delimiters

     Metacharacters

     Named Characters

     Properties

     Whitespace

     Unconstrained Repetitions

     Capturing Parentheses

     Captured Values

     Capture Variables

     Piecewise Matching

     Tabular Regexes

     Constructing Regexes

     Canned Regexes

     Alternations

     Factoring Alternations

     Backtracking

     String Comparisons

13. Error Handling

     Exceptions

     Builtin Failures

     Contextual Failure

     Systemic Failure

     Recoverable Failure

     Reporting Failure

     Error Messages

     Documenting Errors

     OO Exceptions

     Volatile Error Messages

     Exception Hierarchies

     Processing Exceptions

     Exception Classes

     Unpacking Exceptions

14. Command-Line Processing

     Command-Line Structure

     Command-Line Conventions

     Meta-options

     In-situ Arguments

     Command-Line Processing

     Interface Consistency

     Interapplication Consistency

15. Objects

     Using OO

     Criteria

     Pseudohashes

     Restricted Hashes

     Encapsulation

     Constructors

     Cloning

     Destructors

     Methods

     Accessors

     Lvalue Accessors

     Indirect Objects

     Class Interfaces

     Operator Overloading

     Coercions

16. Class Hierarchies

     Inheritance

     Objects

     Blessing Objects

     Constructor Arguments

     Base Class Initialization

     Construction and Destruction

     Automating Class Hierarchies

     Attribute Demolition

     Attribute Building

     Coercions

     Cumulative Methods

     Autoloading

17. Modules

     Interfaces

     Refactoring

     Version Numbers

     Version Requirements

     Exporting

     Declarative Exporting

     Interface Variables

     Creating Modules

     The Standard Library

     CPAN

18. Testing and Debugging

     Test Cases

     Modular Testing

     Test Suites

     Failure

     What to Test

     Debugging and Testing

     Strictures

     Warnings

     Correctness

     Overriding Strictures

     The Debugger

     Manual Debugging

     Semi-Automatic Debugging

19. Miscellanea

     Revision Control

     Other Languages

     Configuration Files

     Formats

     Ties

     Cleverness

     Encapsulated Cleverness

     Benchmarking

     Memory

     Caching

     Memoization

     Caching for Optimization

     Profiling

     Enbugging

A. Essential Perl Best Practices

B. Perl Best Practices

C. Editor Configurations

D. Recommended Modules and Utilities

E. Bibliography

Index

商品描述(中文翻譯)

描述:
許多程式設計師依靠直覺編碼,依賴於方便的習慣或他們早期學到的「風格」。他們並不意識到自己所做的所有選擇,例如如何格式化源代碼、為變數使用的名稱或使用的循環類型。他們完全專注於正在解決的問題、正在創建的解決方案以及正在實現的算法。因此,他們以看起來自然、直觀且感覺良好的方式編寫代碼。

但如果你對自己的職業認真,直覺是不夠的。《Perl最佳實踐》的作者Damian Conway解釋說,規則、慣例、標準和實踐不僅幫助程式設計師彼此溝通和協調,還提供了一個可靠的框架來思考問題,以及表達解決方案的共同語言。這在Perl中特別重要,因為該語言旨在提供多種方式來完成相同的任務,因此支持許多不兼容的方言。

Dr. Conway(許多Perl社區的人都熟悉他)以一絲澳洲幽默提供了256條編碼藝術的指導方針,幫助你編寫更好的Perl代碼——事實上,是你能夠編寫的最佳Perl代碼。這些指導方針涵蓋了代碼佈局、命名慣例、數據和控制結構的選擇、程序分解、介面設計和實現、模組化、物件導向、錯誤處理、測試和除錯。

它們旨在協同工作,以產生清晰、穩健、高效、可維護且簡潔的代碼,但Dr. Conway並不假裝這是一套唯一的、普遍的最佳實踐。相反,《Perl最佳實踐》提供了基於實際經驗的連貫且廣泛適用的建議,這些建議是關於代碼實際如何編寫的,而不是某些人對於軟體應該如何創建的空中樓閣理論。

最重要的是,《Perl最佳實踐》提供了實際有效的指導方針,許多全球的開發者已經在使用。就像Perl本身一樣,這些指導方針旨在幫助你完成工作,而不會妨礙你。

目錄:
前言
1. 最佳實踐
三個目標
本書
重新適應
2. 代碼佈局
括號
關鍵字
子程序和變數
內建函數
鍵和索引
運算符
分號
逗號
行長
縮排
標籤
區塊
分塊
其他
垂直對齊
斷行
非終端表達式
按優先順序斷行
賦值
三元運算
列表
自動佈局
3. 命名慣例
標識符
布林值
引用變數
陣列和哈希
底線
大寫
縮寫
模糊縮寫
模糊名稱
實用子程序
4. 值和表達式
字串定界符
空字串
單字符字串
轉義字符
常數
前導零
長數字
多行字串
Here文檔
Here文檔縮排
Here文檔終止符
Here文檔引號
裸字
粗逗號
細逗號
低優先運算符
列表
列表成員資格
5. 變數
字面變數
包變數
本地化
初始化
標點變數
本地化標點變數
匹配變數
美元底線
陣列索引
切片
切片佈局
切片因式分解
6. 控制結構
如果區塊
後綴選擇器
其他後綴修飾符
負控制語句
C風格循環
不必要的下標
必要的下標
迭代器變數
非字面循環迭代器
列表生成
列表選擇
列表轉換
複雜映射
列表處理副作用
多部分選擇
值切換
表格三元運算
do-while循環
線性編碼
分佈式控制
重新執行
循環標籤
7. 文檔
文檔類型
標準範本
擴展標準範本
位置
連續性
位置
技術文檔
註解
算法文檔
說明文檔
防禦性文檔
指示性文檔
論述性文檔
校對
8. 內建函數
排序
反轉列表
反轉標量
固定寬度數據
分隔數據
可變寬度數據
字串評估
自動排序
子字串
哈希值
通配符
睡眠
映射和過濾
實用工具
9. 子程序
調用語法
同義詞
參數列表
命名參數
缺失參數
預設參數值
標量返回值
上下文返回值
多上下文返回值
原型
隱式返回
返回失敗
10. 輸入/輸出
文件句柄
間接文件句柄
本地化文件句柄
清晰開啟
錯誤檢查
清理
輸入循環
基於行的輸入
簡單讀取
強力讀取
標準輸入
打印到文件句柄
簡單提示
互動性
強力提示
進度指示器
自動進度指示器
自動刷新
11. 參考
解引用
括號引用
符號引用
循環引用
12. 正則表達式
擴展格式
行邊界
字串邊界
字串結尾
匹配任何內容
懶惰標誌
括號定界符
其他定界符
元字符
命名字符
屬性
空白
無約束重複
捕獲括號
捕獲值
捕獲變數
分段匹配
表格正則表達式
構建正則表達式
預製正則表達式
替代選擇