Code that fits in your head : heuristics for software engineering / (Record no. 2432)

000 -LEADER
fixed length control field 05917nam a22002897a 4500
003 - CONTROL NUMBER IDENTIFIER
control field OSt
005 - DATE AND TIME OF LATEST TRANSACTION
control field 20231108053148.0
008 - FIXED-LENGTH DATA ELEMENTS--GENERAL INFORMATION
fixed length control field 231107b ||||| |||| 00| 0 eng d
020 ## - INTERNATIONAL STANDARD BOOK NUMBER
International Standard Book Number 9780137464401
040 ## - CATALOGING SOURCE
Original cataloging agency CvSU-CCAT Campus Library.
Language of cataloging English.
Transcribing agency CvSU-CCAT Campus Library.
Description conventions rda.
050 ## - LIBRARY OF CONGRESS CALL NUMBER
Classification number CIR QA 76.6
Item number S44 2022
100 ## - MAIN ENTRY--PERSONAL NAME
Personal name Seemann, Mark, author.
9 (RLIN) 7914
245 ## - TITLE STATEMENT
Title Code that fits in your head : heuristics for software engineering /
Statement of responsibility, etc. Mark Seemann.
260 ## - PUBLICATION, DISTRIBUTION, ETC.
Place of publication, distribution, etc. Boston :
Name of publisher, distributor, etc. Addison-Wesley, Pearson Edication Inc.,
Date of publication, distribution, etc. c2022.
300 ## - PHYSICAL DESCRIPTION
Extent xxix, 375 pages :
Other physical details illustrations ;
Dimensions 23 cm.
490 R# - SERIES STATEMENT
Series statement Robert C. Martin series
504 ## - BIBLIOGRAPHY, ETC. NOTE
Bibliography, etc. note Includes bibliographical references.
505 ## - FORMATTED CONTENTS NOTE
Formatted contents note Series Editor Foreword xixPreface xxiiiAbout the Author xxix Part I: Acceleration 1Chapter 1: Art or Science? 3 1.1 Building a House 4 1.2 Growing a Garden 7 1.3 Towards Engineering 8 1.4 Conclusion 14 Chapter 2: Checklists 15 2.1 An Aid to Memory 15 2.2 Checklist for a New Code Base 17 2.3 Adding Checks to Existing Code Bases 29 2.4 Conclusion 32 Chapter 3: Tackling Complexity 33 3.1 Purpose 34 3.2 Why Programming Is Difficult 38 3.3 Towards Software Engineering 44 3.4 Conclusion 46 Chapter 4: Vertical Slice 49 4.1 Start with Working Software 50 4.2 Walking Skeleton 53 4.3 Outside-in 60 4.4 Complete the Slice 77 4.5 Conclusion 85 Chapter 5: Encapsulation 87 5.1 Save the Data 87 5.2 Validation 92 5.3 Protection of Invariants 105 5.4 Conclusion 108 Chapter 6: Triangulation 111 6.1 Short-Term versus Long-Term Memory 111 6.2 Capacity 114 6.3 Conclusion 127 Chapter 7: Decomposition 129 7.1 Code Rot 129 7.2 Code That Fits in Your Brain 136 7.3 Conclusion 153 Chapter 8: API Design 155 8.1 Principles of API Design 156 8.2 API Design Example 168 8.3 Conclusion 176 Chapter 9: Teamwork 177 9.1 Git 178 9.2 Collective Code Ownership 187 9.3 Conclusion 199 Part II: Sustainability 201Chapter 10: Augmenting Code 203 10.1 Feature Flags 204 10.2 The Strangler Pattern 209 10.3 Versioning 218 10.4 Conclusion 220 Chapter 11: Editing Unit Tests 223 11.1 Refactoring Unit Tests 223 11.2 See Tests Fail 233 11.3 Conclusion 234 Chapter 12: Troubleshooting 235 12.1 Understanding 235 12.2 Defects 240 12.3 Bisection 250 12.4 Conclusion 255 Chapter 13: Separation of Concerns 257 13.1 Composition 258 13.2 Cross-Cutting Concerns 267 13.3 Conclusion 274 Chapter 14: Rhythm 275 14.1 Personal Rhythm 276 14.2 Team Rhythm 282 14.3 Conclusion 285 Chapter 15: The Usual Suspects 287 15.1 Performance 288 15.2 Security 292 15.3 Other Techniques 300 15.4 Conclusion 308 Chapter 16: Tour 309 16.1 Navigation 309 16.2 Architecture 318 16.3 Usage 323 16.4 Conclusion 326 Appendix A: List of Practices 329 A.1 The 50/72 Rule 329 A.2 The 80/24 Rule 330 A.3 Arrange Act Assert 330 A.4 Bisection 330 A.5 Checklist for A New Code Base 331 A.6 Command Query Separation 331 A.7 Count the Variables 331 A.8 Cyclomatic Complexity 331 A.9 Decorators for Cross-Cutting Concerns 332 A.10 Devil's Advocate 332 A.11 Feature Flag 332 A.12 Functional Core, Imperative Shell 333 A.13 Hierarchy of Communication 333 A.14 Justify Exceptions from the Rule 333 A.15 Parse, Don't Validate 334 A.16 Postel's Law 334 A.17 Red Green Refactor 334 A.18 Regularly Update Dependencies 335 A.19 Reproduce Defects as Tests 335 A.20 Review Code 335 A.21 Semantic Versioning 335 A.22 Separate Refactoring of Test and Production Code 335 A.23 Slice 336 A.24 Strangler 336 A.25 Threat-Model 337 A.26 Transformation Priority Premise 337 A.27 X-driven Development 337 A.28 X Out Names 338 Bibliography 339Index 349
520 ## - SUMMARY, ETC.
Summary, etc. How to Reduce Code Complexity and Develop Software More Sustainably<br/>"Mark Seemann is well known for explaining complex concepts clearly and thoroughly. In this book he condenses his wide-ranging software development experience into a set of practical, pragmatic techniques for writing sustainable and human-friendly code. This book will be a must-read for every programmer."<br/>--<br/>Scott Wlaschin, author of<br/>Domain Modeling Made Functional<br/>Code That Fits in Your Head offers indispensable, practical advice for writing code at a sustainable pace and controlling the complexity that causes projects to spin out of control.<br/><br/>Reflecting decades of experience helping software teams succeed, Mark Seemann guides you from zero (no code) to deployed features and shows how to maintain a good cruising speed as you add functionality, address cross-cutting concerns, troubleshoot, and optimize. You'll find valuable ideas, practices, and processes for key issues ranging from checklists to teamwork, encapsulation to decomposition, API design to unit testing.<br/><br/>Seemann illuminates his insights with code examples drawn from a complete sample project. Written in C#, they're designed to be clear and useful to anyone who uses any object-oriented language including Java , C++, and Python. To facilitate deeper exploration, all code and extensive commit messages are available for download.<br/>Choose mindsets and processes that work, and escape bad metaphors that don't<br/>Use checklists to liberate yourself, improving outcomes with the skills you already have<br/>Get past “analysis paralysis” by creating and deploying a vertical slice of your application<br/>Counteract forces that lead to code rot and unnecessary complexity<br/>Master better techniques for changing code behavior<br/>Discover ways to solve code problems more quickly and effectively<br/>Think more productively about performance and security<br/>If you've ever suffered through bad projects or had to cope with unmaintainable legacy code, this guide will help you make things better next time and every time.
546 ## - LANGUAGE NOTE
Language note In English text.
650 ## - SUBJECT ADDED ENTRY--TOPICAL TERM
Topical term or geographic name entry element Codage.
9 (RLIN) 7915
650 ## - SUBJECT ADDED ENTRY--TOPICAL TERM
Topical term or geographic name entry element Coding theory.
9 (RLIN) 4012
650 ## - SUBJECT ADDED ENTRY--TOPICAL TERM
Topical term or geographic name entry element Computer programming.
9 (RLIN) 512
700 ## - ADDED ENTRY--PERSONAL NAME
Personal name Martin, Robert C., author.
9 (RLIN) 7916
942 ## - ADDED ENTRY ELEMENTS (KOHA)
Koha item type Book
Classification part QA 76.6 S44 2022
Call number prefix CIR
Source of classification or shelving scheme
Holdings
Withdrawn status Lost status Source of classification or shelving scheme Damaged status Not for loan Collection code Permanent location Current location Shelving location Date acquired Source of acquisition Coded location qualifier Cost, normal purchase price Full call number Barcode Date last seen Copy number Price effective from Koha item type
          Book Cavite State University - CCAT Campus Cavite State University - CCAT Campus GCS 10/16/2023 Purchased GCS 3720.00 CIR QA 76.6 S44 2022 R0013359 11/07/2023 1 11/07/2023 Book

Powered by Koha