Google’s Bazel build tool is emerging as the leading solution to fast and
correct large-scale software build and test automation. Bazel understands (and
can be taught) many languages, and provides a path to deploy more computing
resources to maximize human productivity.
In this class, we assume students already understand some of the "why" of Bazel,
so we cover that briefly then move on to the "how" in depth.
Oasis Digital teaches this class in a "case study" style, visiting the important
concepts and tooling by showing it in action on a series of increasingly complex
Who Should Attend?
Decision-makers and technical architects considering Bazel and other
approaches to improving build performance and correctness at scale.
Teams tasked with implementing a move to Bazel.
Prerequisites / requirements
Experience with software development build tools (of any kind)
A computer - this is a hands-on workshop.
Ability to install software/
Editor and other tools to work on source code.
We have trained thousands of developers at hundreds of companies,
including numerous global leaders.
Introduction and Background
Oasis Digital introduction, student introduction
Building software - what matters?
Deterministic / Isolated
Composable / Universal
The Bazel value proposition
Bazel's place in the world
Make and friends
Bazel-likes in the exoogler diaspora
Case study: a Bazel happy path
Installing as a system-level tool
Installing via Node
Purpose and granularity
The WORKSPACE file
Purpose and granularity
Running a build
Case study: a large Angular application
Review of workspace, packages, targets
Comparison with Angular CLI
Verbosity and boilerplate
Querying the build graph
Understanding the query results
Motivation - why not any handy web server?
Case study: a full stack application
Processes and persistence
Packaging for deployment
Jetbrains IDEA, Webstorm, etc
WORKSPACE in more depth
BUILD in more depth
Case study: a less-supported language
Creating build rules
Reconnect to the goals
Topics by request
Oasis Digital instructors have extensive experience with both
Angular and numerous surrounding technologies; here are some
of them. The specific instructor(s) assigned to your class will
depend on which class or class topics (we customize!) are
put together, availability, additional consulting needs, etc.
Q: Is this taught "in person"?
A: We offer training both in-person and online via remote conferencing.
Q: How does the remote option work?
A: Much like an in-person class, it is conducted by our expert trainers, in real time.
The trainers can answer questions, assist with trouble students are having, etc.
We strive to offer as much of the in-person experience as possible, online.
Q: Are there open enrollment public classes?
A: We currently only offer an open-enrollment "public" class for our flagship
Angular Boot Camp.
Q: How does the recorded class work?
A: In a recorded class, the biggest obstacle is the lack of live question-and-answer
To deliver a great result, we practice teaching with live groups before
creating the recorded class. In this way, we aim to answer as many of the common
(and less common) questions as possible. We also do as much "live coding" as makes
sense for the topic, in a recorded class.
Q: Can we schedule a private class any time?
A: Our classes are taught by developers who use the subject technologies in their daily work,
so we don't assign "any" available developer/trainer to any particular class,
but only to classes with a strong experience and knowledge match.
Please contact us to arrange a date.
Training for your team, available now
For corporate groups and other organizations, we offer live, in-person instruction.
These teams typically have advanced needs and are looking for hands-on assistance,
so for larger groups we send two expert instructors. Each private class is preceded
by a technical discussion so that we can understand your needs and customize the
content to deliver maximum value.
Classes can be customized, combined, and augmented with consulting to assist
your team in implementing the ideas in your environment.