https://github.com/Alikhll/golang-developer-roadmap Часто требуется Kubernetis, GraphQL
См. https://github.com/Alikhll/golang-developer-roadmap Освоить по одной штуке из каждой ветви хорошо бы
https://github.com/Alikhll/golang-developer-roadmap Часто требуется Kubernetis, GraphQL
См. https://github.com/Alikhll/golang-developer-roadmap Освоить по одной штуке из каждой ветви хорошо бы
В вызывающем сервисе ошибки от запрашиваемого сервиса должны оборачиваться в местные подходящие ошибки (https://softwareengineering.stackexchange.com/questions/351047/upstreaming-microservices-errors)
Предлагаю использовать https://tools.ietf.org/html/rfc7807
{
Status: 400|500|401|403
Path: /api/v1/merchants
Errors: [
| <scheme name="Material Palenight (r3code)" version="142" parent_scheme="Darcula"> | |
| <option name="FONT_SCALE" value="1.0" /> | |
| <metaInfo> | |
| <property name="created">2021-03-27T17:27:10</property> | |
| <property name="ide">GoLand</property> | |
| <property name="ideVersion">2020.3.4.0.0</property> | |
| <property name="modified">2021-03-27T17:27:46</property> | |
| <property name="originalScheme">Material Palenight (r3code)</property> | |
| </metaInfo> | |
| <option name="LINE_SPACING" value="1.1" /> |
ENV_NAME=some_branch
POD_NAME=`kubectl get pods -n $ENV_NAME | grep pod_name_part- | head -n 1 | awk '{print $1}'`; print $POD_NAME
kubectl exec -n $ENV_NAME $POD_NAME -- /app/appctl arg1 arg2
Используем protobuff версии 3 https://developers.google.com/protocol-buffers/docs/proto3
Придерживаемся стиля https://developers.google.com/protocol-buffers/docs/style
Если вы удалили поля message определенные ранее, то для сохранения совместимости, их номера должны быть помечены как reserved, чтобы их нельзя было использовать повторно после.
Поддержка версионирования API - см. https://google.aip.dev/215
Переиспользуем готовые определения часто используемых типов (время, деньги, дата и др.) см. https://google.aip.dev/213
| // import gihub.com/pkg/errors | |
| // Stack returns the last error in the error chain implementing StackTrace() or nil iа no errors with stack trace | |
| func Stack(err error) errors.StackTrace { | |
| type ( | |
| causer interface { | |
| Cause() error | |
| } | |
| stackTracer interface { | |
| StackTrace() errors.StackTrace | |
| } |
| package version | |
| import ( | |
| "bytes" | |
| "fmt" | |
| "runtime" | |
| "strings" | |
| "github.com/prometheus/client_golang/prometheus" | |
| ) |
Read about RDD here https://vporoshok.me/post/2019/10/rdd/
Russian version here
So, are you building microservices? Take a look at a few of these symptoms, and decide for yourself:
Из статьи You're not actually building microservices
Итак, вы создаете микросервисы?
Взгляните на некоторые из этих симптомов и проставьте галочки, где вы согласны: