Perl Best Practices (Paperback)
Damian Conway
- 出版商: O'Reilly|英文2書85折
- 出版日期: 2005-08-16
- 定價: $1,400
- 售價: 9.5 折 $1,330
- 貴賓價: 9.0 折 $1,260
- 語言: 英文
- 頁數: 544
- 裝訂: Paperback
- ISBN: 0596001738
- ISBN-13: 9780596001735
-
相關分類:
Perl 程式語言
立即出貨 (庫存 < 4)
買這商品的人也買了...
-
$970Introduction to Algorithms, 2/e
-
$590$466 -
$750$593 -
$490$382 -
$680$537 -
$650$507 -
$450$405 -
$550$468 -
$620$527 -
$880$748 -
$820$697 -
$780$702 -
$490$382 -
$880$581 -
$1,225Data Structures and Algorithms in Java, 4/e
-
$390$332 -
$890$757 -
$780$702 -
$650$507 -
$680$537 -
$720$569 -
$600$480 -
$2,090$1,980 -
$880$695 -
$1,500$1,425
相關主題
商品描述
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中尤其重要,因為該語言設計了許多完成相同任務的方法,因此支持許多不兼容的方言。
澳大利亞幽默風格的Conway博士(Perl社區中的熟面孔)提供了256條關於編碼藝術的指南,以幫助您編寫更好的Perl代碼,事實上是可能的最佳Perl代碼。這些指南涵蓋了代碼佈局、命名慣例、數據和控制結構的選擇、程序分解、界面設計和實現、模塊化、面向對象、錯誤處理、測試和調試。
它們旨在共同產生清晰、強大、高效、可維護和簡潔的代碼,但Conway博士並不聲稱這是唯一真正的、普遍的和明確的最佳實踐集。相反,《Perl最佳實踐》提供了一些建立在實際編碼經驗基礎上的一致且廣泛適用的建議,而不是基於某人對軟體創建應該如何的象牙塔理論。
最重要的是,《Perl最佳實踐》提供的是實際有效的指南,許多全球開發人員已經在使用。就像Perl本身一樣,這些指南旨在幫助您完成工作,而不會妨礙您。
目錄:
前言
1. 最佳實踐
2. 代碼佈局
3. 命名慣例
4. 數據和控制結構的選擇
5. 程序分解
6. 介面設計和實現
7. 模塊化
8. 面向對象
9. 錯誤處理
10. 測試和調試