Learn Go with tests
Contribute on github
Primary version
Primary version
  • Learn Go with Tests
  • Go fundamentals
    • Install Go
    • Hello, World
    • Integers
    • Iteration
    • Arrays and slices
    • Structs, methods & interfaces
    • Pointers & errors
    • Maps
    • Dependency Injection
    • Mocking
    • Concurrency
    • Select
    • Reflection
    • Sync
    • Context
    • Intro to property based tests
    • Maths
  • Build an application
    • Intro
    • HTTP server
    • JSON, routing and embedding
    • IO and sorting
    • Command line & package structure
    • Time
    • WebSockets
  • Questions and answers
    • OS Exec
    • Error types
    • Context-aware Reader
    • Revisiting HTTP Handlers
  • Meta
    • Why unit tests and how to make them work for you
    • Contributing
    • Chapter Template
Powered by GitBook
On this page
  1. Build an application

Intro

PreviousMathsNextHTTP server

Last updated 7 years ago

Now that you have hopefully digested the Go Fundamentals section you have a solid grounding of a majority of Go's language features and how to do TDD.

This next section will involve building an application.

Each chapter will iterate on the previous one, expanding the application's functionality as our product owner dictates.

New concepts will be introduced to help facilitate writing great code but most of the new material will be learning what can be accomplished from Go's standard library.

By the end of this you should have a strong grasp as to how to iteratively write an application in Go, backed by tests.

  • - We will create an application which listens to HTTP requests and responds to them.

  • - We will make our endpoints return JSON, explore how to do routing and learn about type embedding.

  • - We will persist and read our data from disk and we'll cover sorting data.

  • - We will create a new program leveraging the code we've made so far to make a command line interface. This will involve us restructuring our project to support multiple binaries

  • - We will schedule some activities that happen at different times depending on user input.

HTTP server
JSON, routing and embedding
IO
Command line
Time