ByteSizeGo / The Art of Command Line Interfaces

$99

The Art of Command Line Interfaces

56 Lessons

There is so much more to Go than just writing HTTP servers.

Nobody has spent more time thinking about, writing about and talking about how to make amazing Command Line Interfaces (CLI) applications in Go than the course author, Marian.

Marian is the author of the best-selling book Building Modern CLI Applications with Go (Available on Amazon), and has been selected to speak at Gophercon twice to share her extraordinary knowledge about how to make beautiful, idiomatic CLI applications using Go.

For the first time, Marian is going to teach you everything she knows in video form.

👩‍🏫 Over 5 hours of content.

👩‍💻 No experience with CLIs necessary. We start from the basics and finish with advanced topics. However, Go experience is required.

👨‍🏫 Guided exercises along the way.

🧑‍💻 Purchase once, access forever.

🚀 Always up to date.

Wondering what's in the course?

Welcome!

Lesson 1: Welcome to the course!

Implementing Basic & Advanced CLI Features with the flag Package

Lesson 1: Introduction
Lesson 2: Creating a Simple CLI
Lesson 3: Adding a Logger
Lesson 4: Adding silent & verbose flags
Lesson 5: Intro to flag.Parse()
Lesson 6: Handling a list of URLs
Lesson 7: Customizing help output
Lesson 8: Exercise
Lesson 9: Exercise Walkthrough

Structuring CLI Applications with Cobra

Lesson 1: Introduction
Lesson 2: Setting up a new structured logger
Lesson 3: Adding Check & Monitor Commands
Lesson 4: Adding Command Hooks
Lesson 5: Using Context to Manage Global Cancellation
Lesson 6: Creating a Version Command
Lesson 7: Exercise
Lesson 8: Exercise Solution

Enhancing CLI Usability and Interactivity

Lesson 1: New output flag (JSON, Text, Table)
Lesson 2: Use spinner bar for a single URL check
Lesson 3: Monitoring table with dynamic updates
Lesson 4: Add color for up/down statuses
Lesson 5: Adding Autocomplete
Lesson 6: Exercise
Lesson 7: Exercise Solution

Testing CLI Applications

Lesson 1: Introduction to Testing CLI Applications
Lesson 2: Writing Unit Tests
Lesson 3: Mocking HTTP Calls
Lesson 4: Using ExecuteC to test Cobra Commands
Lesson 5: Exercise: Dynamic input testing for command parsing
Lesson 6: Exercise Solution

Error Handling & Logging

Lesson 1: Introduction
Lesson 2: Creating Custom Errors
Lesson 3: Advanced logging techniques (log rotation, etc.)
Lesson 4: Graceful errors & interactivity
Lesson 5: Exercise
Lesson 6: Exercise Solution

Distributing your CLI

Lesson 1: Introduction
Lesson 2: Release Automation
Lesson 3: Containerizing with Docker
Lesson 4: Automated Cross-Compilation (GoReleaser + GitHub Actions)
Lesson 5: Automated Homebrew distribution
Lesson 6: Automated Chocolatey distribution
Lesson 7: Automated Docker distribution
Lesson 8: Automated RPM and Deb files
Lesson 9: Exercise
Lesson 10: Exercise Solution

Frequently Asked Questions

Did we not answer your question? Contact us: [email protected]

How long is the course?

Over 5 hours of video content, split into easily consumable chunks, plus exercises and solutions.

Do I need prior Go experience?

You do need basic Go knowledge – we won't teach the Go language itself. If you've coded at least one small program, you're good to go!

Is the course actively maintained?

Yes! Marian updates the content regularly to ensure compatibility with new Go releases and CLI frameworks.

Can I get a refund if I don't like it?

If you didn't finish the course and it's not up to scratch, email [email protected] within 14 days for a refund.

How can I pay using my company's training budget?

Most companies just need a receipt. If you need anything else, email [email protected].

About the Course Author

Marian Montagnino is a senior software engineer at Netflix with over 20 years of experience.

Since the early nineties, when her family first got a home computer, she has been using the terminal and command line applications to navigate through text-based systems.

In 1995, she held her first job as a system operator for Real of Mirage BBS in Fair Lawn, NJ. Her early years discovering technology inspired her to continue learning about computers. She received her Dual Computer Science and Mathematics of Operations Research BSc from Rensselaer Polytechnic Institute and her Applied Mathematics MSc from Stevens Institute of Technology.

Marian