A Practical Guide to Better, Cleaner Code with Functional Programming. In Functional Design, renowned software engineer Robert C. Martin ("Uncle Bob") explains how and why to use functional programming to build better systems for real customers. Martin compares conventional object-oriented coding structures in Java to those enabled by functional languages, identifies the best roles for each, and shows how to build better systems by judiciously using them in context. Martin's approach is pragmatic, minimizing theory in favor of "in the-trenches" problem-solving. Through accessible examples,…mehr
A Practical Guide to Better, Cleaner Code with Functional Programming. In Functional Design, renowned software engineer Robert C. Martin ("Uncle Bob") explains how and why to use functional programming to build better systems for real customers. Martin compares conventional object-oriented coding structures in Java to those enabled by functional languages, identifies the best roles for each, and shows how to build better systems by judiciously using them in context. Martin's approach is pragmatic, minimizing theory in favor of "in the-trenches" problem-solving. Through accessible examples, working developers will discover how the easy-to-learn, semantically rich Clojure language can help them improve code cleanliness, design, discipline, and outcomes. Martin examines well-known SOLID principles and Gang of Four Design Patterns from a functional perspective, revealing why patterns remain extremely valuable to functional programmers, and how to use them to achieve superior results.Hinweis: Dieser Artikel kann nur an eine deutsche Lieferadresse ausgeliefert werden.
Robert C. Martin ("Uncle Bob") wrote his first line of code at the age of 12 in 1964 and has been employed as a programmer since 1970. He is cofounder of cleancoders.com, offering online video training for software developers, and is founder of Uncle Bob Consulting LLC, offering software consulting, training, and skill development services to major corporations worldwide. He served as the Master Craftsman at 8th Light, Inc., a Chicago-based software consulting firm. Mr. Martin has published dozens of articles in various trade journals, authored many books, and is a regular speaker at international conferences and trade shows.
Inhaltsangabe
Foreword xiii Preface xv Acknowledgments xxi About the Author xxiii Part I: Functional Basics 1 Chapter 1: Immutability 3 What Is Functional Programming? 4 The Problem with Assignment 7 So Why Is It Called Functional? 10 No Change of State? 12 Immutability 15 Chapter 2: Persistent Data 17 On Cheating 19 Making Copies 20 Structural Sharing 23 Chapter 3: Recursion and Iteration 27 Iteration 28 Recursion 32 Chapter 4: Laziness 37 Lazy Accumulation 40 OK, but Why? 41 Coda 42 Chapter 5: Statefulness 43 When We MUST Mutate 47 Software Transactional Memory (STM) 48 Life Is Hard, Software Is Harder 51 Part II: Comparative Analysis 53 Chapter 6: Prime Factors 55 Java Version 56 Clojure Version 60 Conclusion 63 Chapter 7: Bowling Game 65 Java Version 66 Clojure Version 71 Conclusion 75 Chapter 8: Gossiping Bus Drivers 77 Java Solution 78 Clojure 88 Conclusion 93 Chapter 9: Object-Oriented Programming 95 Functional Payroll 98 Namespaces and Source Files 107 Conclusion 108 Chapter 10: Types 109 Part III: Functional Design 115 Chapter 11: Data Flow 117 Chapter 12: SOLID 125 The Single Responsibility Principle (SRP) 126 The Open-Closed Principle (OCP) 131 The Liskov Substitution Principle (LSP) 138 The Interface Segregation Principle (ISP) 147 The Dependency Inversion Principle (DIP) 152 Part IV: Functional Pragmatics 181 Chapter 13: Tests 183 But What about the REPL? 184 What about Mocks? 184 Property-Based Testing 186 A Diagnostic Technique 190 Functional 197 Chapter 14: GUI 199 Turtle-Graphics in Quil 200 Chapter 15: Concurrency 215 Conclusion 225 Part V: Design Patterns 227 Chapter 16: Design Patterns Review 229 Patterns in Functional Programming 233 Abstract Server 233 Adapter 236 Command 242 Composite 249 Decorator 260 Visitor 264 Abstract Factory 274 Conclusion 281 Postscript: OO Poison? 282 Part VI: Case Study 285 Chapter 17: Wa-Tor 287 Scratch That Itch 309 Showers Solve Problems 312 It's Time to Wildly Reproduce 322 What about the Sharks? 324 Conclusion 335 Afterword 337 Index 341
Foreword xiii Preface xv Acknowledgments xxi About the Author xxiii Part I: Functional Basics 1 Chapter 1: Immutability 3 What Is Functional Programming? 4 The Problem with Assignment 7 So Why Is It Called Functional? 10 No Change of State? 12 Immutability 15 Chapter 2: Persistent Data 17 On Cheating 19 Making Copies 20 Structural Sharing 23 Chapter 3: Recursion and Iteration 27 Iteration 28 Recursion 32 Chapter 4: Laziness 37 Lazy Accumulation 40 OK, but Why? 41 Coda 42 Chapter 5: Statefulness 43 When We MUST Mutate 47 Software Transactional Memory (STM) 48 Life Is Hard, Software Is Harder 51 Part II: Comparative Analysis 53 Chapter 6: Prime Factors 55 Java Version 56 Clojure Version 60 Conclusion 63 Chapter 7: Bowling Game 65 Java Version 66 Clojure Version 71 Conclusion 75 Chapter 8: Gossiping Bus Drivers 77 Java Solution 78 Clojure 88 Conclusion 93 Chapter 9: Object-Oriented Programming 95 Functional Payroll 98 Namespaces and Source Files 107 Conclusion 108 Chapter 10: Types 109 Part III: Functional Design 115 Chapter 11: Data Flow 117 Chapter 12: SOLID 125 The Single Responsibility Principle (SRP) 126 The Open-Closed Principle (OCP) 131 The Liskov Substitution Principle (LSP) 138 The Interface Segregation Principle (ISP) 147 The Dependency Inversion Principle (DIP) 152 Part IV: Functional Pragmatics 181 Chapter 13: Tests 183 But What about the REPL? 184 What about Mocks? 184 Property-Based Testing 186 A Diagnostic Technique 190 Functional 197 Chapter 14: GUI 199 Turtle-Graphics in Quil 200 Chapter 15: Concurrency 215 Conclusion 225 Part V: Design Patterns 227 Chapter 16: Design Patterns Review 229 Patterns in Functional Programming 233 Abstract Server 233 Adapter 236 Command 242 Composite 249 Decorator 260 Visitor 264 Abstract Factory 274 Conclusion 281 Postscript: OO Poison? 282 Part VI: Case Study 285 Chapter 17: Wa-Tor 287 Scratch That Itch 309 Showers Solve Problems 312 It's Time to Wildly Reproduce 322 What about the Sharks? 324 Conclusion 335 Afterword 337 Index 341
Es gelten unsere Allgemeinen Geschäftsbedingungen: www.buecher.de/agb
Impressum
www.buecher.de ist ein Internetauftritt der buecher.de internetstores GmbH
Geschäftsführung: Monica Sawhney | Roland Kölbl | Günter Hilger
Sitz der Gesellschaft: Batheyer Straße 115 - 117, 58099 Hagen
Postanschrift: Bürgermeister-Wegele-Str. 12, 86167 Augsburg
Amtsgericht Hagen HRB 13257
Steuernummer: 321/5800/1497
USt-IdNr: DE450055826