注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件工程及軟件方法學(xué)代碼大全(第2版 英文版)

代碼大全(第2版 英文版)

代碼大全(第2版 英文版)

定 價(jià):¥148.00

作 者: (美)Steve McConnell(史蒂夫·邁克康奈爾)
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 程序設(shè)計(jì) 計(jì)算機(jī)/網(wǎng)絡(luò)

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787121273155 出版時(shí)間: 2016-03-01 包裝: 平塑勒單襯
開(kāi)本: 頁(yè)數(shù): 952 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書(shū)是著名IT暢銷(xiāo)書(shū)作者、IEEESoware雜志前主編、具有20年編程與項(xiàng)目管理經(jīng)驗(yàn)的SteveMcConnell十余年前的經(jīng)典著作的全新演繹。第2版做了全面的更新,增加了很多與時(shí)俱進(jìn)的內(nèi)容,包括對(duì)新語(yǔ)言、新的開(kāi)發(fā)過(guò)程與方法論的討論等。這是一本百科全書(shū)式的軟件構(gòu)建手冊(cè),涵蓋了軟件構(gòu)建活動(dòng)的方方面面,尤其強(qiáng)調(diào)提高軟件質(zhì)量的種種實(shí)踐方法。作者特別注重源代碼的可讀性,詳細(xì)討論了類(lèi)和函數(shù)命名、變量命名、數(shù)據(jù)類(lèi)型和控制結(jié)構(gòu)、代碼布局等編程的最基本要素,也討論了防御式編程、表驅(qū)動(dòng)法、協(xié)同構(gòu)建、開(kāi)發(fā)者測(cè)試、性能優(yōu)化等有效開(kāi)發(fā)實(shí)踐,這些都服務(wù)于軟件的首要技術(shù)使命:管理復(fù)雜度。為了培養(yǎng)程序員編寫(xiě)高質(zhì)量代碼的習(xí)慣,書(shū)中展示了大量高質(zhì)量代碼示例。此外,本書(shū)還歸納總結(jié)了來(lái)自專(zhuān)家的經(jīng)驗(yàn)、業(yè)界研究及學(xué)術(shù)成果,列舉了大量軟件開(kāi)發(fā)領(lǐng)域的真實(shí)案例與統(tǒng)計(jì)數(shù)據(jù)。書(shū)中所論述的技術(shù)不僅填補(bǔ)了初級(jí)與高級(jí)編程實(shí)踐之間的空白,而且為程序員們提供了一個(gè)有關(guān)軟件開(kāi)發(fā)技術(shù)的信息來(lái)源。本書(shū)對(duì)經(jīng)驗(yàn)豐富的程序員、技術(shù)帶頭人、自學(xué)的程序員及沒(méi)有太多編程經(jīng)驗(yàn)的學(xué)生都是大有裨益的。

作者簡(jiǎn)介

 ?。溃㏒teve McConnell(史蒂夫·邁克康奈爾)

圖書(shū)目錄

前言 致謝 核對(duì)清單 表目錄 圖目錄 Part I Laying the Foundation 1 Welcome to Software Construction 1.1 What Is Software Construction? 1.2 Why Is Software Construction Important? 1.3 How to Read This Book 2 Metaphors for a Richer Understanding of Software Development 2.1 The Importance of Metaphors 2.2 How to Use Software Metaphors 2.3 Common Software Metaphors 3 Measure Twice, Cut Once: Upstream Prerequisites 3.1 Importance of Prerequisites  3.2 Determine the Kind of Software You’re Working On 3.3 Problem-Definition Prerequisite  3.4 Requirements Prerequisite  3.5 Architecture Prerequisite  3.6 Amount of Time to Spend on Upstream Prerequisites  4 Key Construction Decisions  4.1 Choice of Programming Language 4.2 Programming Conventions  4.3 Your Location on the Technology Wave  4.4 Selection of Major Construction Practices  Part II Creating High-Quality Code 5 Design in Construction  5.1 Design Challenges  5.2 Key Design Concepts  5.3 Design Building Blocks: Heuristics  5.4 Design Practices 5.5 Comments on Popular Methodologies  6 Working Classes  6.1 Class Foundations: Abstract Data Types (ADTs)  6.2 Good Class Interfaces  6.3 Design and Implementation Issues 6.4 Reasons to Create a Class 6.5 Language-Specific Issues  6.6 Beyond Classes: Packages  7 High-Quality Routines 7.1 Valid Reasons to Create a Routine  7.2 Design at the Routine Level 7.3 Good Routine Names  7.4 How Long Can a Routine Be?  7.5 How to Use Routine Parameters  7.6 Special Considerations in the Use of Functions  7.7 Macro Routines and Inline Routines 8 Defensive Programming  8.1 Protecting Your Program from Invalid Inputs 8.2 Assertions  8.3 Error-Handling Techniques  8.4 Exceptions 8.5 Barricade Your Program to Contain the Damage Caused by Errors  8.6 Debugging Aids 8.7 Determining How Much Defensive Programming to Leave in Production Code  8.8 Being Defensive About Defensive Programming 9 The Pseudocode Programming Process  9.1 Summary of Steps in Building Classes and Routines  9.2 Pseudocode for Pros  9.3 Constructing Routines by Using the PPP  9.4 Alternatives to the PPP  Part III Variables 10 General Issues in Using Variables 10.1 Data Literacy 10.2 Making Variable Declarations Easy  10.3 Guidelines for Initializing Variables 10.4 Scope  10.5 Persistence  10.6 Binding Time 10.7 Relationship Between Data Types and Control Structures  10.8 Using Each Variable for Exactly One Purpose  11 The Power of Variable Names  11.1 Considerations in Choosing Good Names  11.2 Naming Specific Types of Data  11.3 The Power of Naming Conventions  11.4 Informal Naming Conventions  11.5 Standardized Prefixes  11.6 Creating Short Names That Are Readable  11.7 Kinds of Names to Avoid  12 Fundamental Data Types  12.1 Numbers in General 12.2 Integers  12.3 Floating-Point Numbers  12.4 Characters and Strings  12.5 Boolean Variables  12.6 Enumerated Types  12.7 Named Constants  12.8 Arrays  12.9 Creating Your Own Types (Type Aliasing)  13 Unusual Data Types  13.1 Structures  13.2 Pointers  13.3 Global Data  Part IV Statements 14 Organizing Straight-Line Code  14.1 Statements That Must Be in a Specific Order  14.2 Statements Whose Order Doesn’t Matter  15 Using Conditionals  15.1 if Statements  15.2 case Statements  16 Controlling Loops  16.1 Selecting the Kind of Loop  16.2 Controlling the Loop  16.3 Creating Loops Easily—From the Inside Out  16.4 Correspondence Between Loops and Arrays  17 Unusual Control Structures  17.1 Multiple Returns from a Routine  17.2 Recursion  17.3 goto  17.4 Perspective on Unusual Control Structures  18 Table-Driven Methods  18.1 General Considerations in Using Table-Driven Methods  18.2 Direct Access Tables  18.3 Indexed Access Tables  18.4 Stair-Step Access Tables  18.5 Other Examples of Table Lookups  19 General Control Issues  19.1 Boolean Expressions  19.2 Compound Statements (Blocks)  19.3 Null Statements  19.4 Taming Dangerously Deep Nesting  19.5 A Programming Foundation: Structured Programming  19.6 Control Structures and Complexity Part V Code Improvements 20 The Software-Quality Landscape  20.1 Characteristics of Software Quality  20.2 Techniques for Improving Software Quality  20.3 Relative Effectiveness of Quality Techniques 20.4 When to Do Quality Assurance  20.5 The General Principle of Software Quality  21 Collaborative Construction 21.1 Overview of Collaborative Development Practices  21.2 Pair Programming  21.3 Formal Inspections 21.4 Other Kinds of Collaborative Development Practices  22 Developer Testing  22.1 Role of Developer Testing in Software Quality  22.2 Recommended Approach to Developer Testing  22.3 Bag of Testing Tricks  22.4 Typical Errors  22.5 Test-Support Tools 22.6 Improving Your Testing  22.7 Keeping Test Records  23 Debugging  23.1 Overview of Debugging Issues  23.2 Finding a Defect  23.3 Fixing a Defect  23.4 Psychological Considerations in Debugging  23.5 Debugging Tools—Obvious and Not-So-Obvious 24 Refactoring  24.1 Kinds of Software Evolution 24.2 Introduction to Refactoring 24.3 Specific Refactorings 24.4 Refactoring Safely  24.5 Refactoring Strategies  25 Code-Tuning Strategies 25.1 Performance Overview  25.2 Introduction to Code Tuning  25.3 Kinds of Fat and Molasses  25.4 Measurement 25.5 Iteration  25.6 Summary of the Approach to Code Tuning  26 Code-Tuning Techniques  26.1 Logic  26.2 Loops 26.3 Data Transformations  26.4 Expressions  26.5 Routines  26.6 Recoding in a Low-Level Language  26.7 The More Things Change, the More They Stay the Same  Part VI System Considerations 27 How Program Size Affects Construction  27.1 Communication and Size  27.2 Range of Project Sizes  27.3 Effect of Project Size on Errors  27.4 Effect of Project Size on Productivity  27.5 Effect of Project Size on Development Activities  28 Managing Construction  28.1 Encouraging Good Coding 28.2 Configuration Management 28.3 Estimating a Construction Schedule  28.4 Measurement  28.5 Treating Programmers as People  28.6 Managing Your Manager  29 Integration  29.1 Importance of the Integration Approach 29.2 Integration Frequency—Phased or Incremental?  29.3 Incremental Integration Strategies  29.4 Daily Build and Smoke Test  30 Programming Tools  30.1 Design Tools  30.2 Source-Code Tools 30.3 Executable-Code Tools  30.4 Tool-Oriented Environments  30.5 Building Your Own Programming Tools  30.6 Tool Fantasyland  Part VII Software Craftsmanship 31 Layout and Style 31.1 Layout Fundamentals  31.2 Layout Techniques 31.3 Layout Styles  31.4 Laying Out Control Structures  31.5 Laying Out Individual Statements  31.6 Laying Out Comments  31.7 Laying Out Routines  31.8 Laying Out Classes  32 Self-Documenting Code  32.1 External Documentation  32.2 Programming Style as Documentation  32.3 To Comment or Not to Comment  32.4 Keys to Effective Comments  32.5 Commenting Techniques 32.6 IEEE Standards  33 Personal Character  33.1 Isn’t Personal Character Off the Topic?  33.2 Intelligence and Humility 33.3 Curiosity  33.4 Intellectual Honesty  33.5 Communication and Cooperation  33.6 Creativity and Discipline 33.7 Laziness  33.8 Characteristics That Don’t Matter As Much As You Might Think  33.9 Habits  34 Themes in Software Craftsmanship 34.1 Conquer Complexity  34.2 Pick Your Process 34.3 Write Programs for People First, Computers Second  34.4 Program into Your Language, Not in It  34.5 Focus Your Attention with the Help of Conventions 34.6 Program in Terms of the Problem Domain 34.7 Watch for Falling Rocks  34.8 Iterate, Repeatedly, Again and Again  34.9 Thou Shalt Rend Software and Religion Asunder  35 Where to Find More Information  35.1 Information About Software Construction  35.2 Topics Beyond Construction  35.3 Periodicals  35.4 A Software Developer’s Reading Plan 35.5 Joining a Professional Organization  Bibliography Index

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) hotzeplotz.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)