Loading Course Schedule...
Go was designed specifically to make working in large scale development environments efficient and effective. The syntax of the language is C based so that there is an east migration path for programmers who are already experienced in other C based languages like C++ and Java. However the core architecture of the language is built around features designed for developing highly concurrent, distributed and large scale software systems. Go is a programming environment consisting of a programming language, a tool chain and a number of associated open source libraries. Go will primarily be used for middleware application development at Capital One.The introductory section of the course is a hands on overview of programming in Go emphasizing the ways in which Go is both similar and different to other C based languages. Once students are able to write Go programs and use the Go tool chain comfortably, the main focus of the rest of the course is on three areas of Go development:The features that are unique to the Go architecture including concurrency support, garbage collection, composition over inheritance, dependency management and naming, the Go semantic model and the Go tool chain.Go application development tools and strategies for bench marking and testing Go programs, profiling and tracing Go programs, vendor and dependency management, project structure management, Go build and related tools support for continuous development and continuous integration.Development of Restful APIs using Go and open source libraries.
3 Days/Lecture & Lab
- Go syntax
- Built in types
- User defined types
- Mastering the Go packages
- Using the Go tool chain including build, continuous integration and development tools.
- Testing and bench marking using Go tools
- Profiling and tracing Go programs using Go tools
- Go project structure management and strategies
- Dependency and vendoring management.
- Program design considerations for concurrency and scalability
- Restful API development using Go and open source libraries.