Exercise 5 : Word count in Go
Exercise: Solve this exercise in Go with test cases.
Labels: Beginner
Time to complete: 3-4 days
What will you learn:
Basics of CLI building in Go, parsing CLI flags, cobra library
File reading, listing files in a directory, dealing with a large number of files
Writing table-driven tests
Power of interfaces in Go (io.Reader interface)
Using channels and goroutines to efficiently process multiple files in parallel, mutex, fan-in pattern for goroutines and channels.
How to evaluate your solution:
Actual Solution:
Resources:
How to unit test code that reads from STDIN https://stackoverflow.com/questions/46365221/fill-os-stdin-for-function-that-reads-from-it
How to handle Ctrl + d in Go https://pkg.go.dev/os/signal#example-Notify
Writing command line applications in Go https://learning.oreilly.com/library/view/practical-go/9781119773818/c01.xhtml read Chapter 1 from this Practical Go book.