Overview
This repository contains a Golang project that [briefly describe what your project does].
Prerequisites
Before you begin, ensure you have the following installed:
Project Setup
Creating a New Golang Project
- Initialize a new Go module
mkdir my-golang-project
cd my-golang-project
go mod init github.com/yourusername/my-golang-project
- Create basic project structure
mkdir -p cmd/app
mkdir -p internal/pkg
mkdir -p api
touch cmd/app/main.go
-
Add a simple Hello World program
In
cmd/app/main.go
:
package main
import "fmt"
func main() {
fmt.Println("Hello, Golang!")
}
- Test your application
go run cmd/app/main.go
Git Setup and Push
- Initialize Git repository
git init
- Create a .gitignore file
touch .gitignore
-
Add common Go entries to .gitignore
In
.gitignore
:
# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib
# Test binary, built with `go test -c`
*.test
# Output of the go coverage tool
*.out
# Dependency directories
vendor/
# Go workspace file
go.work
# IDE directories
.idea/
.vscode/
- Create initial commit
git add .
git commit -m "Initial commit"
-
Create a repository on GitHub/GitLab/BitBucket
- Go to GitHub/GitLab/BitBucket and create a new repository
- Do not initialize with README, .gitignore, or license
Link local repository to remote and push
git remote add origin https://github.com/yourusername/my-golang-project.git
git branch -M main
git push -u origin main
Project Structure
my-golang-project/
├── api/ # API definitions (protobuf, OpenAPI specs)
├── cmd/ # Main applications
│ └── app/ # The main application
│ └── main.go # Entry point for the application
├── internal/ # Private code
│ └── pkg/ # Private packages
├── pkg/ # Public packages
├── go.mod # Go module definition
├── go.sum # Go module checksums
└── README.md # This file
Development Workflow
- Adding dependencies
go get github.com/example/package
- Building the application
go build -o bin/app cmd/app/main.go
- Running tests
go test ./...
- Making changes and pushing to Git
git add .
git commit -m "Description of changes"
git push
Best Practices
- Use
go fmt
to format your code before committing - Run
go vet
to catch potential issues - Consider using golangci-lint for comprehensive linting
- Follow the Uber Go Style Guide for consistent code style
License
[Choose an appropriate license for your project]
Contributing
[Instructions for contributors]
Top comments (0)