Golang Skill (draft)
May 16, 2023
golang,
JetBrains GoLand IDE,
Kafka,
PostgreSQL,
MySQL,
Docker,
Kubernetes,
GoLand Debug,
GoLand Remote Debug
Development Environment #
The Golang Development Environment is setup as follows:
We use GoLand as the primary Integrated Development Environment tool.
- GoLand with Git Servers: to connect to Git Server,GitLab Server, Bitbucket and Github
- GoLand with Git: to manage Code Control - Local and Remote Git activities.
- GoLand Debug: to debug and learn everything about Golang
- GoLand Remote Debug: to remote debug to diagnose code issues and defects in the integration
- GoLand and Docker Desktop as an Integrated Development Environment: to create the development environment using Docker and Kubernetes e.g. Kafka, Database, JBoss, Web servers (Apache, nginx, jetty)
- We use TeamCity or Jenkins to perform CI/CD
- We use HttpClient plugin comes with GoLand for Restful Integrated Testing
- Docker Desktop: We use Docker Desktop to deploy various environments used for the development and the integration testing:
- Kafka dockers referring to the diagram for the Docker Desktop containing various Kafka sources provided by
- Confluent docker,
- Redpanda C++ Kafka and Redpanda Data Github
- Debezium Docker
- etc…
- Kubernetes
- Kafka dockers referring to the diagram for the Docker Desktop containing various Kafka sources provided by
The reasons for composing the docker services and/or kubernetes pods are:
- We allow each Developer to replicate the Development Environment with docker, thus suitable for microservice team and work breakdown
- We deploy the application in the Development Environment to the application in the Testing Environment with docker
- We deploy the application with CI/CD in mind and automate testing
- When we learn a new computer language, the debug will assist the learning. We setup two approaches to debug Golang:
- We use the GoLand IDE debug the code
- When the Developers work with the Testers to trace any issues
- We use the GoLand or Visual Code IDE to perform the remote debug to a Golang process
Study #
Development Tools #
- Refer to Developement Tools to see how use the GoLand and Docker Desktop