Unit Testing: Principles, Practices, and Patterns


Vladimir Khorikov - 2019
    You’ll learn to spot which tests are performing, which need refactoring, and which need to be deleted entirely! Upgrade your testing suite with new testing styles, good patterns, and reliable automated testing.

You Had Me at "Hello, World": Mentoring Sessions with Industry Leaders at Microsoft, Facebook, Google, Amazon, Zynga and more!


Dona Sarkar - 2015
    Instead they shared with me their "career acumen" secrets, things they wished they had learned at school, but instead have had to learn the hard way..through years of experience. In this book, you will hear these leaders' secrets around: -Finding and using your superpowers , the qualities that make you completely unique and memorable - A script for how to negotiate your salary (in a non-aggressive way) and influence your managers and peers from day one - How to do that infamous "networking" thing everyone talks about, especially if you're not a networking event kind of person - How to have professional presence that sets you apart from everyone else - How to hit the ground running in the first 100 days and be the "rockstar" employee everyone talks about and wishes they could hire more of I've had all kinds of adventures during my 10 years of engineering at Microsoft but my absolute favorite thing has been building relationships, speaking to, and mentoring people (both in and out of the tech industry) on how to achieve their career goals while still being themselves. When I interviewed 25 tech leaders for advice on the questions I get over and over, I wanted to share it with more than just my mentees. This book is full of practical, do-today things as well as "scripts" and email templates that we have all actually used. Read the book and let's talk. I love reaching and meeting new people and you can now consider me “in your network” and I hope I can do the same for you. My best always, Dona

The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations


Gene Kim - 2015
    For decades, technology leaders have struggled to balance agility, reliability, and security. The consequences of failure have never been greater whether it's the healthcare.gov debacle, cardholder data breaches, or missing the boat with Big Data in the cloud.And yet, high performers using DevOps principles, such as Google, Amazon, Facebook, Etsy, and Netflix, are routinely and reliably deploying code into production hundreds, or even thousands, of times per day.Following in the footsteps of The Phoenix Project, The DevOps Handbook shows leaders how to replicate these incredible outcomes, by showing how to integrate Product Management, Development, QA, IT Operations, and Information Security to elevate your company and win in the marketplace."Table of contentsPrefaceSpreading the Aha! MomentIntroductionPART I: THE THREE WAYS1. Agile, continuous delivery and the three ways2. The First Way: The Principles of Flow3. The Second Way: The Principle of Feedback4. The Third Way: The Principles of Continual LearningPART II: WHERE TO START5. Selecting which value stream to start with6. Understanding the work in our value stream…7. How to design our organization and architecture8. How to get great outcomes by integrating operations into the daily work for developmentPART III: THE FIRST WAY: THE TECHNICAL PRACTICES OF FLOW9. Create the foundations of our deployment pipeline10. Enable fast and reliable automated testing11. Enable and practice continuous integration12. Automate and enable low-risk releases13. Architect for low-risk releasesPART IV: THE SECOND WAY: THE TECHNICAL PRACTICES OF FEEDBACK14*. Create telemetry to enable seeing abd solving problems15. Analyze telemetry to better anticipate problems16. Enable feedbackso development and operation can safely deploy code17. Integrate hypothesis-driven development and A/B testing into our daily work18. Create review and coordination processes to increase quality of our current workPART V: THE THRID WAY: THE TECHNICAL PRACTICES OF CONTINUAL LEARNING19. Enable and inject learning into daily work20. Convert local discoveries into global improvements21. Reserve time to create organizational learning22. Information security as everyone’s job, every day23. Protecting the deployment pipelinePART VI: CONCLUSIONA call to actionConclusion to the DevOps HandbookAPPENDICES1. The convergence of Devops2. The theory of constraints and core chronic conflicts3. Tabular form of downward spiral4. The dangers of handoffs and queues5. Myths of industrial safety6. The Toyota Andon Cord7. COTS Software8. Post-mortem meetings9. The Simian Army10. Transparent uptimeAdditional ResourcesEndnotes

Graph Theory With Applications To Engineering And Computer Science


Narsingh Deo - 2004
    GRAPH THEORY WITH APPLICATIONS TO ENGINEERING AND COMPUTER SCIENCE-PHI-DEO, NARSINGH-1979-EDN-1

Domain-Specific Languages


Martin Fowler - 2010
    In Domain-Specific Languages , noted software development expert Martin Fowler first provides the information software professionals need to decide if and when to utilize DSLs. Then, where DSLs prove suitable, Fowler presents effective techniques for building them, and guides software engineers in choosing the right approaches for their applications. This book's techniques may be utilized with most modern object-oriented languages; the author provides numerous examples in Java and C#, as well as selected examples in Ruby. Wherever possible, chapters are organized to be self-standing, and most reference topics are presented in a familiar patterns format. Armed with this wide-ranging book, developers will have the knowledge they need to make important decisions about DSLs--and, where appropriate, gain the significant technical and business benefits they offer. The topics covered include: - How DSLs compare to frameworks and libraries, and when those alternatives are sufficient - Using parsers and parser generators, and parsing external DSLs - Understanding, comparing, and choosing DSL language constructs - Determining whether to use code generation, and comparing code generation strategies - Previewing new language workbench tools for creating DSLs

Building Secure and Reliable Systems: Best Practices for Designing, Implementing, and Maintaining Systems


Heather Adkins - 2020
    In this book, experts from Google share best practices to help your organization design scalable and reliable systems that are fundamentally secure.Two previous O'Reilly books from Google--Site Reliability Engineering and The Site Reliability Workbook--demonstrated how and why a commitment to the entire service lifecycle enables organizations to successfully build, deploy, monitor, and maintain software systems. In this latest guide, the authors offer insights into system design, implementation, and maintenance from practitioners who specialize in security and reliability. They also discuss how building and adopting their recommended best practices requires a culture that is supportive of such change.You'll learn about secure and reliable systems through:Design strategiesRecommendations for coding, testing, and debugging practicesStrategies to prepare for, respond to, and recover from incidentsCultural best practices that help teams across your organization collaborate effectively

Microservice Patterns


Chris Richardson - 2017
    However, successful applications have a habit of growing. Eventually the development team ends up in what is known as monolithic hell. All aspects of software development and deployment become painfully slow. The solution is to adopt the microservice architecture, which structures an application as a services, organized around business capabilities. This architecture accelerates software development and enables continuous delivery and deployment of complex software applications.Microservice Patterns teaches enterprise developers and architects how to build applications with the microservice architecture. Rather than simply advocating for the use the microservice architecture, this clearly-written guide takes a balanced, pragmatic approach. You'll discover that the microservice architecture is not a silver bullet and has both benefits and drawbacks. Along the way, you'll learn a pattern language that will enable you to solve the issues that arise when using the microservice architecture. This book also teaches you how to refactor a monolithic application to a microservice architecture.

Kubernetes: Up & Running


Kelsey Hightower - 2016
    How's that possible? Google revealed the secret through a project called Kubernetes, an open source cluster orchestrator (based on its internal Borg system) that radically simplifies the task of building, deploying, and maintaining scalable distributed systems in the cloud. This practical guide shows you how Kubernetes and container technology can help you achieve new levels of velocity, agility, reliability, and efficiency.Authors Kelsey Hightower, Brendan Burns, and Joe Beda--who've worked on Kubernetes at Google--explain how this system fits into the lifecycle of a distributed application. You will learn how to use tools and APIs to automate scalable distributed systems, whether it is for online services, machine-learning applications, or a cluster of Raspberry Pi computers.Explore the distributed system challenges that Kubernetes addressesDive into containerized application development, using containers such as DockerCreate and run containers on Kubernetes, using Docker's Image format and container runtimeExplore specialized objects essential for running applications in productionReliably roll out new software versions without downtime or errorsGet examples of how to develop and deploy real-world applications in Kubernetes

Copying and Pasting from Stack Overflow


Vinit Nayak - 2016
    Mastering this art will not only make you the most desired developer in the market, but it will transform the craziest deadline into "Consider it done, Sir".

Intel Microprocessors 8086/8088, 80186/80188, 80286, 80386, 80486, Pentium, Prentium Proprocessor, Pentium II, III, 4


Barry B. Brey - 1991
    This text provides a comprehensive view of programming and interfacing of the Intel family of Microprocessors from the 8088 through the latest Pentium 4 microprocessor. Organized in an orderly and manageable format, it offers over 200 programming examples using the Microsoft Macro Assembler program, and provides a thorough description of each Intel family members, memory systems, and various I/O systems.

Software Architecture: Perspectives on an Emerging Discipline


Mary Shaw - 1996
    But, although they use these patterns purposefully, they often use them informally and nearly unconsciously. This book organizes this substantial emerging "folklore" of system design -- with its rich language of system description -- and closes the gap between the useful abstractions (constructs and patterns) of system design and the current models, notations and tools. It identifies useful patterns clearly, gives examples, compares them, and evaluates their utility in various settings -- allowing readers to develop a repertoire of useful techniques that goes beyond the single-minded current fads. KEY TOPICS: Examines the ways in which architectural issues can impact software design; shows how to design new systems in principled ways using well-understood architectural paradigms; emphasizes informal descriptions, touching lightly on formal notations and specifications, and the tools that support them; explains how to understand and evaluate the design of existing software systems from an architectural perspective; and presents concrete examples of actual system architectures that can serve as models for new designs. MARKET: For professional software developers looking for new ideas about system organization.

Microservice Architecture Aligning Principles, Practices, and Culture


Irakli Nadareishvili - 2016
    

Composing Software


Eric Elliott - 2018
    Most developers have a limited understanding of compositional techniques. It's time for that to change.In "Composing Software", Eric Elliott shares the fundamentals of composition, including both function composition and object composition, and explores them in the context of JavaScript. The book covers the foundations of both functional programming and object oriented programming to help the reader better understand how to build and structure complex applications using simple building blocks.You'll learn: • Functional programming • Object composition • How to work with composite data structures • Closures • Higher order functions • Functors (e.g., array.map) • Monads (e.g., promises) • Transducers • LensesAll of this in the context of JavaScript, the most used programming language in the world. But the learning doesn't stop at JavaScript. You'll be able to apply these lessons to any language. This book is about the timeless principles of software composition and its lessons will outlast the hot languages and frameworks of today. Unlike most programming books, this one may still be relevant 20 years from now.This book began life as a popular blog post series that attracted hundreds of thousands of readers and influenced the way software is built at many high growth tech startups and fortune 500 companies.

REST in Practice: Hypermedia and Systems Architecture


Jim Webber - 2010
    You'll learn techniques for implementing specific Web technologies and patterns to solve the needs of a typical company as it grows from modest beginnings to become a global enterprise.Learn basic Web techniques for application integrationUse HTTP and the Web’s infrastructure to build scalable, fault-tolerant enterprise applicationsDiscover the Create, Read, Update, Delete (CRUD) pattern for manipulating resourcesBuild RESTful services that use hypermedia to model state transitions and describe business protocolsLearn how to make Web-based solutions secure and interoperableExtend integration patterns for event-driven computing with the Atom Syndication Format and implement multi-party interactions in AtomPubUnderstand how the Semantic Web will impact systems design

Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services


Brendan Burns - 2018
    Building these systems is complicated and, because few formally established patterns are available for designing them, most of these systems end up looking very unique. This practical guide shows you how to use existing software design patterns for designing and building reliable distributed applications.Although patterns such as those developed more than 20 years ago by the Gang of Four were largely restricted to running on single machines, author Brendan Burns--a Partner Architect in Microsoft Azure--demonstrates how you can reuse several of them in modern distributed applications.Systems engineers and application developers will learn how these patterns provide a common language and framework for dramatically increasing the quality of your system.