-
Notifications
You must be signed in to change notification settings - Fork 71
Preface

The authors have long experience in the software industry, and have worked with many companies from startups to huge industry leaders. We want to share our experience with you.
A common theme with projects is getting a solid local build running, getting that solidness into shared tooling, showing the results to others so they have confidence in your work, and tackling how to implement "best practices" that varies from each project. Everyones needs for "best practices" means often bespoke means.
This book and its writing and example code focuses on JVM projects: what you might use in your build for Java or Kotlin or Scala or related. However, the principles are independent of the code base: all code solutions are interested in concerns such as security or quality.
What this book does not focus on are specific code solutions: we help you with your local and CI build. This helps you build your solution with confidence, and share that confidence with others.
Essentially we as authors want to make you awesome. For software developers that means you have confidence in solutions you deploy.
- Confidence that what you build locally will be the same in shared builds such as devops platforms like ADO, GitHub, GitLabs, etc. You can safely move work to production.
- Work is automated so you do not repeat yourself or frequently edit. The build does a lot of work for you.
- You consider work to be reliable: avoid problems of "it works on my machine". When you push to CI or deploy, you do not expect surprises.
- The developer experience is good for you and teammates: builds are quick, and give you helpful information. Your local code is nice and sensible following mutual agreements (when not solo). You are proud to share work.
Summarizing practice techniques supporting these:
- The pipeline is your whole build from local development to remote devops systems, that is, CI (ADO, GitHub, GitLab, etc).
- Good builds should be identical between local builds and CI to give you confidence, and help you find problems early. This is containerized builds.
- Keep code fluent and clean: focus builds on developer experience and confidence. The local and CI builds should help you. Clean builds help you work on true problems and avoid rabbit holes.
See the code repo for working examples.
This work is dedicated/deeded to the public following laws in jurisdictions
for such purpose.
The principal authors are:
You can always use the "Pages" UI control above this sidebar ☝ to navigate around all pages alphabetically (even pages not in this sidebar), to navigate the outline for each page, or for a search box.
Here is the suggested reading order: