LEADER 06308nam 22005533 450 001 9911008927003321 005 20250502195427.0 010 $a9798888650462 010 $a9798888650479 035 $a(MiAaPQ)EBC30751302 035 $a(Au-PeEL)EBL30751302 035 $a(CKB)28275776700041 035 $a(Exl-AI)30751302 035 $a(OCoLC)1401057722 035 $a(MiAaPQ)EBC31929240 035 $a(Au-PeEL)EBL31929240 035 $a(MiAaPQ)EBC31929450 035 $a(OCoLC)1505733107 035 $a(Au-PeEL)EBL31929450 035 $a(OCoLC)1505734587 035 $a(Perlego)4454297 035 $a(EXLCZ)9928275776700041 100 $a20250502d2023 uy 0 101 0 $aeng 135 $aurcnu|||||||| 181 $ctxt$2rdacontent 182 $cc$2rdamedia 183 $acr$2rdacarrier 200 10$aFrom objects to functions $ebuild your software faaster and safer with functional programming and kotlin /$fUberto Barbini 205 $aFirst edition. 210 1$a[Raleigh, North Carolina] :$cThe Pragmatic Programmers, LLC,$d[2023] 210 4$dİ2023 215 $a1 online resource (473 pages) 311 08$aPrint version: Barbini, Uberto From Objects to Functions Sebastopol : Pragmatic Programmers, LLC, The,c2023 9781680508451 320 $aIncludes bibliographical references. 327 $aCover -- Table of Contents -- Acknowledgments -- Preface -- About This Book -- Introduction: Why Functional Programming? -- Why Kotlin? -- What Functional Programming Is Really About -- Unlearning Object-Oriented Programming -- Recap -- 1. Preparing a New Application -- Defining the Sample Application -- Zettai: An Innovative To-Do List Application -- Letting Tests Guide Development -- Setting Up the Project -- Making Unit Tests Functional -- Recap -- Exercises -- 2. Handling HTTP Using Functions -- Kicking Off the Project -- Serving HTML Pages Functionally -- Starting Zettai -- Designing with Arrows -- Serving Lists from a Map -- Recap -- Exercises -- 3. Defining the Domain and Testing It -- Improving the Acceptance Tests -- Using Higher-Order Functions -- Separating the Domain from the Infrastructure -- Driving the Tests from the Domain -- Converting DDT to Pesticide -- Recap -- Exercises -- 4. Modeling the Domain and the Adapters -- Starting a New Story to Modify a List -- Using Functional Dependency Injection -- Debugging Functional Code -- Functional Domain Modeling -- Recap -- Exercises -- 5. Using Events to Modify the State -- Creating and Displaying To-Do Lists -- Storing the State Changes -- Unleashing the Power of Recursion -- Folding Events -- Discovering the Monoid -- Recap -- Exercises -- 6. Executing Commands to Generate Events -- Creating a New List -- Using Commands to Change the State -- Modeling the Domain with States and Events -- Writing Functional State Machines -- Connecting the Hub -- Understanding Commands and Events Better -- Recap -- Exercises -- 7. Handling Errors Functionally -- Handling Errors Better -- Learning Functors and Categories -- Using Functors to Handle Errors -- Working with Outcomes -- Recap -- Exercises -- 8. Using Functors to Project Events -- Projecting Our Events -- Running Queries on Functors. 327 $aThinking in Terms of Functors -- Command and Query Responsibility Segregation (CQRS) -- Recap -- Exercises -- 9. Using Monads to Persist Data Safely -- Persisting Safely -- Connecting to the Database with Kotlin -- Accessing Remote Data in a Functional Way -- Exploring the Power of Monads -- Recap -- Exercises -- 10. Reading Context to Handle Commands -- Accessing the Database with Monads -- Handling Commands with Context Reader -- Querying Projections from Database -- Modeling the Domain with Event Sourcing -- Recap -- Exercises -- 11. Validating Data with Applicatives -- Renaming a List -- Transforming Functions with Two Parameters -- Validating with Validations -- Combining Applicative Functors -- Improving the User Interface -- Recap -- Exercises -- 12. Monitoring and Functional JSON -- Monitoring Our Application -- Structured Logging -- Making JSON Functional -- Meeting Profunctors -- Logging Database Calls -- Recap -- Exercises -- 13. Designing a Functional Architecture -- Chasing Simplicity -- Designing a Whole System -- Translating to Code -- Final Considerations -- Exercises -- A1. What Is Functional Programming? -- The Origins -- Achieving Referential Transparency -- Think in Morphisms -- Recap -- A2. About Functional Kotlin -- Setting Up Kotlin -- Kotlin 101 -- Exploring the Kotlin Type System -- A3. A Pinch of Theory -- Category Theory -- It's All About Morphisms -- Types over Types -- Functors Are Mappers -- The Mysterious Monad -- Connecting Everything with Yoneda -- Conclusion -- A4. Additional Resources -- Programming -- Category Theory -- Bibliography -- Index -- - SYMBOLS - -- - A - -- - B - -- - C - -- - D - -- - E - -- - F - -- - G - -- - H - -- - I - -- - J - -- - K - -- - L - -- - M - -- - N - -- - O - -- - P - -- - Q - -- - R - -- - S - -- - T - -- - U - -- - V - -- - W - -- - Y - -- - Z -. 330 $aFrom Objects to Functions by Uberto Barbini is a comprehensive guide to functional programming, particularly using Kotlin. The book explores the integration of functional programming concepts into real-world applications, emphasizing the benefits of functional patterns such as referential transparency, immutability, and reusability. It provides insights into practical application development, utilizing technologies like http4k and PostgreSQL, and covers topics like functional state machines, error handling, and domain modeling. The author aims to bridge the gap between objects and functions, offering a detailed study for developers interested in enhancing their programming practices. The book is targeted at software developers seeking to expand their understanding of functional programming and its application in modern software development.$7Generated by AI. 606 $aApplication software$xDevelopment 615 0$aApplication software$xDevelopment. 676 $a005.1 700 $aBarbini$b Uberto$01828768 801 0$bMiAaPQ 801 1$bMiAaPQ 801 2$bMiAaPQ 906 $aBOOK 912 $a9911008927003321 996 $aFrom objects to functions$94397685 997 $aUNINA