Honesty

 

Book_CodeComplete

Page history last edited by Anonymous 3 yrs ago


Book Details

Code Complete 2

A practical handbook for software construction

  • Steve McConnell
  • Microsoft Press
  • June 2004

 

如何進入程式設計的專業領域

Code Complete 1st edition 中文版

  • 譯者:施威銘研究室
  • 出版社:旗標
  • 出版日期:1995 年 11 月

 

Top


Preface

The gap between the best software engineering practice and the average practice is very wide—perhaps wider than in any other engineering discipline.

A tool that disseminates good practice would be important.

      —Fred Brooks

 

Primary Concern In This Book

  • narrow the gap between the knowledge of industry gurus and professors and common commercial practice
  • shortcut the knowledge delivery process and make key discoveries available to the average programmer

 

Who Should Read This Book?

  • give insight into why you've had problems in the past and show you how to avoid problems in the future
  • help you keep big projects under control and maintain and modify software successfully as the demands change

Experienced Programmers

  • a comprehensive, easy-touse guide to software development

Technical Leads

  • if you read this book and think about each issue, only rarely will someone bring up a construction issue that you haven't previously considered

Self-Taught Programmers

  • give you insight into effective programming practices

Students

  • The practical lore of good coding is often passed down slowly in the ritualistic tribal dances of software architects, project leads, analysts, and more-experienced programmers.

    Even more often, it’s the product of the individual programmer's trials and errors

  • pulls together the helpful tips and effective development strategies previously available mainly by hunting and gathering from other people's experience
  • making the transition from an academic environment to a professional one

 

Where Else Can You Find This Information?

There is nothing mysterious about the effective, high-powered programming techniquesused by expert programmers.

In the day-to-day rush of grinding out the latest project, however, few experts take the time to share what they have learned.

Consequently, programmers may have difficulty finding a good source of programming information.

 

Key Benefits of This Handbook

Complete software-construction reference

  • discusses general aspects of construction such as software quality and ways to think about programming
  • gets into steps in building classes, ins and outs of using data and control structures, debugging, refactoring, and code-tuning techniques and strategies

Ready-to-use checklists

  • includes dozens of checklists you can use to assess your software architecture, design approach, class and routine quality, variable names, control structures, layout, test cases, and much more.

State-of-the-art information

Larger perspective on software development

  • give you a chance to rise above the fray of day-to-day fire fighting and figure out what works and what doesn't
  • inform and stimulate your thinking about your projects, enabling you to take strategic action so that you don't have to fight the same battles again and again

Absence of hype

  • presents balanced discussions of each technique's strengths and weaknesses
  • provides the objective information you need to make good decisions about your specific circumstances

Concepts applicable to most common languages

Numerous code examples

  • contains almost 500 examples of good and bad code
  • learn best from examples

Access to other sources of information

  • "Additional Resources" sections describe other books and articles you can read as you pursue the topics you find most interesting

Book website

  • Updated checklists, books, magazine articles, Web links, and other content are provided on a companion website at cc2e.com

 

Why This Handbook Was Written

  • need for development handbooks that capture knowledge about effective development practices
  • the biggest gains in software-development quality and productivity will come from codifying, unifying, and distributing existing knowledge about effective software-development practices

Construction Has Been Neglected

  • as distinct activities in the software-development life cycle have been identified, some of the best minds in the field have spent their time analyzing and debating methods of project management, requirements, design, and testing.

    The rush to study these newly identified areas has left code construction as the ignorant cousin of software development.

Construction Is Important

  • Code construction typically makes up about 65 percent of the effort on small projects and 50 percent on medium projects.

    Construction accounts for about 75 percent of the errors on small projects and 50 to 75 percent on medium and large projects.

    Any activity that accounts for 50 to 75 percent of the errors presents a clear opportunity for improvement

  • small-scale coding errors account for some of the most expensive software errors of all time, with costs running into hundreds of millions of dollars
  • construction is the only activity that's guaranteed to be done
  • there has to be construction to run a program

 

Top


Chap 1 Welcome to Software Construction

The construction process might include some aspects of planning, designing, and checking your work,

but mostly "construction" refers to the hands-on part of creating something

What Is Software Construction?

Distinct Activities in Software Development

  • Problem definition
  • Requirements development
  • Construction planning
  • Software architecture, or high-level design
  • Detailed design
  • Coding and debugging
  • Unit testing
  • Integration testing
  • Integration
  • System testing
  • Corrective maintenance

Tasks in Construction

  • Verifying that the groundwork has been laid so that construction can proceed successfully
  • Determining how your code will be tested
  • Designing and writing classes and routines
  • Creating and naming variables and named constants
  • Selecting control structures and organizing blocks of statements
  • Unit testing, integration testing, and debugging your own code
  • Reviewing other team members' low-level designs and code and having them review yours
  • Polishing code by carefully formatting and commenting it
  • Integrating software components that were created separately
  • Tuning code to make it smaller and faster

Important Nonconstruction Activities

  • management
  • requirements development
  • software architecture
  • user-interface design
  • system testing
  • maintenance

Why Is Software Construction Important?

  • Construction is a large part of software development

    construction typically takes 30 to 80 percent of the total time spent on a project

  • Construction is the central activity in software development

    Requirements and architecture are done before construction

    System testing is done after construction

  • With a focus on construction, the individual programmmer's productivity can improve enormously
  • Construction's product, the source code, is often the only accurate description of the software

    In many projects, the only documentation available to programmers is the code itself

    Requirements specifications and design documents can go out of date, but the source code is always up to date

  • Construction is the only activity that's guaranteed to be done

    no matter how rushed or poorly planned a project is, you can't drop construction

    Improving construction is thus a way of improving any software-development effort, no matter how abbreviated

Key Points

  • Software construction is the central activity in software development; construction is the only activity that's guaranteed to happen on every project.
  • The main activities in construction are detailed design, coding, debugging, and developer testing.
  • The quality of the construction substantially affects the quality of the software.
  • Your understanding of how to do construction determines how good a programmer you are.

Top


Chap 2 Metaphors for a Richer Understanding of Software Development

The Importance of Metaphors

Metaphor, Modeling

  • Important developments often arise out of analogies.
  • Modeling: By comparing a topic you understand poorly to something similar you understand better,

    you can come up with insights that result in a better understanding of the less-familiar topic.

Comments (0)

You don't have permission to comment on this page.