Software Engineering Books

809 products


  • 100 Go Mistakes

    Manning Publications 100 Go Mistakes

    Book Synopsis100 Go Mistakes: How to Avoid Them introduces dozens of techniques for writing idiomatic, expressive, and efficient Go code that avoids common pitfalls. By reviewing dozens of interesting, readable examples and real-world case studies, you'll explore mistakes that even experienced Go programmers make. This book is focused on pure Go code, with standards you can apply to any kind of project. As you go, you'll navigate the tricky bits of handling JSON data and HTTP services, discover best practices for Go code organization, and learn how to use slices efficiently. Your code speed and quality will enjoy a huge boost when you improve your concurrency skills, deal with error management idiomatically, and increase the quality of your tests. About the Technology Go is simple to learn, yet hard to master. Even experienced Go developers may end up introducing bugs and inefficiencies into their code. This book accelerates your understanding of Go's quirks, helping you correct mistakes and dodge pitfalls on your path to Go mastery.Trade Review"This book is one any Golang developer will want on their bookshelf. Far from being dogmatic or prescriptive, it often provides multiple solutions to the reader, leaving some room for flexibility and individual taste." Thad Meyer "Goes beyond the basics with lots of good examples for when concepts are tough to grasp. As someone who's been coding Go for about 2 years, I learned new things." Matt Welke "This book felt catered to me. I'm not a developer by career path, however it provides a LOT of insight into what I should be thinking about as someone without any education or formal training in Software Development. Really, really nice." Francis J. Setash "This book not only points out common mistakes and anti-patterns, it provides solutions—a perfect combination for deeper learning." Kevin Liao "Read this, it'll give you years of experience of Go just learning from the book. Very valuable!" Keith Kim

    £34.19

  • Clean Architecture

    Pearson Education (US) Clean Architecture

    Book SynopsisRobert C. Martin (Uncle Bob) has been a programmer since 1970. He is founder of Uncle Bob Consulting, LLC, and cofounder with his son Micah Martin of The Clean Coders LLC. Martin has published dozens of articles in various trade journals and is a regular speaker at international conferences and trade shows. He has authored and edited many books, including: Designing Object Oriented C++ Applications Using the Booch Method, Patterns Languages of Program Design 3, More C++ Gems, Extreme Programming in Practice, Agile Software Development: Principles, Patterns, and Practices, UML for Java Programmers, Clean Code, and The Clean Coder. A leader in the industry of software development, Martin served for three years as editor-in-chief of the C++ Report, and he served as the first chairman of the Agile Alliance.Table of Contents Foreword xv Preface xix Acknowledgments xxiii About the Author xxv Part I: Introduction 1 Chapter 1: What Is Design and Architecture? 3 The Goal? 4 Case Study 5 Conclusion 12 Chapter 2: A Tale of Two Values 13 Behavior 14 Architecture 14 The Greater Value 15 Eisenhower’s Matrix 16 Fight for the Architecture 18 Part II: Starting with the Bricks: Programming Paradigms 19 Chapter 3: Paradigm Overview 21 Structured Programming 22 Object-Oriented Programming 22 Functional Programming 22 Food for Thought 23 Conclusion 24 Chapter 4: Structured Programming 25 Proof 27 A Harmful Proclamation 28 Functional Decomposition 29 No Formal Proofs 30 Science to the Rescue 30 Tests 31 Conclusion 31 Chapter 5: Object-Oriented Programming 33 Encapsulation? 34 Inheritance? 37 Polymorphism? 40 Conclusion 47 Chapter 6: Functional Programming 49 Squares of Integers 50 Immutability and Architecture 52 Segregation of Mutability 52 Event Sourcing 54 Conclusion 56 Part III: Design Principles 57 Chapter 7: SRP: The Single Responsibility Principle 61 Symptom 1: Accidental Duplication 63 Symptom 2: Merges 65 Solutions 66 Conclusion 67 Chapter 8: OCP: The Open-Closed Principle 69 A Thought Experiment 70 Directional Control 74 Information Hiding 74 Conclusion 75 Chapter 9: LSP: The Liskov Substitution Principle 77 Guiding the Use of Inheritance 78 The Square/Rectangle Problem 79 LSP and Architecture 80 Example LSP Violation 80 Conclusion 82 Chapter 10: ISP: The Interface Segregation Principle 83 ISP and Language 85 ISP and Architecture 86 Conclusion 86 Chapter 11: DIP: The Dependency Inversion Principle 87 Stable Abstractions 88 Factories 89 Concrete Components 91 Conclusion 91 Part IV: Component Principles 93 Chapter 12: Components 95 A Brief History of Components 96 Relocatability 99 Linkers 100 Conclusion 102 Chapter 13: Component Cohesion 103 The Reuse/Release Equivalence Principle 104 The Common Closure Principle 105 The Common Reuse Principle 107 The Tension Diagram for Component Cohesion 108 Conclusion 110 Chapter 14: Component Coupling 111 The Acyclic Dependencies Principle 112 Top-Down Design 118 The Stable Dependencies Principle 120 The Stable Abstractions Principle 126 Conclusion 132 Part V: Architecture 133 Chapter 15: What Is Architecture? 135 Development 137 Deployment 138 Operation 138 Maintenance 139 Keeping Options Open 140 Device Independence 142 Junk Mail 144 Physical Addressing 145 Conclusion 146 Chapter 16: Independence 147 Use Cases 148 Operation 149 Development 149 Deployment 150 Leaving Options Open 150 Decoupling Layers 151 Decoupling Use Cases 152 Decoupling Mode 153 Independent Develop-ability 153 Independent Deployability 154 Duplication 154 Decoupling Modes (Again) 155 Conclusion 158 Chapter 17: Boundaries: Drawing Lines 159 A Couple of Sad Stories 160 FitNesse 163 Which Lines Do You Draw, and When Do You Draw Them? 165 What About Input and Output? 169 Plugin Architecture 170 The Plugin Argument 172 Conclusion 173 Chapter 18: Boundary Anatomy 175 Boundary Crossing 176 The Dreaded Monolith 176 Deployment Components 178 Threads 179 Local Processes 179 Services 180 Conclusion 181 Chapter 19: Policy and Level 183 Level 184 Conclusion 187 Chapter 20: Business Rules 189 Entities 190 Use Cases 191 Request and Response Models 193 Conclusion 194 Chapter 21: Screaming Architecture 195 The Theme of an Architecture 196 The Purpose of an Architecture 197 But What About the Web? 197 Frameworks Are Tools, Not Ways of Life 198 Testable Architectures 198 Conclusion 199 Chapter 22: The Clean Architecture 201 The Dependency Rule 203 A Typical Scenario 207 Conclusion 209 Chapter 23: Presenters and Humble Objects 211 The Humble Object Pattern 212 Presenters and Views 212 Testing and Architecture 213 Database Gateways 214 Data Mappers 214 Service Listeners 215 Conclusion 215 Chapter 24: Partial Boundaries 217 Skip the Last Step 218 One-Dimensional Boundaries 219 Facades 220 Conclusion 220 Chapter 25: Layers and Boundaries 221 Hunt the Wumpus 222 Clean Architecture? 223 Crossing the Streams 226 Splitting the Streams 227 Conclusion 228 Chapter 26: The Main Component 231 The Ultimate Detail 232 Conclusion 237 Chapter 27: Services: Great and Small 239 Service Architecture? 240 Service Benefits? 240 The Kitty Problem 242 Objects to the Rescue 244 Component-Based Services 245 Cross-Cutting Concerns 246 Conclusion 247 Chapter 28: The Test Boundary 249 Tests as System Components 250 Design for Testability 251 The Testing API 252 Conclusion 253 Chapter 29: Clean Embedded Architecture 255 App-titude Test 258 The Target-Hardware Bottleneck 261 Conclusion 273 Part VI: Details 275 Chapter 30: The Database Is a Detail 277 Relational Databases 278 Why Are Database Systems So Prevalent? 279 What If There Were No Disk? 280 Details 281 But What about Performance? 281 Anecdote 281 Conclusion 283 Chapter 31: The Web Is a Detail 285 The Endless Pendulum 286 The Upshot 288 Conclusion 289 Chapter 32: Frameworks Are Details 291 Framework Authors 292 Asymmetric Marriage 292 The Risks 293 The Solution 294 I Now Pronounce You … 295 Conclusion 295 Chapter 33: Case Study: Video Sales 297 The Product 298 Use Case Analysis 298 Component Architecture 300 Dependency Management 302 Conclusion 302 Chapter 34: The Missing Chapter 303 Package by Layer 304 Package by Feature 306 Ports and Adapters 308 Package by Component 310 The Devil Is in the Implementation Details 315 Organization versus Encapsulation 316 Other Decoupling Modes 319 Conclusion: The Missing Advice 321 Part VII: Appendix 323 Appendix A Architecture Archaeology 325 Index 375

    £28.49

  • User Story Mapping

    O'Reilly Media User Story Mapping

    Book SynopsisUser story mapping is a valuable tool for software development, once you understand why and how to use it. This insightful book examines how this often misunderstood technique can help your team stay focused on users and their needs without getting lost in the enthusiasm for individual product features

    £25.59

  • Software Engineering Global Edition

    Pearson Education Software Engineering Global Edition

    15 in stock

    Book SynopsisProfessor Ian Sommerville is an Emeritus Professor at the School of Computer Science, University of St. Andrews. His research interests are focused on dependable socio-technical systems and incorporating their techniques in systems engineering processesTable of ContentsPart 1 Introduction to Software Engineering Chapter 1: Introduction Chapter 2: Software processes Chapter 3: Agile software development Chapter 4: Requirements engineering Chapter 5: System modeling Chapter 6: Architectural design Chapter 7: Design and Implementation Chapter 8: Software testing Chapter 9: Software Evolution Part 2 System Dependability and Security Chapter 10: Dependable Systems Chapter 11: Reliability engineering Chapter 12: Safety Engineering Chapter 13: Security Engineering Chapter 14: Resilience Engineering Part 3 Advanced Software Engineering Chapter 15: Software Reuse Chapter 16: Component-based Software Engineering Chapter 17: Distributed Software Engineering Chapter 18: Service-oriented Software Engineering Chapter 19: Systems engineering Chapter 20: Systems of systems Chapter 21: Real-time software engineering Part 4 Software management Chapter 22: Project management Chapter 23: Project planning Chapter 24: Quality management Chapter 25: Configuration management Glossary Appendix: System requirements for the MentCare system

    15 in stock

    £75.04

  • Data Mesh

    O'Reilly Media Data Mesh

    20 in stock

    Book SynopsisIn this practical book, author Zhamak Dehghani introduces data mesh, a decentralized sociotechnical paradigm drawn from modern distributed architecture that provides a new approach to sourcing, sharing, accessing, and managing analytical data at scale.

    20 in stock

    £47.99

  • Balancing Coupling in Software Design

    Pearson Education Balancing Coupling in Software Design

    5 in stock

    Book SynopsisVlad Khononov is a software engineer with extensive industry experience, working for companies large and small in roles ranging from webmaster to chief architect. His core areas of expertise are distributed systems and software design. Vlad consults with companies to make sense of their business domains, untangle monoliths, and tackle complex architectural challenges. Vlad maintains an active media career as a public speaker and author. Prior to Balancing Coupling in Software Design, he authored the best-selling O'Reilly book Learning Domain-Driven Design. He is a sought-after keynote speaker, presenting on topics such as domain-driven design, microservices, and software architecture in general.

    5 in stock

    £31.49

  • Engineering Software Products An Introduction to

    Pearson Education Limited Engineering Software Products An Introduction to

    4 in stock

    Book Synopsis

    4 in stock

    £73.14

  • User Stories Applied

    Pearson Education (US) User Stories Applied

    5 in stock

    Book SynopsisMike Cohn is the founder of Mountain Goat Software, a process and project management consultancy and training firm. With more than twenty years of experience, Mike has been a technology executive in companies ranging from start-ups to Fortune 40s, and is a founding member of the Agile Alliance. He frequently contributes to industry-related magazines and presents regularly at conferences. He is the author of User Stories Applied (Addison-Wesley, 2004).Table of Contents Foreword. Acknowledgments. Introduction. I: GETTING STARTED. 1: An Overview. What Is a User Story? Where Are the Details? “How Long Does It Have to Be?” The Customer Team. What Will the Process Be Like? Planning Releases and Iterations. What Are Acceptance Tests? Why Change? Summary. Questions. 2: Writing Stories. Independent. Negotiable. Valuable to Purchasers or Users. Estimatable. Small. Testable. Summary. Developer Responsibilities. Customer Responsibilities. Questions. 3: User Role Modeling. User Roles. Role Modeling Steps. Two Additional Techniques. What If I Have On-Site Users? Summary. Developer Responsibilities. Customer Responsibilities. Questions. 4: Gathering Stories. Elicitation and Capture Should Be Illicit. A Little Is Enough, or Is It? Techniques. User Interviews. Questionnaires. Observation. Story-Writing Workshops. Summary. Developer Responsibilities. Customer Responsibilities. Questions. 5: Working with User Proxies. The Users' Manager. A Development Manager. Salespersons. Domain Experts. The Marketing Group. Former Users. Customers. Trainers and Technical Support. Business or Systems Analysts. What to Do When Working with a User Proxy. Can You Do It Yourself? Constituting the Customer Team. Summary. Developer Responsibilities. Customer Responsibilities. Questions. 6: Acceptance Testing User Stories. Write Tests Before Coding. The Customer Specifies the Tests. Testing Is Part of the Process. How Many Tests Are Too Many? The Framework for Integrated Test. Types of Testing. Summary. Developer Responsibilities. Customer Responsibilities. Questions. 7: Guidelines for Good Stories. Start with Goal Stories. Slice the Cake. Write Closed Stories. Put Constraints on Cards. Size the Story to the Horizon. Keep the UI Out as Long as Possible. Some Things Aren't Stories. Include User Roles in the Stories. Write for One User. Write in Active Voice. Customer Writes. Don't Number Story Cards. Don't Forget the Purpose. Summary. Questions. II: ESTIMATING AND PLANNING. 8: Estimating User Stories. Story Points. Estimate as a Team. Estimating. Triangulate. Using Story Points. What If We Pair Program? Some Reminders. Summary. Developer Responsibilities. Customer Responsibilities. Questions. 9: Planning a Release. When Do We Want the Release? What Would You Like in It? Prioritizing the Stories. Mixed Priorities. Risky Stories. Prioritizing Infrastructural Needs. Selecting an Iteration Length. From Story Points to Expected Duration. The Initial Velocity. Creating the Release Plan. Summary. Developer Responsibilities. Customer Responsibilities. Questions. 10: Planning an Iteration. Iteration Planning Overview. Discussing the Stories. Disaggregating into Tasks. Accepting Responsibility. Estimate and Confirm. Summary. Developer Responsibilities. Customer Responsibilities. Questions. 11: Measuring and Monitoring Velocity. Measuring Velocity. Planned and Actual Velocity. Iteration Burndown Charts. Burndown Charts During an Iteration. Summary. Developer Responsibilities. Customer Responsibilities. Questions. III: FREQUENTLY DISCUSSED TOPICS. 12: What Stories Are Not. User Stories Aren't IEEE 830. User Stories Are Not Use Cases. User Stories Aren't Scenarios. Summary. Questions. 13: Why User Stories? Verbal Communication. User Stories Are Comprehensible. User Stories Are the Right Size for Planning. User Stories Work for Iterative Development. Stories Encourage Deferring Detail. Stories Support Opportunistic Development. User Stories Encourage Participatory Design. Stories Build Up Tacit Knowledge. Why Not Stories? Summary. Developer Responsibilities. Customer Responsibilities. Questions. 14: A Catalog of Story Smells. Stories Are Too Small. Interdependent Stories. Goldplating. Too Many Details. Including User Interface Detail Too Soon. Thinking Too Far Ahead. Splitting Too Many Stories. Customer Has Trouble Prioritizing. Customer Won't Write and Prioritize the Stories. Summary. Developer Responsibilities. Customer Responsibilities. Questions. 15: Using Stories with Scrum. Scrum Is Iterative and Incremental. The Basics of Scrum. The Scrum Team. The Product Backlog. The Sprint Planning Meeting. The Sprint Review Meeting. The Daily Scrum Meeting. Adding Stories to Scrum. A Case Study. Summary. Questions. 16: Additional Topics. Handling NonFunctional Requirements. Paper or Software? User Stories and the User Interface. Retaining the Stories. Stories for Bugs. Summary. Developer Responsibilities. Customer Responsibilities. Questions. IV: AN EXAMPLE. 17: The User Roles. The Project. Identifying the Customer. Identifying Some Initial Roles. Consolidating and Narrowing. Role Modeling. Adding Personas. 18: The Stories. Stories for Teresa. Stories for Captain Ron. Stories for a Novice Sailor. Stories for a Non-Sailing Gift Buyer. Stories for a Report Viewer. Some Administration Stories. Wrapping Up. 19: Estimating the Stories. The First Story. Advanced Search. Rating and Reviewing. Accounts. Finishing the Estimates. All the Estimates. 20: The Release Plan. Estimating Velocity. Prioritizing the Stories. The Finished Release Plan. 21: The Acceptance Tests. The Search Tests. Shopping Cart Tests. Buying Books. User Accounts. Administration. Testing the Constraints. A Final Story. V: APPENDICES. Appendix A: An Overview of Extreme Programming. Roles. The Twelve Practices. XP's Values. The Principles of XP. Summary. Appendix B: Answers to Questions. Chapter 1, An Overview. Chapter 2, Writing Stories. Chapter 3, User Role Modeling. Chapter 4, Gathering Stories. Chapter 5, Working with User Proxies. Chapter 6, Acceptance Testing User Stories. Chapter 7, Guidelines for Good Stories. Chapter 8, Estimating User Stories. Chapter 9, Planning a Release. Chapter 10, Planning an Iteration. Chapter 11, Measuring and Monitoring Velocity. Chapter 12, What Stories Are Not. Chapter 13, Why User Stories? Chapter 14, A Catalog of Story Smells. Chapter 15, Using Stories with Scrum. Chapter 16, Additional Topics. References. Index.

    5 in stock

    £38.47

  • Effective Software Testing

    Manning Publications Effective Software Testing

    Book SynopsisEffective Software Testing is a hands-on guide to creating high quality tests, from your first line of code through pre-delivery checks. It's full of techniques drawn from proven research in software engineering. You'll learn to efficiently engineer tests specifically for your software and end reliance on generic testing practices that may be right for every project. Each chapter puts a new technique into practice with source code samples, real-world tradeoffs, and answers to the common questions developers pose about testing. You'll learn how to scrutinize your requirements for potential tests, generate tests from your code structure, and engineer rigorous suites of unit, integration, and system tests. Go beyond unit tests! Great software testing makes the entire development process more efficient, from understanding your code before you write it to catching bugs in tricky corner cases.Effective Software Testing teaches you a systematic approach to software testing. You'll master easy-to-apply techniques to create strong test suites that are specifically engineered for your code. Following real-world use cases and detailed code samples, you'll soon be engineering tests that find the bugs hiding in edge cases and the parts of code you would never think of testing! Along the way, you'll develop an intuition for testing that can save years of learning by trial and error.Table of Contentstable of contents READ IN LIVEBOOK 1EFFECTIVE AND SYSTEMATIC SOFTWARE TESTING READ IN LIVEBOOK 2SPECIFICATION-BASED TESTING READ IN LIVEBOOK 3STRUCTURAL TESTING AND CODE COVERAGE READ IN LIVEBOOK 4DESIGNING CONTRACTS READ IN LIVEBOOK 5PROPERTY-BASED TESTING READ IN LIVEBOOK 6TEST DOUBLES AND MOCKS READ IN LIVEBOOK 7DESIGNING FOR TESTABILITY READ IN LIVEBOOK 8TEST-DRIVEN DEVELOPMENT READ IN LIVEBOOK 9LARGER TESTS READ IN LIVEBOOK 10TEST CODE QUALITY READ IN LIVEBOOK 11WRAPPING UP THE BOOK APPENDIXES READ IN LIVEBOOK APPENDIX A: ANSWERS

    £36.09

  • Working Effectively with Legacy Code

    Pearson Education (US) Working Effectively with Legacy Code

    4 in stock

    Book SynopsisMICHAEL C. FEATHERS works for Object Mentor, Inc., one of the world's top providers of mentoring, skill development, knowledge transfer, and leadership services in software development. He currently provides worldwide training and mentoring in Test-Driven Development (TDD), Refactoring, OO Design, Java, C#, C++, and Extreme Programming (XP). Michael is the original author of CppUnit, a C++ port of the JUnit testing framework, and FitCpp, a C++ port of the FIT integrated-testing framework. A member of ACM and IEEE, he has chaired CodeFest at three OOPSLA conferences. Copyright Pearson Education. All rights reserved.Table of Contents I. THE MECHANICS OF CHANGE. 1. Changing Software. 2. Working with Feedback. 3. Sensing and Separation. 4. The Seam Model. 5. Tools. II. CHANGING SOFTWARE. 6. I Don’t Have Much Time and I Have To Change It. 7. It Takes Forever To Make a Change. 8. How Do I Add a Feature? 9. I Can’t Get This Class into a Test Harness. 10. I Can’t Run This Method into a Test Harness. 11. I Need to Make a Change. What Methods Should I Test? 12. I Need to Make Many Changes In One Area Do I Have To Break. 13. I Need To Make a Change but I Don’t Know What Tests To Write. 14. Dependencies on Libraries Are Killing Me. 15. My Application Is All API Calls. 16. I Don’t Understand the Code Well Enough To Change It. 17. My Application Has No Structure. 18. My Test Code Is in the Way. 19. My Project Is Not Object-Oriented. How Do I Make Safe Changes? 20. This Class Is Too Big and I Don’t Want It to Get Any Bigger. 21. I’m Changing The Same Code All Over the Place. 22. I Need To Change a Monster Method and I Can’t Write Tests for It. 23. How Do I Know That I’m Not Breaking Anything? 24. We Feel Overwhelmed. It Isn’t Going To Get Any Better. III. DEPENDENCY BREAKING TECHNIQUES. 25. Dependency Breaking Techniques. Appendix: Refactoring. Glossary.

    4 in stock

    £43.19

  • Continuous Delivery

    Pearson Education (US) Continuous Delivery

    3 in stock

    Book SynopsisDave Farley has been having fun with computers for nearly 30 years. Over that period he has worked on most types of software, from firmware, through tinkering with operating systems and device drivers, to writing games, and commercial applications of all shapes and sizes. He started working in large scale distributed systems about 20 years ago, doing research into the development of loose-coupled, message-based systems - a forerunner of SOA. He has a wide range of experience leading the development of complex software in teams, both large and small, in the UK and USA. Dave was an early adopter of agile development techniques, employing iterative development, continuous integration and significant levels of automated testing on commercial projects from the early 1990s. He honed his approach to agile development in his four and a half year stint at ThoughtWorks where he was a technical principal working on some of their biggest and most challenging projects. Dave is cTrade Review"If you need to deploy software more frequently, this book is for you. Applying it will help you reduce risk, eliminate tedious work, and increase confidence. I'll be using the principles and practices here on all my current projects." -Kent Beck, Three Rivers Institute "Whether or not your software development team already understands that continuous integration is every bit as necessary as source code control, this is required reading. This book is unique in tying the whole development and delivery process together, providing a philosophy and principles, not just techniques and tools. The authors make topics from test automation to automated deployment accessible to a wide audience. Everyone on a development team, including programmers, testers, system administrators, DBAs, and managers, needs to read this book." -Lisa Crispin, co-author of Agile Testing "For many organizations Continuous Delivery isn't just a deployment methodology, it's critical to doing business. This book shows you how to make Continuous Delivery an effective reality in your environment." -James Turnbull, author of Pulling Strings with Puppet "A clear, precise, well-written book that gives readers an idea of what to expect for the release process. The authors give a step-by-step account of expectations and hurdles for software deployment. This book is a necessity for any software engineer's library." -Leyna Cotran, Institute for Software Research, University of California, Irvine "Humble and Farley illustrates what makes fast-growing web applications successful. Continuous deployment and delivery has gone from controversial to commonplace and this book covers it excellently. It's truly the intersection of development and operations on many levels, and these guys nailed it." -John Allspaw, VP Technical Operations, Etsy.com and author of The Art of Capacity Planning and Web Operations "If you are in the business of building and delivering a software-based service, you would be well served to internalize the concepts that are so clearly explained in Continuous Delivery. But going beyond just the concepts, Humble and Farley provide an excellent playbook for rapidly and reliably delivering change." -Damon Edwards, President of DTO Solutions and co-editor of dev2ops.org "I believe that anyone who deals with software releases would be able to pick up this book, go to any chapter and quickly get valuable information; or read the book from cover to cover and be able to streamline their build and deploy process in a way that makes sense for their organization. In my opinion, this is an essential handbook for building, deploying, testing, and releasing software." -Sarah Edrie, Director of Quality Engineering, Harvard Business School "Continuous Delivery is the logical next step after Continuous Integration for any modern software team. This book takes the admittedly ambitous goal of constantly delivering valuable software to customers, and makes it achievable through a set of clear, effective principles and practices." -Rob Sanheim, Principal at Relevance, Inc.Table of ContentsForeword by Martin Fowler Preface Acknowledgements About the Authors Part I Foundations 1 The Problem of Delivering Software 2 Configuration Management 3 Continuous Integration 4 Implementing a Testing Strategy Part II The Deployment Pipeline 5 Anatomy of the Deployment Pipeline 6 Build and deployment scripting 7 Commit Testing Stage 8 Automated Acceptance Testing 9 Testing Non-Functional Requirements 10 Deploying and Releasing Applications Part III The Delivery Ecosystem 11 Managing infrastructure and environments 12 Managing Data 13 Managing components and dependencies 14 Advanced version control 15 Managing Continuous Delivery Bibliography Index

    3 in stock

    £40.04

  • The Software Architect Elevator

    O'Reilly Media The Software Architect Elevator

    Book SynopsisIn this guide, author Gregor Hohpe shares real-world advice and hard-learned lessons from actual IT transformations. His anecdotes help architects, senior developers, and other IT professionals prepare for a more complex but rewarding role in the enterprise.

    £39.74

  • Street Coder

    Manning Publications Street Coder

    5 in stock

    Book SynopsisSoftware development isn't an "ivory tower" exercise.Street coders get the job done by prioritizing tasks, making quick decisions, and knowing which rules to break. Street Coder: Rules to break and how to break themis a programmer's survival guide, full of tips, tricks, and hacks that will make you a more efficient programmer. This book's rebel mindset challenges status quo thinking and exposes the important skills you need on the job. You'll learnthe crucial importance of algorithms and data structures, turn programming chores into programming pleasures, and shatter dogmatic principles keeping you from your full potential. Every new coder starts out with a lot of theory; the "streetsmarts" come with experience. To be successful, you need to know how toput theory into action, understand why "best practices" are the best, and know when to go rogue and break the unbreakable rules.Trade Review“An incredible book to learn the craft of software development through a new perspective: One thatis not fuelled by religion or blind following of best practices, but one that actively challenges best practices and thus requires you to think about their prosand cons.!” Sebastian Felling “This is like having a mentor in a book who is sharing all their mistakes and notes on what they've learned in a nice little package.“ Joseph Perenia “A fun, broad, anddeep conversation with an experienced programmer about coding, packed withpractical advice.” Adail Retamal “I wish I couldread this book several years ago, thus, I could have saved a lot of time.” XuYang “Contains the pragmatism an experienced software developer has gained over the years of being at the trenches (or streets as he prefers to call it).” Orlando MéndezMorales “Great book for thenew and used, self-taught, formally educated, and otherwise curious programmers doing dirt -aka street coders.” Robert Wilk

    5 in stock

    £47.22

  • Test Driven Development

    Pearson Education (US) Test Driven Development

    7 in stock

    Book SynopsisKent Beck consistently challenges software engineering dogma, promoting ideas like patterns, test-driven development, and Extreme Programming. Currently affiliated with Three Rivers Institute and Agitar Software, he is the author of many Addison-Wesley titles.Table of Contents Preface. Acknowledgments. Introduction. I. THE MONEY EXAMPLE. 1. Multi-Currency Money. 2. Degenerate Objects. 3. Equality for All. 4. Privacy. 5. Franc-ly Speaking. 6. Equality for All, Redux. 7. Apples and Oranges. 8. Makin' Objects. 9. Times We're Livin' In. 10. Interesting Times. 11. The Root of All Evil. 12. Addition, Finally. 13. Make It. 14. Change. 15. Mixed Currencies. 16. Abstraction, Finally. 17. Money Retrospective. II. The xUnit Example. 18. First Steps to xUnit. 19. Set the Table. 20. Cleaning Up After. 21. Counting. 22. Dealing with Failure. 23. How Suite It Is. 24. xUnit Retrospective. III. Patterns for Test-Driven Development. 25. Test-Driven Development Patterns. 26. Red Bar Patterns. 27. Testing Patterns. 28. Green Bar Patterns. 29. xUnit Patterns. 30. Design Patterns. 31. Refactoring. 32. Mastering TDD. Appendix I: Influence Diagrams. Appendix II: Fibonacci. Afterword. Index. 0321146530T10172002

    7 in stock

    £33.29

  • Designing Interfaces

    O'Reilly Media Designing Interfaces

    2 in stock

    Book SynopsisBy capturing UI best practices as design patterns, this best-selling book provides solutions to common design problems. You'll learn patterns for mobile apps, web applications, and desktop software.

    2 in stock

    £42.39

  • Exploring Arduino  Tools and Techniques for

    John Wiley & Sons Inc Exploring Arduino Tools and Techniques for

    1 in stock

    Book SynopsisThe bestselling beginner Arduino guide, updated with new projects! Exploring Arduino makes electrical engineering and embedded software accessible. Learn step by step everything you need to know about electrical engineering, programming, and human-computer interaction through a series of increasingly complex projects.Table of ContentsIntroduction xxv Part I Arduino Engineering Basics 1 1 Getting Started and Understanding the Arduino Landscape 3 Exploring the Arduino Ecosystem 4 Arduino Functionality 5 The Microcontroller 7 Programming Interfaces 8 Input/Output: GPIO, ADCs, and Communication Busses 9 Power 9 Arduino Boards 11 Creating Your First Program 15 Downloading and Installing the Arduino IDE 16 Running the IDE and Connecting to the Arduino 17 Breaking Down Your First Program 18 Summary 21 2 Digital Inputs, Outputs, and Pulse-Width Modulation 23 Digital Outputs 24 Wiring Up an LED and Using Breadboards 24 Working with Breadboards 24 Wiring LEDs 25 Programming Digital Outputs 29 Using For Loops 30 Pulse-Width Modulation with analogWrite() 31 Reading Digital Inputs 35 Reading Digital Inputs with Pull-Down Resistors 35 Working with “Bouncy” Buttons 38 Building a Controllable RGB LED Nightlight 42 Summary 46 3 Interfacing with Analog Sensors 47 Understanding Analog and Digital Signals 48 Comparing Analog and Digital Signals 48 Converting an Analog Signal to Digital 49 Reading Analog Sensors with the Arduino: analogRead() 51 Reading a Potentiometer 51 Using Analog Sensors 56 Using Variable Resistors to Make Your Own Analog Sensors 60 Using Resistive Voltage Dividers 61 Using Analog Inputs to Control Analog Outputs 64 Summary 66 Part II Interfacing with Your Environment 67 4 Using Transistors and Driving DC Motors 69 Driving DC Motors 70 Handling High-Current Inductive Loads 71 Using Transistors as Switches 72 Using Protection Diodes73 Using a Secondary Power Source 74 Wiring the Motor 74 Controlling Motor Speed with PWM 76 Using an H-Bridge to Control DC Motor Direction 78 Building an H-Bridge Circuit 80 Operating an H-Bridge Circuit 82 Building a Roving Robot 86 Choosing the Robot Parts 87 Selecting a Motor and Gearbox 87 Powering Your Robot 87 Constructing the Robot 89 Writing the Robot Software 92 Bringing It Together 96 Summary 97 5 Driving Stepper and Servo Motors 99 Driving Servo Motors 100 Understanding the Difference between Continuous Rotation and Standard Servos 100 Understanding Servo Control 101 Controlling a Servo 104 Building a Sweeping Distance Sensor 105 Understanding and Driving Stepper Motors 109 How Bipolar Stepper Motors Work 111 Making Your Stepper Move 113 Building a “One-Minute Chronograph” 117 Wiring and Building the Chronograph 117 Programming the Chronograph 119 Summary 124 6 Making Sounds and Music 125 Understanding How Speakers Work 126 The Properties of Sound 126 How a Speaker Produces Sound 128 Using tone() to Make Sounds 129 Including a Definition File 129 Wiring the Speaker 130 Making Sound Sequences 133 Using Arrays 133 Making Note and Duration Arrays 134 Completing the Program 134 Understanding the Limitations of the tone() Function 136 Building a Micro Piano 136 Summary 139 7 USB Serial Communication 141 Understanding the Arduino’s Serial Communication Capabilities 142 Arduino Boards with an Internal or External FTDI or Silicon Labs USB-to-Serial Converter 143 Arduino Boards with a Secondary USB-Capable ATmega MCU Emulating a Serial Converter 146 Arduino Boards with a Single USB-Capable MCU 147 Arduino Boards with USB-Host Capabilities 147 Listening to the Arduino 148 Using print Statements 148 Using Special Characters 150 Changing Data Type Representations 152 Talking to the Arduino 152 Configuring the Arduino IDE’s Serial Monitor to Send Command Strings 152 Reading Incoming Data from a Computer or Other Serial Device 153 Telling the Arduino to Echo Incoming Data 153 Understanding the Differences between Chars and Ints 154 Sending Single Characters to Control an LED 156 Sending Lists of Values to Control an RGB LED 158 Talking to a Desktop App 161 Installing Processing 162 Controlling a Processing Sketch from Your Arduino 163 Sending Data from Processing to Your Arduino 166 Summary 169 8 Emulating USB Devices 171 Emulating a Keyboard 173 Typing Data into the Computer 173 Commanding Your Computer to Do Your Bidding 177 Emulating a Mouse 178 Summary 182 9 Shift Registers 183 Understanding Shift Registers 184 Sending Parallel and Serial Data 185 Working with the 74HC595 Shift Register 186 Understanding the Shift Register pin Functions 186 Understanding How the Shift Register Works 187 Shifting Serial Data from the Arduino 189 Converting Between Binary and Decimal Formats 192 Controlling Light Animations with a Shift Register 192 Building a “Light Rider” 192 Responding to Inputs with an LED Bar Graph 194 Summary 197 Part III Communication Interfaces 199 10 The I2C Bus 201 History of the I2C Bus 202 I2C Hardware Design 203 Communication Scheme and ID Numbers 203 Hardware Requirements and Pull-Up Resistors 206 Communicating with an I2C Temperature Probe 208 Setting Up the Hardware208 Referencing the Datasheet 210 Writing the Software 212 Combining Shift Registers, Serial Communication, and I2C Communications 214 Building the Hardware for a Temperature Monitoring System 214 Modifying the Embedded Program 215 Writing the Processing Sketch 218 Summary 221 11 The SPI Bus and Third-Party Libraries 223 Overview of the SPI Bus 224 SPI Hardware and Communication Design 225 Hardware Configuration 225 Communication Scheme 227 Comparing SPI to I2C and UART 227 Communicating with an SPI Accelerometer 228 What is an Accelerometer? 229 Gathering Information from the Datasheet 231 Setting Up the Hardware233 Writing the Software 235 Installing the Adafruit Sensor Libraries 236 Leveraging the Library 237 Creating an Audiovisual Instrument Using a 3-Axis Accelerometer 241 Setting Up the Hardware242 Modifying the Software 242 Summary 246 12 Interfacing with Liquid Crystal Displays 247 Setting Up the LCD 248 Using the LiquidCrystal Library to Write to the LCD 251 Adding Text to the Display 252 Creating Special Characters and Animations 254 Building a Personal Thermostat 258 Setting Up the Hardware 258 Displaying Data on the LCD 261 Adjusting the Set Point with a Button 264 Adding an Audible Warning and a Fan 265 Bringing It All Together: The Complete Program 266 Taking This Project to the Next Level 270 Summary 271 Part IV Digging Deeper and Combining Functions 273 13 Interrupts and Other Special Functions 275 Using Hardware Interrupts 276 Knowing the Tradeoffs Between Polling and Interrupting 277 Ease of Implementation (Software) 277 Ease of Implementation (Hardware) 277 Multitasking 278 Acquisition Accuracy 278 Understanding the Arduino Hardware Interrupt Capabilities 278 Building and Testing a Hardware-Debounced Button Interrupt Circuit 279 Creating a Hardware-Debouncing Circuit 280 Assembling the Complete Test Circuit 284 Writing the Software 285 Using Timer Interrupts 288 Understanding Timer Interrupts 288 Getting the Library 289 Executing Two Tasks Simultaneously(ish) 289 Building an Interrupt-Driven Sound Machine 290 Sound Machine Hardware 291 Sound Machine Software 291 Summary 294 14 Data Logging with SD Cards 295 Getting Ready for Data Logging 296 Formatting Data with CSV Files 297 Preparing an SD Card for Data Logging 297 Formatting Your SD Card Using a Windows PC 298 Formatting Your SD Card Using Mac OS 300 Formatting Your SD Card Using Linux 302 Interfacing the Arduino with an SD Card 304 SD Card Shields 304 SD Card SPI Interface 307 Writing to an SD Card 307 Reading from an SD Card 312 Real-Time Clocks 317 Understanding Real-Time Clocks 317 Communicating with a Real-Time Clock 317 Using the RTC Arduino Third-Party Library 318 Using a Real-Time Clock 319 Installing the RTC and SD Card Modules 319 Updating the Software 320 Building an Entrance Logger 327 Logger Hardware 328 Logger Software 329 Data Analysis 334 Summary 335 Part V Going Wireless 337 15 Wireless RF Communications 339 The Electromagnetic Spectrum 340 The Spectrum 342 How Your RF Link Will Send and Receive Data 343 Receiving Key Presses with the RF Link 346 Connecting Your Receiver 346 Programming Your Receiver 347 Making a Wireless Doorbell 351 Wiring the Receiver 351 Programming the Receiver 351 The Start of Your Smart Home—Controlling a Lamp 354 Your Home’s AC Power 356 How a Relay Works 356 Programming the Relay Control 358 Hooking up Your Lamp and Relay to the Arduino 360 Summary 361 16 Bluetooth Connectivity 363 Demystifying Bluetooth 364 Bluetooth Standards and Versions 364 Bluetooth Profiles and BTLE GATT Services 365 Communication between Your Arduino and Your Phone 366 Reading a Sensor over BTLE 366 Adding Support for Third-Party Boards to the Arduino IDE 367 Installing the BTLE Module Library 369 Programming the Feather Board 369 Connecting Your Smartphone to Your BTLE Transmitter 377 Sending Commands from Your Phone over BTLE 379 Parsing Command Strings 380 Commanding Your BTLE Device with Natural Language 384 Controlling an AC Lamp with Bluetooth 389 How Your Phone “Pairs” to BTLE Devices 389 Writing the Proximity Control Software 390 Pairing Your Phone 394 Pairing an Android Phone 394 Pairing an iPhone 395 Make Your Lamp React to Your Presence 396 Summary 397 17 Wi-Fi and the Cloud 399 The Web, the Arduino, and You 400 Networking Lingo 401 The Internet vs. the World Wide Web vs. the Cloud 401 IP Address 401 Network Address Translation 402 MAC Address 402 HTML 402 HTTP and HTTPS 402 GET/POST 403 DHCP 403 DNS 403 Clients and Servers 403 Your Wi-Fi–Enabled Arduino 404 Controlling Your Arduino from the Web 404 Setting Up the I/O Control Hardware 404 Preparing the Arduino IDE for Use with the Feather Board.406 Ensuring the Wi-Fi Library is Matched to the Wi-Fi Module’s Firmware 407 Checking the WINC1500’s Firmware Version 408 Updating the WINC1500’s Firmware 408 Writing an Arduino Server Sketch 408 Connecting to the Network and Retrieving an IP Address via DHCP 409 Writing the Code for a Bare-Minimum Web Server 412 Controlling Your Arduino from Inside and Outside Your Local Network 423 Controlling Your Arduino over the Local Network 423 Using Port Forwarding to Control Your Arduino from Anywhere 425 Interfacing with Web APIs 427 Using a Weather API428 Creating an Account with the API Service Provider 429 Understanding How APIs are Structured 430 JSON-Formatted Data and Your Arduino 430 Fetching and Parsing Weather Data 431 Getting the Local Temperature from the Web on Your Arduino 433 Completing the Live Temperature Display 440 Wiring up the LED Readout Display 440 Driving the Display with Temperature Data 443 Summary 449 Appendix A: Deciphering Datasheets and Schematics 451 Index 461

    1 in stock

    £24.80

  • Essence of Systems Analysis and Design: A

    Springer Verlag, Singapore Essence of Systems Analysis and Design: A

    4 in stock

    Book SynopsisThe main objective is to provide quick and essential knowledge for the subject with the help of summary and solved questions /case studies without going into detailed discussion. This book will be much helpful for the students as a supplementary text/workbook; and to the non-computer professionals, who deal with the systems analysis and design as part of their business. Such problem solving approach will be able to provide practical knowledge of the subject and similar learning output, without going into lengthy discussions.Though the book is conceived as supplementary text/workbook; the topics are selected and arranged in such a way that it can provide complete and sufficient knowledge of the subject.Table of ContentsChapter 1. Introductory Concepts of Systems Analysis and Design.- Chapter 2. Requirements Determination.- Chapter 3. Structured System Development Approach.- Chapter 4. Systems Prototype Approach.- Chapter 5. Computer Assisted Tools for Software Development.- Chapter 6. Systems Design.- Chapter 7. System Quality and Implementation Issues.

    4 in stock

    £58.49

  • Infrastructure as Code, Patterns and Practices:

    Manning Publications Infrastructure as Code, Patterns and Practices:

    Book SynopsisEssential Infrastructure as Code teaches patterns for scaling systems and supporting infrastructure for mission-critical applications. The book is fullof flexible automation techniques and universal principles that are easy toapply to almost any use case, from data centers, to public cloud, to software-as-a-Service. The book is full of techniques that work whether you're managing your personal projects or making live network changes across a large enterprise. Infrastructure as Code (IaC) replaces time-consuming manual provisioning and configuration with automation via configuration managers or provisioning tools like Hashicorp Terraform. Managing your infrastructure as code makes it easy to test changes and implement new features, scale systems without downtime or operational toil, and rapidly roll back mistakes.Trade Review“This book has a refreshing take on infrastructure as code.” Stanford S.Guillory “Loved the content, especially since the author talks about stuff we've been asking ourselves since forever but never found a clear answer!” SylvainMartel “The author provides real-world, hands-on guidance that cuts through the nuances of framework specifics and gets to the heart of great IaC as she discusses tools, techniques and sound practice.” JeremyBryan “Provides precious hints to automate the creation of structured infrastructures by coding.” Cosimo Attanasi “Kudos all around, very timely and necessary, breaking down this subject in such a clear way.” Sean Booker

    £40.85

  • Micro Frontends in Action

    Manning Publications Micro Frontends in Action

    2 in stock

    Book SynopsisBy adopting the micro frontends approach and designing your web apps as systems of features, you can deliver faster feature development, easier upgrades, and pick and choose the technology you use in your stack. Micro Frontends in Action is your guide to simplifying unwieldy frontends by composing them from small, well-defined units. You’ll learn to integrate web applications made up of smaller fragments using tools such as web components or server side includes, how to solve the organizational challenges of micro frontends, and how to create a design system that ensures an end user gets a consistent look and feel for your application. Key Features · Applying integration strategies with iframes, AJAX, server-side includes, web components and the app-shell approach · Optimizing for performance and asset delivery strategies · Designing coherent user interfaces · Migrating to a micro frontends architecture For intermediate web developers, team leaders, and software architects. About the technology The micro frontends approach extends the principles of microservices to frontend development. The application is divided into multiple independent vertical slices–from the database right up to the UI–then integrated using standards such as web components into a single user-facing frontend. Thanks to the smaller scope of a micro frontend, teams can deliver features faster, upgrade more easily, and make their own choices about their technology stack. Michael Geers is a software developer specializing in building user interfaces. He has written software for the web since he was a teenager. In the last few years, he has worked on various customer projects with verticalized architectures. He shares his experiences on this topic at international conferences, in a series of magazine articles, and website.Table of ContentsWelcomeMEAP VERSION 41 What Are Micro Frontends?2 My First Micro Frontends Project3 Composition with AJAX & Server-side Routing4 Server-side Composition5 Client-side Composition6 Communication Patterns7 Client-side Routing & The Application Shell8 Composition & Universal Rendering9 Which Architecture Fits My Project?10 Asset Loading11 Performance is Key12 User Interface & Design System13 Teams & Boundaries14 Migration, Local Development & Testing

    2 in stock

    £29.99

  • SAFe 5.0 Distilled

    Pearson Education (US) SAFe 5.0 Distilled

    3 in stock

    Book SynopsisRichard Knaster, SAFe Fellow and Principal Consultant at Scaled Agile, Inc., has more than 25 years' experience in software development in roles ranging from developer to executive and has been involved in Agile for more than a decade. Prior to joining Scaled Agile, Inc., Richard worked at IBM, where his career spanned from product line management (PPM domain) and professional services to chief methodologist, Agile and Lean. Richard is a certified IBM Thought Leader and an Open Group Distinguished IT Specialist. He is also a certified SPC, PSM, Agile Certified Practitioner, PMP, and a contributor to the Disciplined Agile Delivery framework and PMI Portfolio/Program Management standards. He is a contributor to  SAFe 4.5 Reference Guide (Addison-Wesley, 2018). Dean Leffingwell, creator of SAFe, is widely recognized as the one of the world's foremost authorities on Lean-Agile best practices. He is an author, serial entreprTable of ContentsPreface ixAcknowledgments xvAbout the Authors xvii Part I: Competing in the Age of Software 1Chapter 1: Business Agility 3Chapter 2: Introduction to SAFe 11Chapter 3: Lean-Agile Mindset 25Chapter 4: SAFe Principles 39 Part II: The Seven Core Competencies of the Lean Enterprise 63Chapter 5: Lean-Agile Leadership 65Chapter 6: Team and Technical Agility 75Chapter 7: Agile Product Delivery 89Chapter 8: Enterprise Solution Delivery 121Chapter 9: Lean Portfolio Management 143Chapter 10: Organizational Agility 167Chapter 11: Continuous Learning Culture 187 Part III: Implementing SAFe, Measure and Grow 201Chapter 12: The Guiding Coalition 205Chapter 13: Designing the Implementation 215Chapter 14: Implementing Agile Release Trains 229Chapter 15: Launch More ARTs and Value Streams; Extending to the Portfolio 245Chapter 16: Measure, Grow, and Accelerate 253 Glossary 267Index 279

    3 in stock

    £26.99

  • Head First Software Architecture

    O'Reilly Media Head First Software Architecture

    20 in stock

    Book Synopsis

    20 in stock

    £47.99

  • Head First Git

    O'Reilly Media Head First Git

    2 in stock

    Book SynopsisRaju Gandhi peels back the layers to reveal the simple yet powerful engine that powers Git, so you'll understand not just the how but the why. You'll master branches, merges, commit messages, search, utilities, and more; learn best practices for collaborative work; and unlock the full potential of Git.

    2 in stock

    £47.99

  • Pro OGRE 3D Programming

    APress Pro OGRE 3D Programming

    3 in stock

    Book SynopsisPro OGRE 3D Programming offers a detailed guide to the cross-platform Object-Oriented Graphics Rendering Engine (OGRE) 3D engine. OGRE provides an object-oriented interface to render 3D scenes. Commonly used in game creation, it can be utilized to create a variety of 3D based applications, including architectural visualization and simulations. The authors begin with obtaining the source code, move on to using the rendering library, and conclude with the polishing of the final application. Beginning-level knowledge of game design practices, intermediate-level knowledge of the C++ language, and a familiarity with open-source project-management tools such as CVS and Subversion are all recommended.Table of ContentsA table of contents is not available for this title.

    3 in stock

    £37.49

  • Software Architecture and DecisionMaking

    Pearson Education (US) Software Architecture and DecisionMaking

    1 in stock

    Book SynopsisSrinath Perera has been an Apache open source developer for the last 20 years. He has played a major role in the architecture of Apache Axis2, Apache Airavata, WSO2 CEP (Siddhi), and WSO2 Choreo. He has designed two SOAP engines and helped build four. He is a committer (a developer who can commit to a code base) for Apache Axis, Axis2, Apache Geronimo, and Apache Airavata.   He joined WSO2 in 2009 after finishing his PhD. WSO2 products are used by many Fortune 500 companies such as airlines, banks, and governments. At WSO2, he has played an architecture review role for 10+ projects and 100+ releases. He reviewed hundreds of customer solution architectures and deployments and sat in on thousands of architecture reviews. He has published 40+ peer-reviewed research articles, which have been referenced by thousands of other research publications.Table of ContentsChapter 1: Introduction to Software Leadership 1 Role of Judgment 1 Goal of This Book 3 Part I: Introduction 6 Part II: Essential Background 7 Part III: System Design 7 Part IV: Putting Everything Together 8 Chapter 2: Understanding Systems, Design, and Architecture 9 What Is Software Architecture? 9 How to Design a System 11 Five Questions 12 Seven Principles: The Overarching Concepts 16 Designing for an Online Bookstore 24 Designing for the Cloud 27 Summary 29 Chapter 3: Mental Models for Understanding and Explaining System Performance 31 A Computer System 32 Models for Performance 33 Optimization Techniques 41 Intuitive Feel for Performance 46 Leadership Considerations 46 Summary 47 Chapter 4: Understanding User Experience (UX) 49 General UX Concepts for Architects 49 UX Design for Configurations 53 UX Design for APIs 54 UX Design for Extensions 56 Leadership Considerations 57 Summary 57 Chapter 5: Macro Architecture: Introduction 59 History of Macro Architecture 60 Modern Architectures 62 Macro Architectural Building Blocks 63 Leadership Considerations 66 Summary 68 Chapter 6: Macro Architecture: Coordination 69 Approach 1: Drive Flow from Client 69 Approach 2: Use Another Service 70 Approach 3: Use Centralized Middleware 71 Approach 4: Implement Choreography 71 Leadership Considerations 73 Summary 73 Chapter 7: Macro Architecture: Preserving Consistency of State 75 Why Transactions? 75 Why Do We Need to Go Beyond Transactions? 76 Going Beyond Transactions 77 Best Practices 80 Leadership Considerations 81 Summary 83 Chapter 8: Macro Architecture: Handling Security 85 User Management 86 Interaction Security 88 Storage, GDPR, and Other Regulations 96 Security Strategy and Advice 98 Leadership Considerations 101 Summary 103 Chapter 9: Macro Architecture: Handling High Availability and Scale 105 Adding High Availability 105 Understanding Scalability 109 Scaling for a Modern Architecture: Base Solution 110 Scaling: The Tools of Trade 111 Building Scalable Systems 113 Leadership Considerations 117 Summary 118 Chapter 10: Macro Architecture: Microservices Considerations 119 Decision 1: Handling Shared Database(s) 120 Decision 2: Securing Microservices 122 Decision 3: Coordinating Microservices 122 Decision 4: Avoiding Dependency Hell 122 Loosely Coupled, Repository-Based Teams as an Alternative to Microservices 125 Leadership Considerations 126 Summary 127 Chapter 11: Server Architectures 129 Writing a Service 129 Understanding Best Practices for Writing a Service 130 Understanding Advanced Techniques 132 Using These Techniques in Practice 143 Leadership Considerations 146 Summary 147 Chapter 12: Building Stable Systems 149 Why Do Systems Fail, and What Can We Do About Them? 149 How to Handle Known Errors 151 Common Bugs 159 How to Handle Unknown Errors 161 Graceful Degradation 163 Leadership Considerations 163 Summary 164 Chapter 13: Building and Evolving the Systems 165 Getting Your Hands Dirty 165 Communicating the Design 172 Evolving the System: How to Learn from Your Users and Improve the System 172 Leadership Considerations 175 Summary 176 Index 179

    1 in stock

    £25.59

  • Clean Coder The

    Pearson Education (US) Clean Coder The

    3 in stock

    Book SynopsisRobert C. Martin (Uncle Bob) has been a programmer since 1970. He is founder and president of Object Mentor, Inc., an international firm of highly experienced software developers and managers who specialize in helping companies get their projects done. Object Mentor offers process improvement consulting, object-oriented software design consulting, training, and skill development services to major corporations worldwide. Martin has published dozens of articles in various trade journals and is a regular speaker at international conferences and trade shows. He has authored and edited many books, including: Designing Object Oriented C++ Applications Using the Booch Method Patterns Languages of Program Design 3 More C++ Gems Extreme Programming in Practice Agile Software Development: Principles, Patterns, and Practices UML for Java Programmers Trade Review"'Uncle Bob' Martin definitely raises the bar with his latest book. He explains his expectation for a professional programmer on management interactions, time management, pressure, on collaboration, and on the choice of tools to use. Beyond TDD and ATDD, Martin explains what every programmer who considers him- or herself a professional not only needs to know, but also needs to follow in order to make the young profession of software development grow." -Markus Gartner Senior Software Developer it-agile GmbH www.it-agile.de www.shino.de "Some technical books inspire and teach; some delight and amuse. Rarely does a technical book do all four of these things. Robert Martin's always have for me and The Clean Coder is no exception. Read, learn, and live the lessons in this book and you can accurately call yourself a software professional." -George Bullock Senior Program Manager Microsoft Corp. "If a computer science degree had 'required reading for after you graduate,' this would be it. In the real world, your bad code doesn't vanish when the semester's over, you don't get an A for marathon coding the night before an assignment's due, and, worst of all, you have to deal with people. So, coding gurus are not necessarily professionals. The Clean Coder describes the journey to professionalism ... and it does a remarkably entertaining job of it." -Jeff Overbey University of Illinois at Urbana-Champaign "The Clean Coder is much more than a set of rules or guidelines. It contains hard-earned wisdom and knowledge that is normally obtained through many years of trial and error or by working as an apprentice to a master craftsman. If you call yourself a software professional, you need this book." -R. L. Bogetti Lead System Designer Baxter Healthcare www.RLBogetti.comTable of ContentsForeword xiii Preface xix Acknowledgments xxiii About the Author xxix On the Cover xxxi Pre-Requisite Introduction 1 Chapter 1: Professionalism 7 Be Careful What You Ask For 8 Taking Responsibility 8 First, Do No Harm 11 Work Ethic 16 Bibliography 22 Chapter 2: Saying No 23 Adversarial Roles 26 High Stakes 29 Being a “Team Player” 30 The Cost of Saying Yes 36 Code Impossible 41 Chapter 3: Saying Yes 45 A Language of Commitment 47 Learning How to Say “Yes” 52 Conclusion 56 Chapter 4: Coding 57 Preparedness 58 The Flow Zone 62 Writer’s Block 64 Debugging 66 Pacing Yourself 69 Being Late 71 Help 73 Bibliography 76 Chapter 5: Test Driven Development 77 The Jury Is In 79 The Three Laws of TDD 79 What TDD Is Not 83 Bibliography 84 Chapter 6: Practicing 85 Some Background on Practicing 86 The Coding Dojo 89 Broadening Your Experience 93 Conclusion 94 Bibliography 94 Chapter 7: Acceptance Testing 95 Communicating Requirements 95 Acceptance Tests 100 Conclusion 111 Chapter 8: Testing Strategies 113 QA Should Find Nothing 114 The Test Automation Pyramid 115 Conclusion 119 Bibliography 119 Chapter 9: Time Management 121 Meetings 122 Focus-Manna 127 Time Boxing and Tomatoes 130 Avoidance 131 Blind Alleys 131 Marshes, Bogs, Swamps, and Other Messes 132 Conclusion 133 Chapter 10: Estimation 135 What Is an Estimate? 138 PERT 141 Estimating Tasks 144 The Law of Large Numbers 147 Conclusion 147 Bibliography 148 Chapter 11: Pressure 149 Avoiding Pressure 151 Handling Pressure 153 Conclusion 155 Chapter 12: Collaboration 157 Programmers versus People 159 Cerebellums 164 Conclusion 166 Chapter 13: Teams and Projects 167 Does It Blend? 168 Conclusion 171 Bibliography 171 Chapter 14: Mentoring, Apprenticeship, and Craftsmanship 173 Degrees of Failure 174 Mentoring 174 Apprenticeship 180 Craftsmanship 184 Conclusion 185 Appendix A: Tooling 187 Tools 189 Source Code Control 189 IDE/Editor 194 Issue Tracking 196 Continuous Build 197 Unit Testing Tools 198 Component Testing Tools 199 Integration Testing Tools 200 UML/MDA 201 Conclusion 204 Index 205

    3 in stock

    £33.29

  • The Mythical ManMonth

    Pearson Education (US) The Mythical ManMonth

    15 in stock

    Book SynopsisFrederick P. Brooks, Jr., was born in 1931 in Durham, NC. He received an A.B. summa cum laude in physics from Duke and a Ph.D. in computer science from Harvard, under Howard Aiken, the inventor of the early Harvard computers. At Chapel Hill, Dr. Brooks founded the Department of Computer Science and chaired it from 1964 through 1984. He has served on the National Science Board and the Defense Science Board. His current teaching and research is in computer architecture, molecular graphics, and virtual environments. He joined IBM, working in Poughkeepsie and Yorktown, NY, 1956-1965. He is best known as the father of the IBM System/360, having served as project manager for its development and later as manager of the Operating System/360 software project during its design phase. For this work he, Bob Evans, and Erick Block were awarded and received a National Medal of Technology in 1985. Table of Contents 1. The Tar Pit. 2. The Mythical Man-Month. 3. The Surgical Team. 4. Aristocracy, Democracy, and System Design. 5. The Second-System Effect. 6. Passing the Word. 7. Why Did the Tower of Babel Fail? 8. Calling the Shot. 9. Ten Pounds in a Five-Pound Sack. 10. The Documentary Hypothesis. 11. Plan to Throw One Away. 12. Sharp Tools. 13. The Whole and the Parts. 14. Hatching a Castrophe. 15. The Other Face. 16. No Silver Bullet -- Essence and Accident. 17. "No Silver Bullet" ReFired. 18. Propositions of The Mythical Man-Month: True or False? 19. The Mythical Man-Month After 20 Years. Epilogue. Notes and references. Index. 0201835959T04062001

    15 in stock

    £29.74

  • Implementing DomainDriven Design

    Pearson Education (US) Implementing DomainDriven Design

    1 in stock

    Book SynopsisVaughn Vernon is a champion of simplifying software architecture and development, with an emphasis on reactive methods. He has a unique ability to teach and lead with Domain-Driven Design using lightweight tools to unveil unimagined value. He helps organizations achieve competitive advantages using enduring tools such as architectures, patterns, and approaches, and through partnerships between business stakeholders and software developers.Trade Review"With Implementing Domain-Driven Design, Vaughn has made an important contribution not only to the literature of the Domain-Driven Design community, but also to the literature of the broader enterprise application architecture field. In key chapters on Architecture and Repositories, for example, Vaughn shows how DDD fits with the expanding array of architecture styles and persistence technologies for enterprise applications-including SOA and REST, NoSQL and data grids-that has emerged in the decade since Eric Evans' seminal book was first published. And, fittingly, Vaughn illuminates the blocking and tackling of DDD-the implementation of entities, value objects, aggregates, services, events, factories, and repositories-with plentiful examples and valuable insights drawn from decades of practical experience. In a word, I would describe this book as thorough. For software developers of all experience levels looking to improve their results, and design and implement domain-driven enterprise applications consistently with the best current state of professional practice, Implementing Domain-Driven Design will impart a treasure trove of knowledge hard won within the DDD and enterprise application architecture communities over the last couple decades." -Randy Stafford, Architect At-Large, Oracle Coherence Product Development "Domain-Driven Design is a powerful set of thinking tools that can have a profound impact on how effective a team can be at building software-intensive systems. The thing is that many developers got lost at times when applying these thinking tools and really needed more concrete guidance. In this book, Vaughn provides the missing links between theory and practice. In addition to shedding light on many of the misunderstood elements of DDD, Vaughn also connects new concepts like Command/Query Responsibility Segregation and Event Sourcing that many advanced DDD practitioners have used with great success. This book is a must-read for anybody looking to put DDD into practice." -Udi Dahan, Founder of NServiceBus "For years, developers struggling to practice Domain-Driven Design have been wishing for more practical help in actually implementing DDD. Vaughn did an excellent job in closing the gap between theory and practice with a complete implementation reference. He paints a vivid picture of what it is like to do DDD in a contemporary project, and provides plenty of practical advice on how to approach and solve typical challenges occurring in a project life cycle." - Alberto Brandolini, DDD Instructor, Certified by Eric Evans and Domain Language, Inc. "Implementing Domain-Driven Design does a remarkable thing: it takes a sophisticated and substantial topic area in DDD and presents it clearly, with nuance, fun and finesse. This book is written in an engaging and friendly style, like a trusted advisor giving you expert counsel on how to accomplish what is most important. By the time you finish the book you will be able to begin applying all the important concepts of DDD, and then some. As I read, I found myself highlighting many sections ... I will be referring back to it, and recommending it, often." - Paul Rayner, Principal Consultant & Owner, Virtual Genius, LLC., DDD Instructor, Certified by Eric Evans and Domain Language, Inc., DDD Denver Founder and Co-leader "One important part of the DDD classes I teach is discussing how to put all the ideas and pieces together into a full blown working implementation. With this book, the DDD community now has a comprehensive reference that addresses this in detail. Implementing Domain-Driven Design deals with all aspects of building a system using DDD, from getting the small details right to keeping track of the big picture. This is a great reference and an excellent companion to Eric Evans seminal DDD book." - Patrik Fredriksson, DDD Instructor, Certified by Eric Evans and Domain Language, Inc. "If you care about software craftsmanship-and you should-then Domain-Driven Design is a crucial skill set to master and Implementing Domain-Driven Design is the fast path to success. IDDD offers a highly readable yet rigorous discussion of DDD's strategic and tactical patterns that enables developers to move immediately from understanding to action. Tomorrow's business software will benefit from the clear guidance provided by this book." -Dave Muirhead, Principal Consultant, Blue River Systems Group "There's theory and practice around DDD that every developer needs to know, and this is the missing piece of the puzzle that puts it all together. Highly recommended!" -Rickard Oberg, Java Champion and Developer at Neo Technology "In IDDD, Vaughn takes a top-down approach to DDD, bringing strategic patterns such as bounded context and context maps to the fore, with the building block patterns of entities, values and services tackled later. His book uses a case study throughout, and to get the most out of it you'll need to spend time grokking that case study. But if you do you'll be able to see the value of applying DDD to a complex domain; the frequent sidenotes, diagrams, tables, and code all help illustrate the main points. So if you want to build a solid DDD system employing the architectural styles most commonly in use today, Vaughn's book comes recommended." -Dan Haywood, author of Domain-Driven Design with Naked Objects "This book employs a top-down approach to understanding DDD in a way that fluently connects strategic patterns to lower level tactical constraints. Theory is coupled with guided approaches to implementation within modern architectural styles. Throughout the book, Vaughn highlights the importance and value of focusing on the business domain all while balancing technical considerations. As a result, the role of DDD, as well as what it does and perhaps more importantly doesn't imply, become ostensibly clear. Many a time, my team and I would be at odds with the friction encountered in applying DDD. With Implementing Domain-Driven Design as our luminous guide we were able to overcome those challenges and translate our efforts into immediate business value." -Lev Gorodinski, Principal Architect, DrillSpot.comTable of Contents Chapter 1: Getting Started with DDD Chapter 2: Domains, Subdomains, and Bounded Contexts Chapter 3: Context Maps Chapter 4: Architecture Chapter 5: Entities Chapter 6: Value Objects Chapter 7: Services Chapter 8: Domain Events Chapter 9: Modules Chapter 10: Aggregates Chapter 11: Factories Chapter 12: Repositories Chapter 13: Integrating Bounded Contexts Chapter 14: Application Appendix A: Aggregates and Event Sourcing: A+ES

    1 in stock

    £43.19

  • Zombie Scrum Survival Guide

    Pearson Education (US) Zombie Scrum Survival Guide

    3 in stock

    Book Synopsis Christiaan Verwijs aims to unleash organizational superpowers. He is co-founder of The Liberators, experienced Scrum Master, developer, Professional Scrum Trainer (PST) and Steward of the Professional Scrum Master II course at Scrum.org. He has spoken at Scrum Day Europe (2013-2018), XP Days 2017, and Liberating Structures Global Gathering 2018. Verwijs founded the Dutch Liberating Structures User Group (900+ members) and Liberators Network Meetup (250+ members). He blogs at medium.com/the-liberators and zombiescrum.org. Johannes Schartau is an Agile Coach, consultant, and facilitator who helps humans fight boredom and mindlessness on all scales, from individual to team to enterprise. He is Founder of the Liberating Structures User Group Hamburg (1,300+ members), as well as organizer and facilitator at numerous Liberating Structures Immersion Workshops. He writes at zombiescrum.org, and co-authored Liberating Strategy:Table of ContentsForeword by Dave West xiiiForeword by Henri Lipmanowicz xviiAcknowledgments xixAbout the Authors xxi Chapter 1: Getting Started 1 Purpose of This Book 4 Do You Need This Book? 5 How This Book Is Organized 6 No Time to Lose: Off You Go! 8 Chapter 2: First Aid Kit 11Part I: (Zombie) Scrum 13Chapter 3: A Primer on Zombie Scrum 15 The State of Scrum 17 Zombie Scrum 18 Is There Hope for Zombie Scrum? 24 Experiment: Diagnose Your Team Together 25 Now What? 29 Chapter 4: The Purpose of Scrum 31 It's All about Complex Adaptive Problems 32 Problems 33 Complex, Adaptive Problems 34 Complexity, Uncertainty, and Risk 35 Empiricism and Process Control Theory 36 Empiricism and the Scrum Framework 37 What the Scrum Framework Makes Possible 38 Scrum: An Evolving Set of Minimal Boundaries to Work Empirically 39 Zombie Scrum and the Efficiency Mindset 40 What about Simple Problems? 42 Now What? 44 Part II: Build What Stakeholders Need 45Chapter 5: Symptoms and Causes 47 Why Bother Involving Stakeholders? 49 Who Are the Stakeholders, Actually? 50 Why Are We Not Involving Stakeholders? 52 Healthy Scrum 68 Now What? 71 Chapter 6: Experiments 73 Experiments: Getting to Know Your Stakeholders 74 Experiments: Involving Stakeholders in Product Development 81 Experiments: Keeping Your Focus on What Is Valuable 88 Now What? 96 Part III: Ship It Fast 97Chapter 7: Symptoms and Causes 99 The Benefits of Shipping Fast 102 The Bottom Line: Not Shipping Fast Is a Sign of Zombie Scrum 105 Healthy Scrum 116 Now What? 121 Chapter 8: Experiments 123 Experiments to Create Transparency and Urgency 124 Experiments for Starting Shipping More Often 131 Experiments for Optimizing Flow 141 Now What? 150 Part IV: Improve Continuously 153Chapter 9: Symptoms and Causes 155 Why Bother Improving Continuously? 157 Why Are We Not Improving Continuously? 163 Healthy Scrum 179 Now What? 182 Chapter 10: Experiments 183 Experiments for Encouraging Deep Learning 183 Experiments for Making Improvements Tangible 190 Experiments for Gathering New Information 195 Experiments to Create a Learning Environment 200 Now What? 204 Part V: Self-Organize 205Chapter 11: Symptoms and Causes 207 Why Bother Self-Organizing? 209 Why Are We Not Self-Organizing? 217 Healthy Scrum: What Self-Organization Looks Like 234 Now What? 238 Chapter 12: Experiments 239 Experiments to Increase Autonomy 239 Experiments to Encourage Self-Organization 246 Experiments to Promote Self-Alignment 254 Find Local Solutions 259 Now What? 263 Chapter 13: The Road to Recovery 265 A Global Movement 266 What If Nothing Helps? 267 More Resources 268 Closing Words 268 Index 271

    3 in stock

    £27.54

  • Peopleware

    Pearson Education (US) Peopleware

    4 in stock

    Book SynopsisTom DeMarco and Timothy Lister are principals of The Atlantic Systems Guild (www.systemsguild.com), a consulting firm specializing in the complex processes of system building, with particular emphasis on the human dimension. Together, they have lectured, written, and consulted internationally since 1979 on management, estimating, productivity, and corporate culture. Tom DeMarco is the author or coauthor of nine books on subjects ranging from development methods to organizational function and dysfunction, as well as two novels and a book of short stories. His consulting practice focuses primarily on expert witness work, balanced against the occasional project and team consulting assignment. Currently enjoying his third year teaching ethics at the University of Maine, he lives in nearby Camden. <Table of Contents Chapter 1: Somewhere Today, a Project Is Failing Chapter 2: Make a Cheeseburger, Sell a Cheeseburger Chapter 3: Vienna Waits for You Chapter 4: Quality—If Time Permits Chapter 5: Parkinson’s Law Revisited Chapter 6: Laetrile Chapter 7: The Furniture Police Chapter 8: “You Never Get Anything Done around Here between 9 and 5.” Chapter 9: Saving Money on Space Chapter 10: Brain Time versus Body Time Chapter 11: The Telephone Chapter 12: Bring Back the Door Chapter 13: Taking Umbrella Steps Chapter 14: The Hornblower Factor Chapter 15: Let’s Talk about Leadership Chapter 16: Hiring a Juggler Chapter 17: Playing Well with Others Chapter 18: Childhood’s End Chapter 19: Happy to Be Here Chapter 20: Human Capital Chapter 21: The Whole Is Greater Than the Sum of the Parts Chapter 22: The Black Team Chapter 23: Teamicide Chapter 24: Teamicide Revisited Chapter 25: Competition Chapter 26: A Spaghetti Dinner Chapter 27: Open Kimono Chapter 28: Chemistry for Team Formation Chapter 29: The Self-Healing System Chapter 30: Dancing with Risk Chapter 31: Meetings, Monologues, and Conversations Chapter 32: The Ultimate Management Sin Is . . . Chapter 33: E(vil) Mail Chapter 34: Making Change Possible Chapter 35: Organizational Learning Chapter 36: The Making of Community Chapter 37: Chaos and Order Chapter 38: Free Electrons Chapter 39: Holgar Dansk

    4 in stock

    £30.14

  • Beginning Functional JavaScript

    APress Beginning Functional JavaScript

    3 in stock

    Book SynopsisUnderstand functional programming concepts and the functional nature of the JavaScript language. Starting with an introduction to functional programming concepts, you will learn the key differences between imperative and functional programming. Diving straight into JavaScript functions, you will learn to write them with ES8. Followed by this you will move to higher order functions and learn how ''Function as Data'' opens up a world of possibilities. You will then build higher order functions with closures. Arrays will then be introduced, followed by a set of APIs you can use with them. You will learn how to transform one function to another using currying and partial application. The compose function will be discussed in detail, followed by functors and monads. After having an in-depth look at applicative functors, you will learn the new features offered in ES8. The concluding chapters of Beginning Functional JavaScript will show you how to use a functTable of ContentsChapter 1: Functional Programming In Simple Terms Chapter Goal: Introduce to the reader the functional programming concepts in simple terms. The chapter will consist of theory and few executable JavaScript code both in imperative terms and functional terms, thus showcasing the advantages of functional programming over imperative. No of pages : 25 Sub -Topics 1. What is functional programming? Why it matters? 2. Functional programming thought process and its advantages. 3. Talking about side effects 4. Functions in Math and in programming 5. Immutability leads to parallel code 6. Testable 7. Easy to reason about your code. 8. Lets understand functions in JavaScript 9. What we are going to build in this book? Chapter 2: Fundamentals of JavaScript functions Chapter Goal: This chapter is a refresher on JavaScript functions. What they are and how they can be written in ES7/ES8 No of pages: 20 Sub - Topics 1. JavaScript Functions 2. Functions vs Methods in JavaScript 3. Functions old way and ES6 way 4. Anonymous functions or arrow functions 5. Deep Dive. Functions Prototype. Chapter 3: Higher Order FunctionsChapter Goal: In this chapter we are going give a different thought process on how functions are treated as data in JavaScript world. We will be covering what is data and how function as data allows several things possible in JavaScript. No of pages: 20 Sub - Topics: 1. Data in JavaScript 2. Functions as Data in JavaScript 3. Higher order functions 3. Our first functional approach to “loop” problem Chapter 4: Closures Chapter Goal: This chapter going to teach you the fundamentals of closures and how closures help to build higher order functions. No of pages: 30 Sub - Topics: 1. Understanding closures.2. How closures help in higher order functions3. Create functional libraries using the above approaches learned. 4. Example problem and using the libraries that we created to show how functional programming helps them.Chapter 5: Being Functional On ArraysChapter Goal: This chapter introduces set of APIs’ that one can use on top of Arrays. No of pages: 20 Sub - Topics: 1. Arrays in JavaScript2. How to access arrays, delete, loop them etc3. Create functional libraries using the above approaches learned. 4. Example problem and using the libraries that we created to show how functional programming helps them. Chapter 6: Currying and Partial ApplicationChapter Goal: In this chapter we are going to see how and what is partial and currying is all about. No of pages: 20 Sub - Topics: 1. What is composition?2. Unix philosophy – build small things well and good3. Creating composing function4. Currying leads to Composition. 5. Pipelines6. Showing examples of how to use composition7. Category theoryChapter 7: Composition and Pipeline Chapter Goal: In this chapter we are going to discuss on how to compose our functions to build a larger functionality No of pages: 20 Sub - Topics: 1. Unix philosophy2. Creating our compose function3. What is pipeline being all about4. Debugging using tap function. Chapter 8: Fun with FunctorsChapter Goal: In this chapter we are going to discuss on what Functors are and how they will be useful to us. No of pages: 20 Sub - Topics: 1. A bit of algebra2. Container Theory3. First Functor4. Adding Container functor code to our library5. Showing examples of how to use the functors6. Examples of MayBe and Either functorsChapter 9: Monads In DepthChapter Goal: In this chapter we are going to talk about how to create monads into our functional library. No of pages: 20 Sub - Topics: 1. Defining the problem 2. Understanding nested map hell3. Implementing join and chain4. The use case of Monads. Chapter 10: Applicative Functors Chapter Goal: In this chapter we are going to talk about applicative functors in depth and create them in our functional library. No of pages: 20 Sub – Topics: 1. What are applicative functors2. Their use cases3. Adding applicative to our library4. Their Laws Chapter 11: Pause, Resume with Generators Chapter Goal: In this chapter we are going to talk about new features of ES8 called generators. We are going to see how to use it wisely to make Async sync. No of Pages: 20 Sub – Topics: 1. What are generators? 2. Let’s create an indefinite lazy stream3. Generators and EventLoop4. Let’s understand Yield5. Making Async sync6. Adding the code to our library7. Showcasing examples. 8. Async and Await, the new concepts of ES8! Chapter 12: Building a React-like libraryChapter Goal : In this chapter, you will use a Functional Toolkit to build a small library. The library is used to build web applications with minimal efforts.No of Pages: 25Sub – Topics:1. Defining the environment2. Using functions throughout the codebase3. Node APIs to speak with DOM4. JSX and how to convert to functional calls. 5. Handling events6. Handling updates7. RecursionChapter 13: Testing and Closing ThoughtsChapter Goal: In this chapter we are going to see how testing can be a walk in the park if you follow a functional approach and also look at key points to take away from the book.No of Pages: 10Sub – Topics:1. Testing imperative Code2. Testing functional code3. Testing made easy via Functional4. Final thoughts

    3 in stock

    £41.24

  • Type-driven Development with Idris

    Manning Publications Type-driven Development with Idris

    Book SynopsisDESCRIPTION Types are often seen as a tool for checking errors, with the programmer writing a complete program first and using the type checker to detect errors. And while tests are used to show presence of errors, they can only find errors that you explicitly test for. In typedriven development, types become your tools for constructing programs and, used appropriately, can show the absence of errors. And you can express precise relationships between data, your assumptions are explicit and checkable, and you can precisely state and verify properties. Type-driven development lets users write extensible code, create simple specifications very early in development, and easily create mock implementation for testing. Type-Driven Development with Idris, written by the creator of Idris, teaches programmers how to improve the performance and accuracy of programs by taking advantage of a state-of-the-art type system. This book teaches readers using Idris, a language designed from the very beginning to support type-driven development. Readers learn how to manipulate types just like any other construct (numbers, strings, lists, etc.). This book teaches how to use type-driven development to build real-world software, as well as how to handle side-effects, state and concurrency, and interoperating with existing systems. By the end of this book, readers will be able to develop robust and verified software in Idris and apply type-driven development methods to programming in other languages. KEY FEATURES• Written by the creator of Idris • Improve performance and accuracy of programs • Teaches Idris, a new type-driven development language • Hands-on code examples • Build real-world software AUDIENCE Written for programmers with knowledge of basic functional programming concepts. ABOUT THE TECHNOLOGY Type-driven development lets you write extensible code, create simple specifications very early in development, and easily create mock implementation for testing. In type-driven development, types become your tools for constructing programs and, used appropriately, can show the absence of errors.

    £37.99

  • Knative in Action

    Manning Publications Knative in Action

    Book SynopsisTake the pain out of managing serverless applications. Knative, a collection of Kubernetes extensions curated by Google, simplifies building and running serverless systems. Knative in Action guides you through the Knative toolkit, showing you how to launch, modify, and monitor event-based apps built using cloud-hosted functions like AWS Lambda. You’ll learn how to use Knative Serving to develop software that is easily deployed and autoscaled, how to use Knative Eventing to wire together disparate systems into a consistent whole, and how to integrate Knative into your shipping pipeline. about the technologyWith Knative, managing a serverless application’s full lifecycle is a snap. Knative builds on Kubernetes orchestration features, making it easy to deploy and run serverless apps. It handles low-level chores—such as starting and stopping instances—so you can concentrate on features and behavior. about the book Knative in Action teaches you to build complex and efficient serverless applications. You’ll dive into Knative’s unique design principles and grasp cloud native concepts like handling latency-sensitive workloads. You’ll deliver updates with Knative Serving and interlink apps, services, and systems with Knative Eventing. To keep you moving forward, every example includes deployment advice and tips for debugging. what's inside Deploy a service with Knative Serving Connect systems with Knative Eventing Autoscale responses for different traffic surges Develop, ship, and operate software about the readerFor software developers comfortable with CLI tools and an OO language like Java or Go. about the author Jacques Chester has worked in Pivotal and VMWare R&D since 2014, contributing to Knative and other projects.

    £43.19

  • Data Analysis with Python and PySpark

    Manning Publications Data Analysis with Python and PySpark

    7 in stock

    Book SynopsisWhen it comes to data analytics, it pays tothink big. PySpark blends the powerful Spark big data processing engine withthe Python programming language to provide a data analysis platform that can scaleup for nearly any task. Data Analysis with Python and PySpark is yourguide to delivering successful Python-driven data projects. Data Analysis with Python and PySpark is a carefully engineered tutorial that helps you use PySpark to deliver your data-driven applications at any scale. This clear and hands-on guide shows you how to enlarge your processing capabilities across multiple machines with data from any source, ranging from Had oop-based clusters to Excel worksheets. You'll learn how to break down big analysis tasks into manageable chunks and how to choose and use the best PySpark data abstraction for your unique needs. The Spark data processing engine is an amazing analytics factory: raw data comes in,and insight comes out. Thanks to its ability to handle massive amounts of data distributed across a cluster, Spark has been adopted as standard by organizations both big and small. PySpark, which wraps the core Spark engine with a Python-based API, puts Spark-based data pipelines in the hands of programmers and data scientists working with the Python programming language. PySpark simplifies Spark's steep learning curve, and provides a seamless bridge between Spark and an ecosystem of Python-based data science tools. Trade Review“A great and gentle introduction to spark.” Javier Collado Cabeza “A phenomenal introduction to PySpark from the ground up.”Anonymous Reviewer “A great book to get you started with PySpark!” Jeremy Loscheider “Takes you on an example focused tour of building pyspark data structures from the data you provide and processing them at speed.” Alex Lucas “If you need to learn PySpark (as a Data Scientist or Data Wrangler) start with this book!”Geoff Clark

    7 in stock

    £40.85

  • Grokking Simplicity

    Manning Publications Grokking Simplicity

    1 in stock

    Book SynopsisDistributed across servers, difficult to test, and resistant to modification—modern software is complex. Grokking Simplicity is a friendly, practical guide that will change the way you approach software design and development. It introduces a unique approach to functional programming that explains why certain features of software are prone to complexity, and teaches you the functional techniques you can use to simplify these systems so that they’re easier to test and debug. Available in PDF (ePub, kindle, and liveBook formats coming soon). about the technologyEven experienced developers struggle with software systems that sprawl across distributed servers and APIs, are filled with redundant code, and are difficult to reliably test and modify. Adopting ways of thinking derived from functional programming can help you design and refactor your codebase in ways that reduce complexity, rather than encouraging it. Grokking Simplicity lays out how to use functional programming in a professional environment to write a codebase that’s easier to test and reuse, has fewer bugs, and is better at handling the asynchronous nature of distributed systems. about the bookIn Grokking Simplicity, you’ll learn techniques and, more importantly, a mindset that will help you tackle common problems that arise when software gets complex. Veteran functional programmer Eric Normand guides you to a crystal-clear understanding of why certain features of modern software are so prone to complexity and introduces you to the functional techniques you can use to simplify these systems so that they’re easier to read, test, and debug. Through hands-on examples, exercises, and numerous self-assessments, you’ll learn to organize your code for maximum reusability and internalize methods to keep unwanted complexity out of your codebase. Regardless of the language you’re using, the ways of thinking in this book will help recognize problematic code and tame even the most complex software. what's inside Apply functional programming principles to reduce codebase complexity Work with data transformation pipelines for code that’s easier to test and reuse Tools for modeling time to simplify asynchrony 60 exercises and 100 questions to test your knowledge about the readerFor experienced programmers. Examples are in JavaScript. about the author Eric Normand has been a functional programmer since 2001 and has been teaching functional programming online and in person since 2007. Visit LispCast.com to see more of his credentials.

    1 in stock

    £35.99

  • Patterns of Enterprise Application Architecture

    Pearson Education (US) Patterns of Enterprise Application Architecture

    10 in stock

    Book Synopsis Martin Fowler is an independent consultant who has applied objects to pressing business problems for more than a decade. He has consulted on systems in fields such as health care, financial trading, and corporate finance. His clients include Chrysler, Citibank, UK National Health Service, Andersen Consulting, and Netscape Communications. In addition, Fowler is a regular speaker on objects, the Unified Modeling Language, and patterns. 0321127420AB07242003Table of Contents Preface. Who This Book Is For. Acknowledgements. Colophon. Introduction. Architecture. Enterprise Applications. Kinds of Enterprise Application. Thinking About Performance. Patterns. The Structure of the Patterns. Limitations of These Patterns. I. THE NARRATIVES. 1. Layering. The Evolution of Layers in Enterprise Applications. The Three Principal Layers. Choosing Where to Run Your Layers. 2. Organizing Domain Logic. Making a Choice. Service Layer. 3. Mapping to Relational Databases. Architectural Patterns. The Behavioral Problem. Reading in Data Structural Mapping Patterns. Mapping Relationships. Inheritance. Building the Mapping. Double Mapping. Using Metadata. Database Connections. Some Miscellaneous Points. Further Reading. 4. Web Presentation. View Patterns. Input Controller Patterns. Further Reading. 5. Concurrency (by Martin Fowler and David Rice). Concurrency Problems. Execution Contexts. Isolation and Immutability. Optimistic and Pessimistic Concurrency Control. Preventing Inconsistent Reads. Deadlocks. Transactions. ACID. Transactional Resources. Reducing Transaction Isolation for Liveness. Business and System Transactions. Patterns for Offline Concurrency Control. Application Server Concurrency. Further Reading. 6. Session State. The Value of Statelessness. Session State. Ways to Store Session State. 7. Distribution Strategies. The Allure of Distributed Objects. Remote and Local Interfaces. Where You Have to Distribute. Working with the Distribution Boundary. Interfaces for Distribution. 8. Putting it all Together. Starting With the Domain Layer. Down to the Data Source. Data Source for Transaction Script. Data Source Table Module (125). Data Source for Domain Model (116). The Presentation Layer. Some Technology-Specific Advice. Java and J2EE. .NET. Stored Procedures. Web Services. Other Layering Schemes. II. THE PATTERNS. 9. Domain Logic Patterns. Transaction Script. How It Works. When to Use It. The Revenue Recognition Problem. Example: Revenue Recognition (Java). Domain Model. How It Works. When to Use It. Further Reading. Example: Revenue Recognition (Java). Table Module. How It Works. When to Use It. Example: Revenue Recognition with a Table Module (C#). Service Layer(by Randy Stafford). How It Works. When to Use It. Further Reading. Example: Revenue Recognition (Java). 10. Data Source Architectural Patterns. Table Data Gateway. How It Works. When to Use It. Further Reading. Example: Person Gateway (C#). Example: Using ADO.NET Data Sets (C#). Row Data Gateway. How It Works. When to Use It. Example: A Person Record (Java). Example: A Data Holder for a Domain Object (Java). Active Record. How It Works. When to Use It. Example: A Simple Person (Java). Data Mapper. How It Works. When to Use It. Example: A Simple Database Mapper (Java). Example: Separating the Finders (Java). Example: Creating an Empty Object (Java). 11. Object-Relational Behavioral Patterns. Unit of Work. How It Works. When to Use It. Example: Unit of Work with Object Registration (Java) (by David Rice). Identity Map. How It Works. When to Use It. Example: Methods for an Identity Map (Java). Lazy Load. How It Works. When to Use It. Example: Lazy Initialization (Java). Example: Virtual Proxy (Java). Example: Using a Value Holder (Java). Example: Using Ghosts (C#). 12. Object-Relational Structural Patterns. Identity Field. How It Works. When to Use It. Further Reading. Example: Integral Key (C#). Example: Using a Key Table (Java). Example: Using a Compound Key (Java). Foreign Key Mapping. How It Works. When to Use It. Example: Single-Valued Reference (Java). Example: Multitable Find (Java). Example: Collection of References (C#). Association Table Mapping. How It Works. When to Use It. Example: Employees and Skills (C#). Example: Using Direct SQL (Java). Example: Using a Single Query for Multiple Employees (Java) (by Matt Foemmel and Martin Fowler). Dependent Mapping. How It Works. When to Use It. Example: Albums and Tracks (Java). Embedded Value. How It Works. When to Use It. Further Reading. Example: Simple Value Object (Java). Serialized LOB. How It Works. When to Use It. Example: Serializing a Department Hierarchy in XML (Java). Single Table Inheritance. How It Works. When to Use It. Example: A Single Table for Players (C#). Loading an Object from the Database. Class Table Inheritance. How It Works. When to Use It. Further Reading. Example: Players and Their Kin (C#). Concrete Table Inheritance. How It Works. When to Use It. Example: Concrete Players (C#). Inheritance Mappers. How It Works. When to Use It. 13. Object-Relational Metadata Mapping Patterns. Metadata Mapping. How It Works. When to Use It. Example: Using Metadata and Reflection (Java). Query Object. How It Works. When to Use It. Further Reading. Example: A Simple Query Object (Java). Repository (by Edward Hieatt and Rob Mee). How It Works. When to Use It. Further Reading. Example: Finding a Person's Dependents (Java). Example: Swapping Repository Strategies (Java). 14. Web Presentation Patterns. Model View Controller. How It Works. When to Use It. Page Controller. How It Works. When to Use It. Example: Simple Display with a Servlet Controller and a JSP View (Java). Example: Using a JSP as a Handler (Java). Example: Page Handler with a Code Behind (C#). Front Controller. How It Works. When to Use It. Further Reading. Example: Simple Display (Java). Template View. How It Works. When to Use It. Example: Using a JSP as a View with a Separate Controller (Java). Example: ASP.NET Server Page (C#). Transform View. How It Works. When to Use It. Example: Simple Transform (Java). Two Step View. How It Works. When to Use It. Example: Two Stage XSLT (XSLT). Example: JSP and Custom Tags (Java). Application Controller. How It Works. When to Use It. Further Reading. Example: State Model Application Controller (Java). 15. Distribution Patterns. Remote Facade. How It Works. When to Use It. Example: Using a Java Session Bean as a Remote Facade (Java). Example: Web Service (C#). Data Transfer Object. How It Works. When to Use It. Further Reading. Example: Transferring Information about Albums (Java). Example: Serializing Using XML (Java). 16. Offline Concurrency Patterns. Optimistic Offline Lock (by David Rice). How It Works. When to Use It. Example: Domain Layer with Data Mappers (165) (Java). Pessimistic Offline Lock (by David Rice). How It Works. When to Use It. Example: Simple Lock Manager (Java). Coarse-Grained Lock (by David Rice and Matt Foemmel). How It Works. When to Use It. Example: Shared Optimistic Offline Lock (416) (Java). Example: Shared Pessimistic Offline Lock (426) (Java). Example: Root Optimistic Offline Lock (416) (Java). Implicit Lock (by David Rice). How It Works. When to Use It. Example: Implicit Pessimistic Offline Lock (426) (Java). 17. Session State Patterns. Client Session State. How It Works. When to Use It. Server Session State. How It Works. When to Use It. Database Session State. How It Works. When to Use It. 18. Base Patterns. Gateway. How It Works. When to Use It. Example: A Gateway to a Proprietary Messaging Service (Java). Mapper. How It Works. When to Use It. Layer Supertype. How It Works. When to Use It. Example: Domain Object (Java). Separated Interface. How It Works. When to Use It. Registry. How It Works. When to Use It. Example: A Singleton Registry (Java). Example: Thread-Safe Registry (Java) (by Matt Foemmel and Martin Fowler). Value Object. How It Works. When to Use It. Money. How It Works. When to Use It. Example: A Money Class (Java) (by Matt Foemmel and Martin Fowler). Special Case. How It Works. When to Use It. Further Reading. Example: A Simple Null Object (C#). Plugin (by David Rice and Matt Foemmel). How It Works. When to Use It. Example: An Id Generator (Java). Service Stub (by David Rice). How It Works. When to Use It. Example: Sales Tax Service (Java). Record Set. How It Works. When to Use It. References Index. 0321127420T10162002

    10 in stock

    £46.79

  • Foundations of Software Testing ISTQB

    3 in stock

    £46.99

  • Kanban in Action

    Manning Publications Kanban in Action

    4 in stock

    Book SynopsisDESCRIPTION Kanban is an emerging second generation agile method inspired by five decades of process excellence in the Japanese auto manufacturing industry, also known as lean thinking. kanban uses visual management techniques that involve stakeholders and facilitates understanding of how the work works. It helps teams adjust demand to capacity, reduce lead times, and create a driver for continuous improvement. Kanban in Action is a down-to-earth, no-frills, get-to-know-the-ropes introduction to kanban. It's based on the real-world experience and observations from two kanban coaches who have introduced this process to dozens of teams. This book covers basic but powerful techniques on how to visualize and track work, construct a kanban board, and how to visualize queues and bottlenecks, and more. RETAIL SELLING POINTS  Down-to-earth introduction to Kanban  Practical advice for making workflow faster  Real-world case studies of Kanban at work AUDIENCE This book is written for all members of the development team, including leaders, coders, and business stakeholders. No experience with kanban is required. ABOUT THE TECHNOLOGY Kanban is an agile software development method for continuous collaborative improvement based on the lean principles of visualizing work, limiting the amount of work in process, and managing the flow of work.

    4 in stock

    £34.19

  • Fast Python for Data Science

    Manning Publications Fast Python for Data Science

    4 in stock

    Book SynopsisFast Python for Data Science is a hands-on guide to writing Python code that can process more data, faster, and with less resources. It takes a holistic approach to Python performance, showing you how your code, libraries, and computing architecture interact and can be optimized together. Written for experienced practitioners, Fast Python for Data Science dives right into practical solutions for improving computation and storage efficiency. You'll experiment with fun and interesting examples such as rewriting games in lower-level Cython and implementing a MapReduce framework from scratch. Finally, you'll go deep into Python GPU computing and learn how modern hardware has rehabilitated some former antipatterns and made counterintuitive ideas the most efficient way of working. About the technologyFast, accurate systems are vital for handling the huge datasets and complex analytical algorithms that are common in modern data science. Python programmers need to boost performance by writing faster pure-Python programs, optimizing the use of libraries, and utilizing modern multi-processor hardware; Fast Python for Data Science shows you how. Trade Review"If you want to go beyond scripting in Python, you need this book." Brian S. Cole. "If you need to improve the performance of your Python code, you need to read this book!" Lorenzo DeLeon "I really like how the book walks you through interesting projects and code. I think that does a great job of demonstrating the concepts and giving you something to play with." Dana Robinson "Explains the essential concepts required for using high performance Python." Biswanath Chowdhury "A must have to speed up your Python code." Abhilash Babu Jyotheendra Babu

    4 in stock

    £41.39

  • Foundations of Python Network Programming

    Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Foundations of Python Network Programming

    2 in stock

    Book SynopsisThis second edition of Foundations of Python Network Programming targets Python 2.5 through Python 2.7, the most popular production versions of the language. Python has made great strides since Apress released the first edition of this book back in the days of Python 2.3. The advances required new chapters to be written from the ground up, and others to be extensively revised. You will learn fundamentals like IP, TCP, DNS and SSL by using working Python programs; you will also be able to familiarize yourself with infrastructure components like memcached and message queues. You can also delve into network server designs, and compare threaded approaches with asynchronous event-based solutions. But the biggest change is this edition''s expanded treatment of the web. The HTTP protocol is covered in extensive detail, with each feature accompanied by sample Python code. You can use your HTTP protocol expertise by studying an entire chapter on screen scraping and you can Table of Contents Introduction to Client/Server Networking UDP TCP Socket Names and DNS Network Data and Network Errors TLS and SSL Server Architecture Caches, Message Queues, and Map-Reduce HTTP Screen Scraping Web Applications E-mail Composition and Decoding SMTP POP IMAP Telnet and SSH FTP RPC

    2 in stock

    £49.49

  • The Recursive Book Of Recursion: Ace the Coding

    No Starch Press,US The Recursive Book Of Recursion: Ace the Coding

    1 in stock

    Book SynopsisRecursion, and recursive algorithms, have a reputation for being intimidating. But there's nothing magical about recursion. Its fearsome reputation is more a product of poor teaching than of the complexity of recursion itself. This book teaches the basics of recursion, exposes the ways it's often poorly taught, and clarifies the fundamental principles behind all recursive algorithms. It is project-based, containing complete, runnable programs in both Python and JavaScript, and covers several recursive algorithms for common tasks.Trade Review"This book takes the mystery out of recursion. By the time you finish it, you'll see recursion as a powerful technique, but also a technique usable by mere mortals." —John D. Cook"... this book is a worthy read for a developer who wants to deepen their knowledge of advanced programming topics. While basic recursion is included in early programming curriculum, it typically stops at examples that can be reproduced with iteration. In this book, Al Sweigart starts are these basics and quickly expands to include types of algorithms that benefit from recursion, such as tree traversal and divide-and-conquer. Though focused on those actively interviewing for engineering roles, the book is also a good fit for professional development, an engineering book club, or a brain tickler for your technical book shelf. The real life projects at the end are especially informative, which is why I think... (this review 'recurs' to the beginning)"—Adam DuVander, @adamd, Founder of EveryDeveloper"I have felt for a long time that I had a pretty good handle on the subject of recursion . . . Thanks to Al Sweigart's new book, I think I'm far better informed than I was before. I will re-read this book a couple more times, just to add to the knowledge."—Ronnie Tucker, Editor, Full Circle Magazine

    1 in stock

    £28.49

  • Spring in Action

    Manning Publications Spring in Action

    5 in stock

    Book Synopsis"To me, this has always been the defacto standard for documentation on the Spring Framework. I bought the 1st edition when it first came out as we were converting alegacy app to Spring and this book was essential in learning how the current version worked." - Tony Sweets A new edition of the classic bestseller! Spring in Action, 6th Edition covers all of the new features of Spring 5.3 and Spring Boot 2.4 along with examples of reactive programming, Spring Security for REST Services, and bringing reactivity to your databases. You'll also find the latest Spring best practices, including Spring Boot for application setup and configuration. about the technologySpring Framework makes life easier for Java developers. The latest version of Spring brings its productivity-focused approach to microservices, reactive development, and other modern application designs. With Spring Boot now fully integrated, you can start even complex projects with minimal configuration code. And in recent version of Spring, the new RSocket specification makes your application's networking symmetrical—perfect for reactive design. about the bookSpring in Action, 6th Edition guides you through Spring's core features explained in Craig Walls' famously clear style. You'll roll up your sleeves and build a secure database-backed web app step by step. Along the way, you'll explore reactive programming, microservices, service discovery, RESTful APIs, deployment, and expert best practices. The latest version of a bestseller upgraded for Spring 5.3 and Spring Boot 2.4, this new edition also covers the RSocket specification for reactive networking between applications and delves deep into essential features of Spring Security. Whether you're just discovering Spring or leveling up to Spring 5.3, this Manning classic is your ticket! what's insideBuilding reactive applicationsRelational and NoSQL databasesIntegrating via HTTP and REST-based services, and sand reactive RSocket servicesReactive programming techniquesDeploying applications to traditional servers and containersSecuring applications with Spring SecurityCovers Spring 5.2 about the authorCraig Walls is a principal software engineer at Pivotal, a member of the Spring engineering team, a popular author, and a frequent conference speaker.We interviewed Craig as a part of our Six Questions series. Check it out here.Trade Review"If you're really serious about Spring, the book should lie next to the keyboard and serve as a pillow at night." Christian Kreutzer-Beck "I've owned every version of the this book and it's still my go to for the core Spring framework. It still lives up to expectations." Tony Sweets "Great read whether you are a beginning Spring developer or an experienced developer seeking a technology upgrade." Becky Huett "Even if you've read an older edition and you think you know Spring, I guarantee you will not regret the purchase!" Conor Redmond "Spring in Action 6th Edition is a comprehensive manuscript packed dense with a wealth of extensive information and myriad of resources to help you get a solid grounding of the fundamental Spring concepts!" Iain Campbell

    5 in stock

    £43.19

  • DomainDriven Design Distilled

    Pearson Education (US) DomainDriven Design Distilled

    2 in stock

    Book SynopsisVaughn Vernon is a champion of simplifying software architecture and development, with an emphasis on reactive methods. He has a unique ability to teach and lead with Domain-Driven Design using lightweight tools to unveil unimagined value. He helps organizations achieve competitive advantages using enduring tools such as architectures, patterns, and approaches, and through partnerships between business stakeholders and software developers.Table of Contents Preface xiAcknowledgments xvAbout the Author xvii Chapter 1: DDD for Me 1 Will DDD Hurt? 2 Good, Bad, and Effective Design 3 Strategic Design 7 Tactical Design 8 The Learning Process and Refining Knowledge 9 Let’s Get Started! 10 Chapter 2: Strategic Design with Bounded Contexts and the Ubiquitous Language 11 Domain Experts and Business Drivers 17 Case Study 21 Fundamental Strategic Design Needed 25 Challenge and Unify 29 Developing a Ubiquitous Language 34 Architecture 41 Summary 44 Chapter 3: Strategic Design with Subdomains 45 What Is a Subdomain? 46 Types of Subdomains 46 Dealing with Complexity 47 Summary 50 Chapter 4: Strategic Design with Context Mapping 51 Kinds of Mappings 54 Making Good Use of Context Mapping 60 An Example in Context Mapping 70 Summary 73 Chapter 5: Tactical Design with Aggregates 75 Why Used 76 Aggregate Rules of Thumb 81 Modeling Aggregates 88 Summary 98 Chapter 6: Tactical Design with Domain Events 99 Designing, Implementing, and Using Domain Events 100 Event Sourcing 107 Summary 109 Chapter 7: Acceleration and Management Tools 111 Event Storming 112 Managing DDD on an Agile Project 125 Timeboxed Modeling 132 Summary 136 References 137 Index 139

    2 in stock

    £26.54

  • Design It! : Pragmatic Programmers

    Pragmatic Bookshelf Design It! : Pragmatic Programmers

    2 in stock

    Book SynopsisDon't engineer by coincidence-design it like you mean it! Filled with practical techniques, Design It! is the perfect introduction to software architecture for programmers who are ready to grow their design skills. Lead your team as a software architect, ask the right stakeholders the right questions, explore design options, and help your team implement a system that promotes the right -ilities. Share your design decisions, facilitate collaborative design workshops that are fast, effective, and fun-and develop more awesome software! With dozens of design methods, examples, and practical know-how, Design It! shows you how to become a software architect. Walk through the core concepts every architect must know, discover how to apply them, and learn a variety of skills that will make you a better programmer, leader, and designer. Uncover the big ideas behind software architecture and gain confidence working on projects big and small. Plan, design, implement, and evaluate software architectures and collaborate with your team, stakeholders, and other architects. Identify the right stakeholders and understand their needs, dig for architecturally significant requirements, write amazing quality attribute scenarios, and make confident decisions. Choose technologies based on their architectural impact, facilitate architecture-centric design workshops, and evaluate architectures using lightweight, effective methods. Write lean architecture descriptions people love to read. Run an architecture design studio, implement the architecture you've designed, and grow your team's architectural knowledge. Good design requires good communication. Talk about your software architecture with stakeholders using whiteboards, documents, and code, and apply architecture-focused design methods in your day-to-day practice. Hands-on exercises, real-world scenarios, and practical team-based decision-making tools will get everyone on board and give you the experience you need to become a confident software architect.

    2 in stock

    £31.82

  • Math and Architectures of Deep Learning

    Manning Publications Math and Architectures of Deep Learning

    20 in stock

    Book SynopsisThe mathematical paradigms that underlie deep learning typically start out as hard-to-read academic papers, often leaving engineers in the dark about how their models actually function. Math and Architectures of Deep Learning bridges the gap between theory and practice, laying out the math of deep learning side by side with practical implementations in Python and PyTorch. Written by deep learning expert Krishnendu Chaudhury, you'll peer inside the “black box” to understand how your code is working, and learn to comprehend cutting-edge research you can turn into practical applications. about the technology It's important to understand how your deep learning models work, both so that you can maintain them efficiently and explain them to other stakeholders. Learning mathematical foundations and neural network architecture can be challenging, but the payoff is big. You'll be free from blind reliance on pre-packaged DL models and able to build, customize, and re-architect for your specific needs. And when things go wrong, you'll be glad you can quickly identify and fix problems. about the book Math and Architectures of Deep Learning sets out the foundations of DL in a way that's both useful and accessible to working practitioners. Each chapter explores a new fundamental DL concept or architectural pattern, explaining the underpinning mathematics and demonstrating how they work in practice with well-annotated Python code. You'll start with a primer of basic algebra, calculus, and statistics, working your way up to state-of-the-art DL paradigms taken from the latest research. By the time you're done, you'll have a combined theoretical insight and practical skills to identify and implement DL architecture for almost any real-world challenge. Trade Review'This is a book that will reward your patience and perseverance with a clear and detailed knowledge of deep learning mathematics and associated techniques.' Tony Holdroyd 'Most online machine learning courses teach you how to get stuff done, but they don't give you the underlying math. If you want to know, this is the book for you!' Wiebe de Jong 'A really interesting book for people that want to understand the underlying mathematical mechanism of deep learning.' Julien Pohie 'Gives a unique perspective about machine learning and mathematical approaches.' Krzysztof Kamyczek 'An awesome book to get the grasp of the important mathematical skills to understand the very basics of deep learning.' Nicole KoenigsteinTable of Contentstable of contents READ IN LIVEBOOK 1AN OVERVIEW OF MACHINE LEARNING AND DEEP LEARNING READ IN LIVEBOOK 2INTRODUCTION TO VECTORS, MATRICES AND TENSORS FROM MACHINE LEARNING AND DATA SCIENCE POINT OF VIEW READ IN LIVEBOOK 3INTRODUCTION TO VECTOR CALCULUS FROM MACHINE LEARNING POINT OF VIEW READ IN LIVEBOOK 4LINEAR ALGEBRAIC TOOLS IN MACHINE LEARNING AND DATA SCIENCE READ IN LIVEBOOK 5PROBABILITY DISTRIBUTIONS FOR MACHINE LEARNING AND DATA SCIENCE READ IN LIVEBOOK 6BAYESIAN TOOLS FOR MACHINE LEARNING AND DATA SCIENCE READ IN LIVEBOOK 7FUNCTION APPROXIMATION: HOW NEURAL NETWORKS MODEL THE WORLD READ IN LIVEBOOK 8TRAINING NEURAL NETWORKS: FORWARD AND BACKPROPAGATION READ IN LIVEBOOK 9LOSS, OPTIMIZATION AND REGULARIZATION READ IN LIVEBOOK 10ONE, TWO AND THREE DIMENSIONAL CONVOLUTION AND TRANSPOSED CONVOLUTION IN NEURAL NETWORKS 11 IMAGE ANALYSIS: 2D CONVOLUTION BASED NEURAL NETWORK ARCHITECTURES FOR OBJECT RECOGNITION AND DETECTION 12 VIDEO ANALYSIS: 3D CONVOLUTION BASED SPATIO TEMPORAL NEURAL NETWORK ARCHITECTURES READ IN LIVEBOOK APPENDIX A: APPENDIX A.1Dot Product and cosine of the angle between two vectors A.2Computing variance of Gaussian Distribution A.3Two Theorems in Statistic

    20 in stock

    £47.47

  • Implementing Lean Software Development

    Pearson Education (US) Implementing Lean Software Development

    4 in stock

    Book SynopsisMary Poppendieck is a seasoned leader in operations and product development with more than thirty years of IT experience. She has led teams implementing solutions ranging from enterprise supply chain management to digital media, and built one of 3M's first Just-in-Time Lean production systems. Mary is the president of Poppendieck LLC, which specializes in bringing Lean techniques to software development. Tom Poppendieck is an enterprise analyst, architect, and agile process mentor with more than twenty-five years of experience developing and implementing complex systems. He currently assists organizations in applying Lean principles and tools to software development processes. Table of ContentsForeword by Jeff Sutherland xvii Foreword by Kent Beck xx Preface xxiii Chapter 1: History 1 Interchangeable Parts 1 Interchangeable People 2 The Toyodas 3 The Toyota Production System 4 Taiichi Ohno 5 Shigeo Shingo 6 Just-in-Time 7 Lean 11 Lean Manufacturing / Lean Operations 11 Lean Supply Chain 12 Lean Product Development 13 Lean Software Development 17 Try This 17 Chapter 2: Principles 19 Principles and Practices 19 Software Development 20 The Seven Principles of Lean Software Development 23 Principle 1: Eliminate Waste 23 Principle 2: Build Quality In 25 Principle 3: Create Knowledge 29 Principle 4: Defer Commitment 32 Principle 5: Deliver Fast 34 Principle 6: Respect People 36 Principle 7: Optimize the Whole 38 Try This 42 Chapter 3: Value 43 Lean Solutions 43 Google 43 From Concept to Cash 46 Delighted Customers 49 Deep Customer Understanding 50 Focus on the Job 51 The Customer-Focused Organization 52 Leadership 52 Complete Teams 57 Custom Development 60 From Projects to Products 60 IT--Business Collaboration 62 Try This 65 Chapter 4: Waste 67 Write Less Code 67 Zara 67 Complexity 69 The Seven Wastes 73 Partially Done Work 74 Extra Features 75 Relearning 76 Handoffs 77 Task Switching 78 Delays 80 Defects 81 Mapping the Value Stream 83 Preparation 83 Examples 85 Future Value Stream Maps 92 Try This 92 Chapter 5: Speed 95 Deliver Fast 95 PatientKeeper 95 Time: The Universal Currency 98 Queuing Theory 100 Little's Law 100 Variation and Utilization 101 Reducing Cycle Time 103 Try This 114 Chapter 6: People 117 A System of Management 117 The Boeing 777 117 W. Edwards Deming 120 Why Good Programs Fail 124 Teams 126 What Makes a Team? 126 Expertise 129 Leadership 132 Responsibility-Based Planning and Control 133 The Visual Workspace 136 Self-Directing Work 137 Incentives 141 Performance Evaluations 141 Compensation 143 Try This 147 Chapter 7: Knowledge 149 Creating Knowledge 149 Rally 149 What, Exactly, Is Your Problem? 152 A Scientific Way of Thinking 154 Keeping Track of What You Know 155 Just-in-Time Commitment 159 Set-Based Design 160 Refactoring 164 Problem Solving 168 A Disciplined Approach 169 Kaizen Events 173 Try This 175 Chapter 8: Quality 177 Feedback 177 The Polaris Program 177 Release Planning 179 Architecture 182 Iterations 183 Discipline 190 The Five S's 190 Standards 193 Mistake-Proofing 196 Test-Driven Development 198 Configuration Management 201 Continuous Integration 202 Nested Synchronization 203 Try This 204 Chapter 9: Partners 207 Synergy 207 Emergency! 207 Open Source 209 Global Networks 210 Outsourcing 214 Contracts 217 The T5 Agreement 217 The PS 2000 Contract 218 Relational Contracts 219 Try This 221 Chapter 10: Journey 223 Where Do You Want to Go? 223 A Computer on Wheels 224 A Long-Term Perspective 225 Centered on People 227 What Have We Learned? 229 Six Sigma 229 Theory of Constraints 230 Hypothesis 234 Training 234 Thinking 236 Measurement 237 Roadmap 242 Try This 243 Optimize the Whole 243 Respect People 243 Deliver Fast 244 Defer Commitment 244 Create Knowledge 245 Build Quality In 245 Eliminate Waste 246 Bibliography 247 Index 257

    4 in stock

    £33.29

  • Debugging Teams

    O'Reilly Media Debugging Teams

    1 in stock

    Book SynopsisThe authors share their insights on how to lead a team effectively, navigate an organization, and build a healthy relationship with the users of your software. This is valuable information from two respected software engineers whose popular series of talks-including "Working with Poisonous People"-has attracted hundreds of thousands of followers.

    1 in stock

    £20.39

  • Writing Effective Use Cases

    Pearson Education (US) Writing Effective Use Cases

    2 in stock

    Book SynopsisAlistair Cockburn is a recognized expert on use cases. He is consulting fellow at Humans and Technology, where he is responsible for helping clients succeed with object-oriented projects. He has more than twenty years of experience leading projects in hardware and software development in insurance, retail, and e-commerce companies and in large organizations such as the Central Bank of Norway and IBM. 0201702258AB07302002 Table of Contents Preface. Acknowlegments. 1. Introduction. What Is a Use Case (More or Less)? USE CASE 1. Buy Stocks over the Web. USE CASE 2. Get Paid for Car Accident. USE CASE 3. Register Arrival of a Box. Your Use Case Is Not My Use Case. USE CASE 4. Buy Something (Casual Version). USE CASE 5. Buy Something (Fully Dressed Version). Steve Adolph: “Discovering” Requirements in New Territory. Requirements and Use Cases. Use Cases as Project-Linking Structure. Figure 1: The “Hub-and-Spoke” Model of Requirements. When Use Cases Add Value. Manage Your Energy. Warm Up with a Usage Narrative. Usage Narrative: Getting “Fast Cash”. Exercises. PART I. THE USE CASE BODY PARTS. 2. The Use Case as a Contract for Behavior. Interactions between Actors with Goals. Actors Have Goals. Figure 2: An Actor with a Goal Calls on the Responsibilities of Another. Goals Can Fail. Interactions Are Compound. A Use Case Collects Scenarios. Figure 3: Striped Trousers: Scenarios Succeed or Fail. Figure 4: The Striped Trousers Showing Subgoals. Contract between Stakeholders with Interests. Figure 5: The Sud Serves the Primary Actor, Protecting Offstage Stakeholders. The Graphical Model. Figure 6: Actors and Stakeholders. Figure 7: Behavior. Figure 8: Use Case as Responsibility Invocation. Figure 9: Interactions as Composite. 3. Scope. Table a Sample In/Out List. Functional Scope. The Actor-Goal List. Table a Sample Actor-Goal List. The Use Case Briefs. Table Sample Use Case Briefs. Design Scope. Figure 10: Design Scope Can Be Any Size. Using Graphical Icons to Highlight the Design Scope. Design Scope Examples. Enterprise-to-System Examples. USE CASE 6 Add New Service (Enterprise). USE CASE 7 Add New Service (Acura). Many Computers to One Application. USE CASE 8 Enter and Update Requests (Joint System). USE CASE 9 Add New Service (into Acura). USE CASE 10 Note New Service Request (in BSSO). USE CASE 11 Update Service Request (in BSSO). USE CASE 12 Note Updated Request (in Acura). Figure 11: Use Case Diagrams for Acura-BSSO. Figure 12: A Combined Use Case Diagram for Acura-BSSO. Nuts and Bolts Use Cases. USE CASE 13 Serialize Access to a Resource. USE CASE 14 Apply a Lock Conversion Policy. USE CASE 15 Apply an Access Compatibility Policy. USE CASE 16 Apply an Access Selection Policy. USE CASE 17 Make Service Client Wait for Resource Access 49 The Outermost Use Cases. Using the Scope-Defining Work Products. Exercises. 4. Stakeholders and Actors. Stakeholders. The Primary Actor. Why Primary Actors Are Unimportant (and Important). Actors versus Roles. Characterizing the Primary Actors. Table a Sample Actor Profile Table. Supporting Actors. The System Under Discussion. Internal Actors and White-Box Use Cases. Exercises. 5. Three Named Goal Levels. User Goals (Blue, Sea-Level). Figure 13: Use Case Levels. Two Levels of Blue. Summary Level (White, Cloud/ Kite). USE CASE 18 Operate an Insurance Policy+. The Outermost Use Cases Revisited. Subfunctions (Indigo/Black, Underwater/Clam). Summarizing Goal Levels. Using Graphical Icons to Highlight Goal Levels. Finding the Right Goal Level. Finding the User's Goal. Raising and Lowering Goal Levels. Figure 14: Ask “Why” to Shift Levels. A Longer Writing Sample: “Handle a Claim” at Several Levels. USE CASE 19 Handle a Claim (Business). USE CASE 20 Evaluate Work Comp Claim. USE CASE 21 Handle a Claim (Systems) +. USE CASE 22 Register a Loss. USE CASE 23 Find a Whatever (Problem Statement). Exercises. 6. Preconditions, Triggers, and Guarantees. Preconditions. Minimal Guarantees. Success Guarantee. Triggers. Exercises. 7. Scenarios and Steps. The Main Success Scenario. The Common Surrounding Structure. The Scenario Body. Action Steps. Guidelines. GUIDELINE 1: Use Simple Grammar. GUIDELINE 2: Show Clearly “Who Has the Ball”. GUIDELINE 3: Write from a Bird's Eye View. GUIDELINE 4: Show the Process Moving Forward. GUIDELINE 5: Show the Actor's Intent, Not the Movements. GUIDELINE 6: Include a “Reasonable” Set of Actions. Figure 15: A Transaction Has Four Parts. GUIDELINE 7: “Validate,” Don't “Check Whether”. GUIDELINE 8: Optionally Mention the Timing. GUIDELINE 9: Idiom: “User Has System a Kick System B”. GUIDELINE 10: Idiom: “Do Steps x-y Until Condition”. To Number or Not to Number. Exercises. 8. Extensions. Extension Basics. The Extension Conditions. Brainstorm All Conceivable Failures and Alternative Courses. GUIDELINE 11: Make the Condition Say What Was Detected. Rationalize the Extensions List. Rollup Failures. Extension Handling. GUIDELINE 12: Indent Condition Handling. Failures within Failures. Creating a New Use Case from an Extension. Exercises. 9. Technology and Data Variations. Figure 16: Technology Variations Using Specialization in UML. 10. Linking Use Cases. Sub Use Cases. Extension Use Cases. Figure 17: UML Diagram of Extension Use Cases. When to Use Extension Use Cases. Exercises. 11. Use Case Formats. Formats to Choose From. Fully Dressed. USE CASE 24 Fully Dressed Use Case Template. Casual. USE CASE 25 Actually Login (Casual Version). One-Column Table. Table 1 One-Column Table Format of a Use Case. Two-Column Table. Table 1 Two-Column Table. RUP Style. USE CASE 26 Register for Courses. If-Statement Style. Occam Style. Diagram Style. The UML Use Case Diagram. Forces Affecting Use Case Writing Styles. Consistency. Complexity. Standards for Five Project Types. For Requirements Elicitation. USE CASE 27 Elicitation Template—Oble a New Biscum. For Business Process Modeling. USE CASE 28 Business Process Template—Symp a Carstromming. For Sizing the Requirements. USE CASE 29 Sizing Template—Burble the Tramling. For a Short, High-Pressure Project. USE CASE 30 High-Pressure Template: Kree a Ranfath. For Detailed Functional Requirements. USE CASE 31 Use Case Name—Nathorize a Permion. 1Conclusion. 1Exercise. PART II. FREQUENTLY DISCUSSED TOPICS. 12. When Are We Done. On Being Done. 13. Scaling Up to Many Use Cases. Say Less about Each One (Low-Precision Representation). Create Clusters of Use Cases. 14. CRUD and Parameterized Use Cases. CRUD Use Cases. USE CASE 32 Manage Reports. USE CASE 33 Save Report. Parameterized Use Cases. 15. Business Process Modeling. Modeling versus Designing. Work from the Core Business. Figure 18: Core Business Black Box. Figure 19: New Business Design in White Box. Work from Business Process to Technology. Figure 20: New Business Design in White Box (Again). Figure 21: New Business Process in Black-Box System Use Cases. Work from Technology to Business Process. Linking Business and System Use Cases. Rusty Walters: Business Modeling and System Requirements. 16. The Missing Requirements. Precision in Data Requirements. Cross-linking from Use Cases to Other Requirements. Figure 22: “Hub-and-Spoke” Model of Requirements. 17. Use Cases in the Overall Process. Use Cases in Project Organization. Organize by Use Case Titles. Table 1 Sample Planning Table. Handle Use Cases Crossing Releases. Deliver Complete Scenarios. Use Cases to Task or Feature Lists. USE CASE 34 Capture Trade-In. Table Work List for Capture Trade-In. Use Cases to Design. A Special Note to Object-Oriented Designers. Use Cases to UI Design. Use Cases to Test Cases. USE CASE 35 Order Goods, Generate Invoice (Testing Example). Table 1 Main Success Scenario Tests (Good Credit Risk). Table 1 Main Success Scenario Tests (Bad Credit Risk). The Actual Writing. A Branch-and-Join Process. Time Required per Use Case. Collecting Use Cases from Large Groups. Andy Kraus: Collecting Use Cases from a Large, Diverse Lay Group. 18. Use Case Briefs and Extreme Programming. 19. Mistakes Fixed. No System. No Primary Actor. Too Many User Interface Details. Very Low Goal Levels. Purpose and Content Not Aligned. Advanced Example of Too Much UI. USE CASE 36 Research a Solution—Before. USE CASE 37 Research Possible Solutions—After. PART III. REMINDERS FOR THE BUSY. Chatper 21. Reminders for Each Use Case. Reminder 1: A Use Case Is a Prose Essay. Reminder 2: Make the Use Case Easy to Read. Reminder 3: Just One Sentence Form. Reminder 4: “Include” Sub Use Cases. Reminder 5: Who Has the Ball. Reminder 6: Get the Goal Level Right. Figure 23: Ask “Why” to Shift Levels. Reminder 7: Keep the GUI Out. Reminder 8: Two Endings. Reminder 9: Stakeholders Need Guarantees. Reminder 10: Preconditions. Reminder 11: Pass/Fail Tests for One Use Case. Table 2 Pass/Fail Tests for One Use Case. 22. Reminders for the Use Case Set. Reminder 12: An Ever-Unfolding Story. Reminder 13: Both Corporate Scope and System Scope. Reminder 14: Core Values and Variations. Reminder 15: Quality Questions across the Use Case Set. 23. Reminders for Working on the Use Cases. Reminder 16: It's Just3 (Where's Chapter 4?). Reminder 17: Work Breadth First. Figure 24: Work Expands with Precision. Reminder 18: The 12-Step Recipe. Reminder 19: Know the Cost of Mistakes. Reminder 20: Blue Jeans Preferred. Reminder 21: Handle Failures. Reminder 22: Job Titles Sooner and Later. Reminder 23: Actors Play Roles. Reminder 14: The Great Drawing Hoax. Figure 25: “Mommy, I Want to Go Home.”. Figure 26: Context Diagram in Ellipse Figure Form. Table 2 Actor-Goal List for Context Diagram. Reminder 25: The Great Tool Debate. Reminder 26: Project Planning Using Titles and Briefs. Appendices. Appendix A. Use Cases in UML. A.1 Ellipses and Stick Figures. A.2 UML's Includes Relation. Figure A.1: Drawing Includes. GUIDELINE 13: Draw Higher Goals Higher. A.3 UML's Extends Relation. Figure A.2: Drawing Extends. GUIDELINE 14: Draw Extending Use Cases Lower. GUIDELINE 15: Use Different Arrow Shapes. Correct Use of Extends. Figure A.3: Three Interrupting Use Cases Extending a Base Use Case. Extension Points. A.4 UML's Generalizes Relations. Correct Use of Generalizes. Figure A.4: Drawing Generalizes. Draw General Goals Higher. Hazards of Generalizes. Figure A.5: Hazardous Generalization — Closing a Big Deal. Figure A.6: Correctly Closing a Big Deal. A.5 Subordinate versus Sub Use Cases. A.6 Drawing Use Case Diagrams. GUIDELINE 16: User Goals in a Context Diagram. GUIDELINE 17: Supporting Actors on the Right. A.7 Write Text-based Use Cases Instead. Appendix B. Answers to (Some) Exercises. Chapter 3 (page 51). Figure B.1: Design Scopes for the ATM. Chapter 4 (page 60). Chapter 5 (page 79). Chapter 6 (page 85). Chapter 7 (page 98). USE CASE 38 Use the Order Processing System. Chapter 8 (page 110). USE CASE 39 Buy Stocks Over the Web. Chapter 11 (page 138). USE CASE 40 Perform Clean Spark Plugs Service. Appendix C: Glossary. Appendix D: Readings Index. 0201702258T04062001

    2 in stock

    £37.79

  • Microservice APIs in Python

    Manning Publications Microservice APIs in Python

    15 in stock

    Book SynopsisMicroservice APIs in Python shares successful strategies and techniques for designing Microservices systems, with a particular emphasis on creating easy-to-consume APIs.This practical guide focuses on implementation over philosophizing and has just enough theory to get you started. You'll quickly go hands on designing the architecture for a microservices platform, produce standard specifications for REST and GraphQL APIs, and bake in authentication features to keep your APIs secure. Written in a framework-agnostic manner, its universal principles of API and microservices design can easily be applied to your favorite stack and toolset. About the TechnologyStandard Python web applications, such as those you'd typically build with Django or Flask, can be hard to scale and maintain when built as monoliths. Microservices design makes it possible to isolate key features and functionality as independently written and maintained services. To take advantage of this more resilient architecture, you need to learn the patterns, frameworks, and tools that make Python-based microservices easy to build and manage.Trade Review"Read this book now. It will change your mind about how to architect your software and services!" Stuart Woodward "A thorough introduction to the concept of developing microservice APIs with Python." Rodney Weis "The Author has done an excellent job in explaining key concepts." Manish Jain "There are many pitfalls with microservices, and this book will provide you with all the knowledge you need to be properly prepared to create your first one!" Pierre-Michel Ansel "Before you start coding for your microservice please read this book once, irrespective of your programming language." Debmalya Jash "A roundhouse kick for all aspects regarding APIs and python." Björn Neuhaus "A very thorough discussion of the considerations that are involved in developing microservice APIs with Python." Rodney Weis "I really like both the breadth and depth of the content. It is exciting to see an entire book which focuses upon Python as a back-end component—for which I see a natural fit." Bryan Miller "A great book for Python developers to understand how to implement APIs using web frameworks." Sambasiva Andaluri "I genuinely feel smarter for having read this book and knowing that I can refer to it when I make my next design." Stuart Woodward

    15 in stock

    £41.39

© 2026 Book Curl

    • American Express
    • Apple Pay
    • Diners Club
    • Discover
    • Google Pay
    • Maestro
    • Mastercard
    • PayPal
    • Shop Pay
    • Union Pay
    • Visa

    Login

    Forgot your password?

    Don't have an account yet?
    Create account