Code complete

Widely considered one of the best practical guides to programming, Steve McConnell's original CODE COMPLETE has been helping developers write better software for more than a decade. Now this classic book has been fully updated and revised with leading-edge practices-and hundreds of new code sam...

Full description

Bibliographic Details
Main Author: McConnell, Steve (-)
Format: eBook
Language:Inglés
Published: Redmond, Washington : Microsoft Press [2004]
Edition:2nd ed
Series:Developer Best Practices
Subjects:
See on Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009626930106719
Table of Contents:
  • Code Complete; Technical Leads; Self-Taught Programmers; Students; Where Else Can You Find This Information?; Key Benefits of This Handbook; Why This Handbook Was Written; Construction Is Important; No Comparable Book Is Available; Author Note; Acknowledgments; About the Author; I. Laying the Foundation; 1.2. Why Is Software Construction Important?; 1.3. How to Read This Book; Key Points; 2. Metaphors for a Richer Understanding of Software Development; 2.2. How to Use Software Metaphors; 2.3. Common Software Metaphors; Software Farming: Growing a System
  • Software Oyster Farming: System AccretionSoftware Construction: Building Software; Applying Software Techniques: The Intellectual Toolbox; Combining Metaphors; Additional Resources; Key Points; 3. Measure Twice, Cut Once: Upstream Prerequisites; Causes of Incomplete Preparation; Utterly Compelling and Foolproof Argument for Doing Prerequisites Before Construction; Appeal to Analogy; Appeal to Data; Boss-Readiness Test; 3.2. Determine the Kind of Software You&re Working On; Choosing Between Iterative and Sequential Approaches; 3.3. Problem-Definition Prerequisite
  • 3.4. Requirements PrerequisiteThe Myth of Stable Requirements; Handling Requirements Changes During Construction; 3.5. Architecture Prerequisite; Major Classes; Data Design; Business Rules; User Interface Design; Resource Management; Security; Performance; Scalability; Interoperability; Internationalization/Localization; Input/Output; Error Processing; Fault Tolerance; Architectural Feasibility; Overengineering; Buy-vs.-Build Decisions; Reuse Decisions; Change Strategy; General Architectural Quality; 3.6. Amount of Time to Spend on Upstream Prerequisites; Additional Resources
  • Software ArchitectureGeneral Software-Development Approaches; Key Points; 4. Key Construction Decisions; Assembly Language; C; C++; C#; Cobol; Fortran; Java; JavaScript; Perl; PHP; Python; SQL; Visual Basic; 4.2. Programming Conventions; 4.3. Your Location on the Technology Wave; 4.4. Selection of Major Construction Practices; Key Points; II. Creating High-Quality Code; Design Is a Sloppy Process (Even If it Produces a Tidy Result); Design Is About Tradeoffs and Priorities; Design Involves Restrictions; Design Is Nondeterministic; Design Is a Heuristic Process; Design Is Emergent
  • 5.2. Key Design ConceptsImportance of Managing Complexity; How to Attack Complexity; Desirable Characteristics of a Design; Levels of Design; Level 2: Division into Subsystems or Packages; Level 3: Division into Classes; Level 4: Division into Routines; Level 5: Internal Routine Design; 5.3. Design Building Blocks: Heuristics; Form Consistent Abstractions; Encapsulate Implementation Details; Inherit-When Inheritance Simplifies the Design; Hide Secrets (Information Hiding); An Example of Information Hiding; Two Categories of Secrets; Barriers to Information Hiding; Value of Information Hiding
  • Identify Areas Likely to Change