Golang
Fala-me sobre o uso de eventos (abordagem orientada a eventos) no teu exemplo
Por que procura um novo emprego?
Pessoalmente, testei que o Postgres reordena as colunas e o otimizador não se importa com a ordem em que escreves a consulta — ele a reestruturará como for necessário. O que achas?
Fala sobre a tua experiência de trabalho e tarefas interessantes
Onde você mora atualmente e qual formato de trabalho está considerando?
Já trabalhou com transações no PostgreSQL e com quais níveis de isolamento?
Que práticas existem para reduzir o tamanho da imagem Docker?
func (r *PayoutRepository) Payout(advertiserID, partnerID string, amount float32) error { advertiser, err := r.find(totalPayouts) // adicionar transação if err != nil { return err } partner, err := r.find(partnerID) if err != nil { return err } advertiser.Balance -= amount partner.Hold -= amount partner.Balance += amount if err := r.save(advertiser); err != nil { return err } if err := r.save(partner); err != nil { return err } r.totalPayouts++ return nil } func (r *PayoutRepository) find(id string) (Partner, error) { p := Partner{} err := r.db.QueryRow("SELECT * FROM partners WHERE id = " + id).Scan(&p) // adicionar $1 if err != nil { if err == sql.ErrNoRows { return p, errors.New("parceiro não encontrado") } return p, err } return p, nil }
Como é que a derivada está relacionada com a área?
Qual comando mostra o espaço em disco?
Por que é melhor remover o ponteiro do slice no repositório? Argumentos a favor e contra.
O que é o modelo OSI? O que é o nível de aplicação?
O que queres agora — quais são as tuas expectativas para o novo trabalho?
var defaultTxOptions = &sql.TxOptions{} const defaultCurrency = "RUB" func CreateUserWithDefaultCurrency(ctx context.Context, db *sql.DB, email, passwordHash string) error { tx, err := db.BeginTx(ctx, defaultTxOptions) if err != nil { return err } defer func() { if err != nil{ tx.Rollback() } }() _, err = tx.Exec("INSERT INTO users (email, password) VALUES (?, ?)", email, passwordHash) if err != nil { return err } rows, err := tx.Query("SELECT id FROM users WHERE email = ?", email) if err != nil { return err } defer rows.Close() id := 0 for rows.Next() { err = rows.Scan(&id) if err != nil { return err } } _, err = tx.Exec("INSERT INTO balances (user_id, currency, current_balance) VALUES (?, ?, 0)", id, defaultCurrency) if err != nil { return err } return tx.Commit() }
O que significa a nomenclatura no estilo RPC? No nosso caso, gRPC e REST — em que eles diferem?
Já teve que acompanhar o tempo, manter um registo de tarefas em algum sistema?
Como determinar se um produto com cerca de 1000 utilizadores necessita de uma arquitetura de microserviços ou monolítica?
Há uma garagem no centro comercial: os carros entram e saem, e ao final da sessão de estacionamento é necessário cobrar. Como você vê isso? Projete um sistema.
Como obter a saída 456 se não usar um receptor de ponteiro?
1.21 func main() { var nums []*int for i := 0; i < 10; i++ { nums = append(nums, &i) } for _, v := range nums { go func() { fmt.Println(v) }() } }