
| |
| Diomidis Spinellis 从1985年起,就为许多具有创造性的并获得广泛赞誉的商业及开源项目编写和维护超过了250000行代码,与此同时他与逐步完善了本书中所介绍的技术。他从伦敦大学帝国学院获得了软件工程学科的工程学硕士学位和计算机科学学科的博士学位。现在他是雅典经贸大学管理科学及技术系的助理教授。 |
| Figures xiii Tables xix Foreword xxi Preface xxv 1 Introduction 1.1 Why and How to Read Code 1.2 How to Read This Book 2 Basic Programming Elements 2.1 A Complete Program 2.2 Functions and Global Variables 2.3 while Loops, Conditions, and Blocks 2.4 switch Statements 2.5 for Loops 2.6 break and continue Statements 2.7 Character and Boolean Expressions 2.8 goto Statements 2.9 Refactoring in the Small 2.10 do Loops and Integer Expressions 2.11 Control Structures Revisited Further Reading 3 Advanced C Data Types 3.1 Pointers 3.2 Structures 3.3 Unions 3.4 Dynamic Memory Allocation 3.5 typedef Declarations 4 C Data Structures 4.1 Vectors 4.2 Matrices and Tables 4.3 Stacks 4.4 Queues 4.5 Maps 4.6 Sets 4.7 Linked Lists 4.8 Trees 4.9 Graphs Further Reading 5 Advanced Control Flow 5.1 Recursion 5.2 Exceptions 5.3 Parallelism 5.3.1 Hardware and Software Parallelism 5.3.2 Control Models 5.3.3 Thread Implementations 5.4 Signals 5.5 Nonlocal Jumps 5.6 Macro Substitution Further Reading 6 Tackling Large Projects 6.1 Design and Implementation Techniques 6.2 Project Organization 6.3 The Build Process and Makefiles 6.4 Configuration 6.5 Revision Control 6.6 Project-Specific Tools 6.7 Testing Further Reading 7 Coding Standards and Conventions 7.1 File Names and Organization 7.2 Indentation 7.3 Formatting 7.4 Naming Conventions 7.5 Programming Practices 7.6 Process Standards Further Reading 8 Documentation 8.1 Documentation Types 8.2 Reading Documentation 8.3 Documentation Problems 8.4 Additional Documentation Sources 8.5 Common Open-Source Documentation Formats Further Reading 9 Architecture 9.1 System Structures 9.2 Control Models 9.3 Element Packaging 9.4 Architecture Reuse Further Reading 10 Code-Reading Tools 10.1 Regular Expressions 10.2 The Editor as a Code Browser 10.3 Code Searching with grep 10.4 Locating File Differences 10.5 Roll Your Own Tool 10.6 The Compiler as a Code-Reading Tool 10.7 Code Browsers and Beautifiers 10.8 Runtime Tools 10.9 Nonsoftware Tools Tool Availability and Further Reding 11 A Complete Example 11.1 Overview 11.2 Attack Plan 11.3 Code Reuse 11.4 Testing and Debugging 11.5 Documentation 11.6 Observations A Outline of the Code Provided B Source Code Credits C Referenced Source Files D Source Code Licenses D.1 ACE D.2 Apache D.3 ArgoUML D.4 DemoGL D.5 hsqldb D.6 NetBSD D.7 OpenCl D.8 Perl D.9 qtchat D.10 socked D.11 vcf D.12 X Window System E Maxims for Reading Code Bibliography Author Index |
商品评论(0条)