https://github.com/gjovs/go-clean-architecture
Welcome to the Clean Architecture At Go repository! This project follows the principles of Clean Architecture in Go, providing a scalable and maintainable foundation for building robust applications. ๐ ๏ธ
https://github.com/gjovs/go-clean-architecture
clean clean-architecture go go-clean-architecture golang
Last synced: about 1 month ago
JSON representation
Welcome to the Clean Architecture At Go repository! This project follows the principles of Clean Architecture in Go, providing a scalable and maintainable foundation for building robust applications. ๐ ๏ธ
- Host: GitHub
- URL: https://github.com/gjovs/go-clean-architecture
- Owner: gjovs
- Created: 2024-01-16T01:26:21.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-03-15T11:41:57.000Z (about 1 year ago)
- Last Synced: 2024-03-15T12:55:14.555Z (about 1 year ago)
- Topics: clean, clean-architecture, go, go-clean-architecture, golang
- Language: Go
- Homepage:
- Size: 11.7 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Go Clean Architecture Repository ๐
Welcome to the Clean Architecture At Go repository! This project follows the principles of Clean Architecture in Go, providing a scalable and maintainable foundation for building robust applications. ๐ ๏ธ
## Table of Contents ๐
- [Go Clean Architecture Repository ๐](#go-clean-architecture-repository-)
- [Table of Contents ๐](#table-of-contents-)
- [Introduction ๐](#introduction-)
- [Getting Started ๐ฆ](#getting-started-)
- [Project Structure ๐๏ธ](#project-structure-๏ธ)
- [Dependencies ๐ฆ](#dependencies-)
- [Usage ๐](#usage-)
- [Testing ๐งช](#testing-)
- [Contributing ๐ค](#contributing-)
- [License ๐](#license-)## Introduction ๐
This project aims to demonstrate the implementation of Clean Architecture in Go, separating concerns into distinct layers to achieve better testability, maintainability, and flexibility. The architecture consists of the following layers:
- **Entities**: Represents the core business logic.
- **Use Cases**: Contains application-specific business rules.
- **Interfaces**: Defines the boundaries of the application.
- **Adapters**: Implements the interfaces, connecting the application to external frameworks or tools.## Getting Started ๐ฆ
To get started with this project, make sure you have Go installed on your machine. Clone the repository and run:
```bash
go build -o ./bin/ source.go
```This will build and execute the application.
## Project Structure ๐๏ธ
The project structure follows the Clean Architecture principles, separating concerns into different packages. Here's an overview:
```
/api
/configs
/cmd
/app
/internal
/entities
/usecases
/event
/infra
/pkg
/types
```- **cmd**: Contains the application's entry point and configuration.
- **internal**: Holds the core application code.
- **pkg**: Houses reusable packages.
## Dependencies ๐ฆThis project uses default golang dependency managing tool for managing external dependencies. To install the required dependencies, run:
```bash
go install
```## Usage ๐
Describe how to use your application or library here. Include code snippets or examples to guide users.
## Testing ๐งช
Ensure that all unit tests and integration tests pass before submitting a pull request. Run the tests using:
```bash
go test ./...
```## Contributing ๐ค
Contributions are welcome! Please follow our [Contribution Guidelines](CONTRIBUTING.md) when submitting pull requests.
## License ๐
This project is licensed under the [MIT License](LICENSE.md) - see the [LICENSE.md](LICENSE.md) file for details.