ULTIMATE SOFTWARE DESIGN
Buy TicketsBill Kennedy
Instructor
This class teaches you how to structure and architect software to take advantage of AI coding tools for the long term maintenance of your software. From the beginning, you will program along with the instructor as he walks through the design philosophies and guidelines for engineering software in Go leveraging AI tooling. With each new feature added to the project, you will learn how to think about, read, maintain, manage, and debug code. The core of this class is to teach you how to handle and reduce the spread of complexity in the systems you are building.
What you'll learn
Learn how to structure and architect Go software for long-term maintainability, with a deploy-first mentality in Kubernetes and practical guidance for leveraging AI tooling.
"As a program evolves and acquires more features, it becomes complicated, with subtle dependencies between components. Over time, complexity accumulates, and it becomes harder and harder for programmers to keep all the relevant factors in their minds as they modify the system. This slows down development and leads to bugs, which slow development even more and add to its cost. Complexity increases inevitably over the life of any program. The larger the program, and the more people that work on it, the more difficult it is to manage complexity."
- John Ousterhout
What a student is expected to learn
Deploy First Mentality
We begin to build a service with a focus on the ability to maintain, manage, and debug the service in Kubernetes.
Kubernetes
We introduce Kubernetes and get a K8s environment up and running. At this point, everything we do runs in the K8s environment.
Go Scheduler and Kubernetes Quotas
We introduce applying Quotas to the deployment and discuss the problems that can result when using quotas.
Domain-Driven, Data-Oriented Architecture
We talk about the data-driven, data-oriented architecture. We discuss the design philosophy, guidelines, and semantics of how the three layers of App, Business, and Storage work together.