Code Reading : The Open Source Perspective (Effective Software Development Series)

個数:

Code Reading : The Open Source Perspective (Effective Software Development Series)

  • 在庫がございません。海外の書籍取次会社を通じて出版社等からお取り寄せいたします。
    通常6~9週間ほどで発送の見込みですが、商品によってはさらに時間がかかることもございます。
    重要ご説明事項
    1. 納期遅延や、ご入手不能となる場合がございます。
    2. 複数冊ご注文の場合、分割発送となる場合がございます。
    3. 美品のご指定は承りかねます。
  • 【入荷遅延について】
    世界情勢の影響により、海外からお取り寄せとなる洋書・洋古書の入荷が、表示している標準的な納期よりも遅延する場合がございます。
    おそれいりますが、あらかじめご了承くださいますようお願い申し上げます。
  • ◆画像の表紙や帯等は実物とは異なる場合があります。
  • ◆ウェブストアでの洋書販売価格は、弊社店舗等での販売価格とは異なります。
    また、洋書販売価格は、ご注文確定時点での日本円価格となります。
    ご注文確定後に、同じ洋書の販売価格が変動しても、それは反映されません。
  • 製本 Paperback:紙装版/ペーパーバック版/ページ数 528 p.
  • 言語 ENG
  • 商品コード 9780201799408
  • DDC分類 005.13

Full Description

This book is a unique and essential reference that focuses upon the reading and comprehension of existing software code. While code reading is an important task faced by the vast majority of students, it has been virtually ignored as a discipline by existing references. The book fills this need with a practical presentation of all important code concepts, form, structure, and syntax that a student is likely to encounter. The concepts are supported by examples taken from real-world open source software projects. The focus upon reading code (rather than developing and implementing programs from scratch) provides for a vastly increased breadth of coverage.

Contents

Foreword.


Preface.


1. Introduction.


Why and How to Read Code.



Code as Literature.



Code as Exemplar.



Maintenance.



Evolution.



Reuse.



Inspections.



How to Read this Book.



Typographical Conventions.



Diagrams.



Exercises.



Supplementary Material.



Tools.



Outline.



The Great Language Debate.



2. Basic Programming Elements.


A Complete Program.



Functions and Global Variables.



While, Conditions, Blocks.



Switch.



For.



Break, Continue.



Character and Boolean Expressions.



Goto.



Refactoring in the Small.



Do, Integer Expressions.



Control Structures Revisited.



3. Advanced C Data Types.


Pointers.



Linked Data Structures.



Dynamic Allocation of Data Structures.



Call by Reference.



Data Element Access.



Arrays as Arguments and Results.



Function Pointers.



Pointer as an Alias.



Pointers and Strings.



Direct Memory Access.



Structures.



Grouping Together Data Elements.



Returning Multiple Data Elements from a Function.



Mapping the Organization of Data.



Programming in an Object-Oriented Fashion.



Unions.



Efficient Use of Storage.



Implementing Polymorphism.



Accessing Different Internal Representations.



Dynamic Memory Allocation.



Managing Free Memory.



Structures with Dynamically-Allocated Arrays.



Typedef Declarations.



4. C Data Structures.


Vector.



Matrix and Table.



Stack.



Queue.



Map.



Hash Tables.



Set.



Linked List.



Tree.



Graph.



Node Storage.



Edge Representation.



Edge Storage.



Graph Properties.



Hidden Structures.



Other Representations.



5. Advanced Control Flow.


Recursion.



Exceptions.



Parallelism.



Hardware and Software Parallelism.



Control Models.



Thread Implementations.



Signals.



Nonlocal Jumps.



Macro Substitution.



6. Tackling Large Projects.


Design and Implementation Techniques.



Project Organization.



The Build Process and Makefiles.



Configuration.



Revision Control.



Project-Specific Tools.



Testing.



7. Coding Standards and Conventions.


File Names and Organization.



Indentation.



Formatting.



Naming Conventions.



Programming Practices.



Process Standards.



8. Documentation.


Documentation Types.



Reading Documentation.



Documentation Problems.



Additional Documentation Sources.



Common Open-Source Documentation Formats.



9. Architecture.


System Structures.



Centralized Repository and Distributed Approaches.



Data-Flow.



Object-Oriented.



Layered.



Hierarchies.



Slicing.



Control Models.



Event-Driven Systems.



System Manager.



State Transition.



Element Packaging.



Module.



Namespace.



Object.



Generic Implementation.



Abstract Data Type.



Library.



Process and Filter.



Component.



Data Repository.



Architecture Reuse.



Frameworks.



Code Wizards.



Design Patterns.



Domain-Specific Architectures.



10. Code-Reading Tools.


Regular Expressions.



The Editor as a Code Browser.



Code Searching With Grep.



Locating File Differences.



Roll your Own Tool.



The Compiler as a Code-Reading Tool.



Code Browsers and Beautifiers.



Run-Time Tools.



Non-software Tools.



11. A Complete Example.


Overview.



Attack Plan.



Code Reuse.



Testing and Debugging.



Documentation.



Observations.



Appendix A. Outline of the Code Provided.


Appendix B. Source Code Credits.


Appendix C. Referenced Source Files.


Appendix D. Source Code Licenses.


BSD.



X.



ACE.



Apache.



DemoGL.



OpenCL.



ArgoUML.



Perl.



Appendix E. Maxims for Reading Code.


Bibliography.


Index.


Author Index. 0201799405T01162003