# README
Portable Abstractions and Patterns for Golang
This module is a part of the Pip.Services polyglot microservices toolkit. It provides a set of basic patterns used in microservices or backend services. Also the module implemenets a reasonably thin abstraction layer over most fundamental functions across all languages supported by the toolkit to facilitate symmetric implementation.
The module contains the following packages:
- Commands - commanding and eventing patterns
- Config - configuration framework
- Convert - soft value converters
- Data - data patterns
- Errors - application errors
- Random - random data generators
- Refer - locator (IoC) pattern
- Reflect - reflection framework
- Run - execution framework
- Validate - validation framework
- Configuration Pattern
- Locator Pattern
- Component Lifecycle
- Components with Active Logic
- Data Patterns
- API Reference
- Change Log
- Get Help
- Contribute
Use
Get the package from the Github repository:
go get -u github.com/pip-services3-go/pip-services3-commons-go@latest
Develop
For development you shall install the following prerequisites:
- Golang v1.12+
- Visual Studio Code or another IDE of your choice
- Docker
- Git
Run automated tests:
go test -v ./test/...
Generate API documentation:
./docgen.ps1
Before committing changes run dockerized test as:
./test.ps1
./clear.ps1
Contacts
The library is created and maintained by Sergey Seroukhov.
The documentation is written by Danyil Tretiakov and Levichev Dmitry.
# Packages
Contains implementation of Command design patterns, which can be used to implement various remote
procedure calls (RPCs).
No description provided by the author
No description provided by the author
No description provided by the author
Portable and localizable Exceptions classes.
Random package contains implementation of random value generators that are used for
functional as well as non-functional testing.
No description provided by the author
No description provided by the author
Contains design patterns for the standard lifecycle of objects (opened, closed, openable, closable, runnable).
No description provided by the author
No description provided by the author