Ultimate Monorepo and Bazel for Building Apps at Scale: Level Up Your Large-Scale Application Development with Monorepo and Bazel for Enhanced Productivity, Scalability, and Integration (English Edition)


Book Description

TAGLINE Unlock Next-Level Scalable App Development with Monorepo and Bazel KEY FEATURES ● Unleash the transformative power of Monorepos with Bazel, revolutionizing your development workflow. ● Elevate your build system to unmatched levels of efficiency and reliability through comprehensive Bazel mastery. ● Propel yourself into the future of software development by mastering Bazel and harnessing the potential of Monorepo architecture. ● Optimize your builds for peak efficiency and unwavering reliability with expert insights and techniques in Bazel utilization. ● Unlock the gateway to scalable applications by leveraging the dynamic synergy of Bazel and Monorepo for unparalleled success. DESCRIPTION “Ultimate Scalable Monorepo Apps with Bazel" is the go-to guide for developers and engineers looking to maximize the potential of Bazel within a monorepo setup. It explores the intricacies of building large-scale applications, contrasting the monorepo approach with polyrepo setups and highlighting benefits like streamlined dependency management and improved collaboration. Through practical examples and real-world case studies, you'll learn how to harness Bazel's features for faster build times and consistent results across environments. Structured to cover all aspects of Bazel and monorepo development, from initial setup to advanced topics like custom rule creation and dependency management, this book provides actionable insights to enhance your development workflow. This guide equips you with the knowledge and skills to efficiently manage large codebases and contribute to more robust, scalable, and maintainable software projects. By the end, readers will be equipped to efficiently manage large codebases, leverage Bazel’s capabilities to speed up build and test processes, and ultimately, contribute to more robust, scalable, and maintainable software projects. WHAT WILL YOU LEARN ● Understand the fundamentals and importance of Bazel in modern development practices. ● Dive into the essentials of setting up and configuring Bazel for your projects. ● Explore the intricacies of defining build rules and optimizing configurations for efficient builds. ● Learn strategies for designing and executing scalable and comprehensive tests within a monorepo environment. ● Master effective dependency management techniques and version control practices. ● Discover techniques for streamlining your development workflow with Bazel integration. ● Analyze real-world case studies and examples to see Bazel in action and learn from practical scenarios. WHO IS THIS BOOK FOR? This book is tailored for software developers and architects who have a foundational understanding of software development principles and are looking to delve into the nuances of building large-scale applications using a monorepo structure and Bazel. Prior knowledge of basic version control concepts and familiarity with any programming language are essential for fully benefiting from this book. TABLE OF CONTENTS 1. Introduction 2. Getting Started with Bazel 3. Bazel Build Rules and Configuration 4. Testing Strategies in a monorepo 5. Dependency Management and Versioning 6. Hello-World Using Other Languages and Platforms 7. Streamlining Development Workflow 8. Structuring Monorepos for Success 9. Managing Large Codebases and Scale 10. Building and Deploying Services 11. Monitoring and Debugging Bazel 12. Advanced Bazel Concepts 13. Case Studies and Real-World Examples 14. Future Trends and Considerations APPENDIX A Bazel Cheat Sheet APPENDIX B Additional Resources Index




Core Bazel


Book Description

I wrote this as the introduction I wish I had to Bazel before starting it. Here, we're going to explore the core foundation of what Bazel is, and how to approach it as a mindset, with plenty of code, and explanatory diagrams.This book is intended to get you up to speed with Bazel as fast as humanly possible. It also starts with the presumption you don't know Bazel yet, and focuses on the essentials: How does Bazel work internally? How do we create and extend Bazel builds?As such, I did my very best over the last few months to compile an introduction that should give you a somewhat stable foundation in no time.




Beginning Bazel


Book Description

Discover Bazel, a new build and software test set of tools for today's programmers and developers. This book shows you how to speed up your builds and tests, and how to use Bazel in the context of your favorite programming language. You'll see that the languages and SDKs supported include Java, Android, iOS, and Go. What You Will LearnUse Bazel as a build toolTest software with Bazel Work with Java, C++, Android, iOS, Go, and other programming languagesRun Bazel on Linux, macOS, and WindowsScale and extend Bazel to other languages and platforms Who This Book Is For Experienced programmers looking for alternative build/test tools.




Building Mobile Apps at Scale


Book Description

While there is a lot of appreciation for backend and distributed systems challenges, there tends to be less empathy for why mobile development is hard when done at scale. This book collects challenges engineers face when building iOS and Android apps at scale, and common ways to tackle these. By scale, we mean having numbers of users in the millions and being built by large engineering teams. For mobile engineers, this book is a blueprint for modern app engineering approaches. For non-mobile engineers and managers, it is a resource with which to build empathy and appreciation for the complexity of world-class mobile engineering. The book covers iOS and Android mobile app challenges on these dimensions: Challenges due to the unique nature of mobile applications compared to the web, and to the backend. App complexity challenges. How do you deal with increasingly complicated navigation patterns? What about non-deterministic event combinations? How do you localize across several languages, and how do you scale your automated and manual tests? Challenges due to large engineering teams. The larger the mobile team, the more challenging it becomes to ensure a consistent architecture. If your company builds multiple apps, how do you balance not rewriting everything from scratch while moving at a fast pace, over waiting on "centralized" teams? Cross-platform approaches. The tooling to build mobile apps keeps changing. New languages, frameworks, and approaches that all promise to address the pain points of mobile engineering keep appearing. But which approach should you choose? Flutter, React Native, Cordova? Native apps? Reuse business logic written in Kotlin, C#, C++ or other languages? What engineering approaches do "world-class" mobile engineering teams choose in non-functional aspects like code quality, compliance, privacy, compliance, or with experimentation, performance, or app size?




Software Engineering at Google


Book Description

Today, software engineers need to know not only how to program effectively but also how to develop proper engineering practices to make their codebase sustainable and healthy. This book emphasizes this difference between programming and software engineering. How can software engineers manage a living codebase that evolves and responds to changing requirements and demands over the length of its life? Based on their experience at Google, software engineers Titus Winters and Hyrum Wright, along with technical writer Tom Manshreck, present a candid and insightful look at how some of the world’s leading practitioners construct and maintain software. This book covers Google’s unique engineering culture, processes, and tools and how these aspects contribute to the effectiveness of an engineering organization. You’ll explore three fundamental principles that software organizations should keep in mind when designing, architecting, writing, and maintaining code: How time affects the sustainability of software and how to make your code resilient over time How scale affects the viability of software practices within an engineering organization What trade-offs a typical engineer needs to make when evaluating design and development decisions




The Go Programming Language


Book Description

The Go Programming Language is the authoritative resource for any programmer who wants to learn Go. It shows how to write clear and idiomatic Go to solve real-world problems. The book does not assume prior knowledge of Go nor experience with any specific language, so you’ll find it accessible whether you’re most comfortable with JavaScript, Ruby, Python, Java, or C++. The first chapter is a tutorial on the basic concepts of Go, introduced through programs for file I/O and text processing, simple graphics, and web clients and servers. Early chapters cover the structural elements of Go programs: syntax, control flow, data types, and the organization of a program into packages, files, and functions. The examples illustrate many packages from the standard library and show how to create new ones of your own. Later chapters explain the package mechanism in more detail, and how to build, test, and maintain projects using the go tool. The chapters on methods and interfaces introduce Go’s unconventional approach to object-oriented programming, in which methods can be declared on any type and interfaces are implicitly satisfied. They explain the key principles of encapsulation, composition, and substitutability using realistic examples. Two chapters on concurrency present in-depth approaches to this increasingly important topic. The first, which covers the basic mechanisms of goroutines and channels, illustrates the style known as communicating sequential processes for which Go is renowned. The second covers more traditional aspects of concurrency with shared variables. These chapters provide a solid foundation for programmers encountering concurrency for the first time. The final two chapters explore lower-level features of Go. One covers the art of metaprogramming using reflection. The other shows how to use the unsafe package to step outside the type system for special situations, and how to use the cgo tool to create Go bindings for C libraries. The book features hundreds of interesting and practical examples of well-written Go code that cover the whole language, its most important packages, and a wide range of applications. Each chapter has exercises to test your understanding and explore extensions and alternatives. Source code is freely available for download from http://gopl.io/ and may be conveniently fetched, built, and installed using the go get command.




How We Test Software at Microsoft


Book Description

It may surprise you to learn that Microsoft employs as many software testers as developers. Less surprising is the emphasis the company places on the testing discipline—and its role in managing quality across a diverse, 150+ product portfolio. This book—written by three of Microsoft’s most prominent test professionals—shares the best practices, tools, and systems used by the company’s 9,000-strong corps of testers. Learn how your colleagues at Microsoft design and manage testing, their approach to training and career development, and what challenges they see ahead. Most important, you’ll get practical insights you can apply for better results in your organization. Discover how to: Design effective tests and run them throughout the product lifecycle Minimize cost and risk with functional tests, and know when to apply structural techniques Measure code complexity to identify bugs and potential maintenance issues Use models to generate test cases, surface unexpected application behavior, and manage risk Know when to employ automated tests, design them for long-term use, and plug into an automation infrastructure Review the hallmarks of great testers—and the tools they use to run tests, probe systems, and track progress efficiently Explore the challenges of testing services vs. shrink-wrapped software




The Real World of Technology


Book Description

In this expanded edition of her bestselling 1989 CBC Massey Lectures, renowned scientist and humanitarian Ursula M. Franklin examines the impact of technology upon our lives and addresses the extraordinary changes since The Real World of Technology was first published. In four new chapters, Franklin tackles contentious issues, such as the dilution of privacy and intellectual property rights, the impact of the current technology on government and governance, the shift from consumer capitalism to investment capitalism, and the influence of the Internet upon the craft of writing.




Cloud Native Infrastructure


Book Description

Cloud native infrastructure is more than servers, network, and storage in the cloud—it is as much about operational hygiene as it is about elasticity and scalability. In this book, you’ll learn practices, patterns, and requirements for creating infrastructure that meets your needs, capable of managing the full life cycle of cloud native applications. Justin Garrison and Kris Nova reveal hard-earned lessons on architecting infrastructure from companies such as Google, Amazon, and Netflix. They draw inspiration from projects adopted by the Cloud Native Computing Foundation (CNCF), and provide examples of patterns seen in existing tools such as Kubernetes. With this book, you will: Understand why cloud native infrastructure is necessary to effectively run cloud native applications Use guidelines to decide when—and if—your business should adopt cloud native practices Learn patterns for deploying and managing infrastructure and applications Design tests to prove that your infrastructure works as intended, even in a variety of edge cases Learn how to secure infrastructure with policy as code




Large-Scale Scrum


Book Description

The Go-To Resource for Large-Scale Organizations to Be Agile Rather than asking, “How can we do agile at scale in our big complex organization?” a different and deeper question is, “How can we have the same simple structure that Scrum offers for the organization, and be agile at scale rather than do agile?” This profound insight is at the heart of LeSS (Large-Scale Scrum). In Large-Scale Scrum: More with LeSS, Craig Larman and Bas Vodde have distilled over a decade of experience in large-scale LeSS adoptions towards a simpler organization that delivers more flexibility with less complexity, more value with less waste, and more purpose with less prescription. Targeted to anyone involved in large-scale development, Large-Scale Scrum: More with LeSS, offers straight-to-the-point guides for how to be agile at scale, with LeSS. It will clearly guide you to Adopt LeSS Structure a large development organization for customer value Clarify the role of management and Scrum Master Define what your product is, and why Be a great Product Owner Work with multiple whole-product focused feature teams in one Sprint that produces a shippable product Coordinate and integrate between teams Work with multi-site teams




Recent Books