
Powerful Command-Line Applications in Go
Beschreibung
Whether you want to automate tasks, analyze data, parse logs, talk to network services, or address other systems requirements, writing your own command-line tool may be the fastest - and perhaps the most fun - way to do it. The Go programming language is a great choice for developing tools that are fast, reliable, and cross-platform. Create command-line tools that work with files, connect to services, and even manage external processes, all while using tests and benchmarks to ensure your programs are fast and correct.
When you want to develop cross platform command-line tools that are fast and reliable, use Go, a modern programming language that combines the reliability of compiled languages with the ease of use and flexibility of dynamic typed languages. Work through practical examples to develop elegant and efficient tools by applying Go''s rich standard library, its built in support for concurrency, and its expressive syntax. Use Go''s integrated testing capabilities to automatically test your tools, ensuring they work reliably even across code refactoring.
Develop CLI tools that interact with your users by using common input/output patterns, including environment variables and flags. Handle files to read or persist data, and manipulate paths consistently in cross-platform scenarios. Control processes and handle signals, and use a benchmark driven approach and Go''s concurrency primitives to create tools that perform well. Use powerful external libraries such as Cobra to create modern and flexible tools that handle subcommands, and develop tools that interact with databases, APIs, and network services. Finally, leverage what you learned by tackling additional challenges at the end of each chapter.
What You Need:
Go 1.8 or higher, an internet connection to download the example files and additional libraries, and a text editor to write your programs.
Weitere Details
Weitere Ausgaben
Inhalt
- Cover
- Table of Contents
- Foreword
- Acknowledgments
- Preface
- What's in This Book
- How to Use This Book
- About the Example Code
- Go Modules
- Online Resources
- 1. Your First Command-Line Program in Go
- Building the Basic Word Counter
- Testing the Basic Word Counter
- Adding Command-Line Flags
- Compiling Your Tool for Different Platforms
- Exercises
- Wrapping Up
- 2. Interacting with Your Users
- Organizing Your Code
- Defining the To-Do API
- Creating the Initial To-Do Command-Line Tool
- Testing the Initial CLI Implementation
- Handling Multiple Command-Line Options
- Display Command-Line Tool Usage
- Improving the List Output Format
- Increasing Flexibility with Environment Variables
- Capturing Input from STDIN
- Exercises
- Wrapping Up
- 3. Working with Files in Go
- Creating a Basic Markdown Preview Tool
- Writing Tests for the Markdown Preview Tool
- Adding Temporary Files to the Markdown Preview Tool
- Using Interfaces to Automate Tests
- Adding an Auto-Preview Feature
- Cleaning Up Temporary Files
- Improving the Markdown Preview Tool with Templates
- Exercises
- Wrapping Up
- 4. Navigating the File System
- Developing a File System Crawler
- Testing with Table-Driven Testing
- Deleting Matched Files
- Testing with the Help of Test Helpers
- Logging Deleted Files
- Archiving Files
- Exercises
- Wrapping Up
- 5. Improving the Performance of Your CLI Tools
- Developing the Initial Version of colStats
- Writing Tests for colStats
- Benchmarking Your Tool
- Profiling Your Tool
- Reducing Memory Allocation
- Tracing Your Tool
- Improving the colStats Tool to Process Files Concurrently
- Reduce Scheduling Contention
- Exercises
- Wrapping Up
- 6. Controlling Processes
- Executing External Programs
- Handling Errors
- Writing Tests for Goci
- Defining a Pipeline
- Adding Another Step to the Pipeline
- Handling Output from External Programs
- Running Commands with Contexts
- Integration Tests with a Local Git Server
- Testing Commands with Mock Resources
- Handling Signals
- Exercises
- Wrapping Up
- 7. Using the Cobra CLI Framework
- Starting Your Cobra Application
- Navigating Your New Cobra Application
- Adding the First Subcommand to Your Application
- Starting the Scan Package
- Creating the Subcommands to Manage Hosts
- Testing the Manage Hosts Subcommands
- Adding the Port Scanning Functionality
- Using Viper for Configuration Management
- Generating Command Completion and Documentation
- Exercises
- Wrapping Up
- 8. Talking to REST APIs
- Developing a REST API Server
- Testing the REST API Server
- Completing the REST API Server
- Developing the Initial Client for the REST API
- Testing the Client Without Connecting to the API
- Viewing a Single Item
- Adding an Item
- Testing HTTP Requests Locally
- Completing and Deleting Items
- Executing Integration Tests
- Exercises
- Wrapping Up
- 9. Developing Interactive Terminal Tools
- Initializing the Pomodoro Application
- Storing Data with the Repository Pattern
- Testing the Pomodoro Functionality
- Building the Interface Widgets
- Organizing the Interface's Layout
- Building the Interactive Interface
- Initializing the CLI with Cobra
- Exercises
- Wrapping Up
- 10. Persisting Data in a SQL Database
- Getting Started with SQLite
- Go, SQL, and SQLite
- Persisting Data in the Database
- Testing the Repository with SQLite
- Updating the Application to Use the SQLite Repository
- Displaying a Summary to the Users
- Exercises
- Wrapping Up
- 11. Distributing Your Tool
- Starting the Notify Package
- Including OS-Specific Data
- Including OS-Specific Files in the Build
- Testing the Notify Package
- Conditionally Building Your Application
- Cross-Compiling Your Application
- Compiling Your Go Application for Containers
- Distributing Your Application as Source Code
- Exercises
- Wrapping Up
- Index
- - SYMBOLS -
- - A -
- - B -
- - C -
- - D -
- - E -
- - F -
- - G -
- - H -
- - I -
- - J -
- - L -
- - M -
- - N -
- - O -
- - P -
- - Q -
- - R -
- - S -
- - T -
- - U -
- - V -
- - W -
- - X -
Systemvoraussetzungen
Dateiformat: PDF
Kopierschutz: Adobe-DRM (Digital Rights Management)
Systemvoraussetzungen:
- Computer (Windows; MacOS X; Linux): Installieren Sie bereits vor dem Download die kostenlose Software Adobe Digital Editions (siehe E-Book Hilfe).
- Tablet/Smartphone (Android; iOS): Installieren Sie bereits vor dem Download die kostenlose App Adobe Digital Editions oder die App PocketBook (siehe E-Book Hilfe).
- E-Book-Reader: Bookeen, Kobo, Pocketbook, Sony, Tolino u.v.a.m. (nicht Kindle)
Das Dateiformat PDF zeigt auf jeder Hardware eine Buchseite stets identisch an. Daher ist eine PDF auch für ein komplexes Layout geeignet, wie es bei Lehr- und Fachbüchern verwendet wird (Bilder, Tabellen, Spalten, Fußnoten). Bei kleinen Displays von E-Readern oder Smartphones sind PDF leider eher nervig, weil zu viel Scrollen notwendig ist.
Mit Adobe-DRM wird hier ein „harter” Kopierschutz verwendet. Wenn die notwendigen Voraussetzungen nicht vorliegen, können Sie das E-Book leider nicht öffnen. Daher müssen Sie bereits vor dem Download Ihre Lese-Hardware vorbereiten.
Bitte beachten Sie: Wir empfehlen Ihnen unbedingt nach Installation der Lese-Software diese mit Ihrer persönlichen Adobe-ID zu autorisieren!
Weitere Informationen finden Sie in unserer E-Book Hilfe.