Skip to content

Instantly share code, notes, and snippets.

View patrickporto's full-sized avatar

Patrick Porto patrickporto

View GitHub Profile
@patrickporto
patrickporto / desafio-dinheiro.md
Last active March 31, 2019 00:33
Este é um desafio adequado para Desenvolvedor Back-End Júnior da área de Banking.

Manipulação de Dinheiro

O Sistema Financeiro precisa representar valores monetários. A idéia básica é ter uma estrutura de dados que permita realizar operações financeiras com dinheiro dentro de uma mesma moeda. Essas operações financeiras precisam ser seguras e devem interromper a execução do programa em caso de erros críticos.

Sobre as operações financeiras que serão realizadas no sistema, é correto afirmar que os valores monetários devem suportar as seguintes operaçoes:

  • O sistema realizará split de transações financeiras, então deve ser possível realizar a operação de rateio de valores monetários entre diferentes indivíduos.

  • O sistema permite realizar câmbio então os valores monetários possuem uma operação para conversão de moeda.

@patrickporto
patrickporto / desafio-frontend.md
Last active May 21, 2018 17:15
Este é um desafio adequado para Desenvolvedor Front-End da área de Banking.

Carteira Virtual

O Web App precisa fornecer carteiras virtuais de criptomoedas. Todo cliente possui ao se cadastrar recebe R$ 100.000,00 (cem mil reais) em conta para comprar Bitcoins e Britas. A cotação da criptomoeda Brita é equivalente ao dólar e pode ser consultada na API do Banco Central enquanto que a cotação do Bitcoin pode ser consultada na API do Mercado Bitcoin.

Sobre as operações financeiras de criptomoedas, é correto afirmar que:

  • O cliente pode vender suas criptomoedas ou trocar uma pela outra.

  • O cliente precisa saber o saldo discriminado por cada moeda.

@patrickporto
patrickporto / desafio-mobile.md
Last active February 20, 2018 00:01
Este é um desafio adequado para Desenvolvedor Mobile da área de Banking.

Carteira Virtual

O App Mobile precisa fornecer carteiras virtuais de criptomoedas. Todo cliente possui ao se cadastrar recebe R$ 100.000,00 (cem mil reais) em conta para comprar Bitcoins e Britas. A cotação da criptomoeda Brita é equivalente ao dólar e pode ser consultada na API do Banco Central enquanto que a cotação do Bitcoin pode ser consultada na API do Mercado Bitcoin.

Sobre as operações financeiras de criptomoedas, é correto afirmar que:

  • O cliente pode vender suas criptomoedas ou trocar uma pela outra.

  • O cliente precisa saber o saldo discriminado por cada moeda.

@patrickporto
patrickporto / pre-commit
Created January 11, 2018 19:47
git hook for update the library version
#!/bin/sh
VERSION=$(git describe --always --tag)
sed -i "s/version='.*'/version='0.1.2'/g" setup.py
git add setup.py
#!/usr/bin/env python
import os
import sys
if __name__ == '__main__':
sys.path.append('..')
try:
from bookkeeping.cli import execute_from_command_line
except ImportError as exc:
raise ImportError(
// Estratégia 1
const cubos = []
cubos[0] = []
cubos[0][0] = []
cubos[0][0][0] = "cubo 1"
cubos[0][0][1] = "cubo 2"
cubos[0][0][2] = "cubo 3"
// [...]
// Estratégia 2
@patrickporto
patrickporto / classes-es5.js
Last active September 11, 2018 14:28
Classes (EcmaScript 5)
function Person(name) {
this.name = name;
}
Person.prototype.saysHello = function () {
return "Hello, my name is " + this.name;
};
function Employee(name, title) {
Person.call(this, name);
@patrickporto
patrickporto / classes-es6.js
Created September 11, 2018 14:28
Classes (EcmaScript 6)
class Person {
constructor(name) {
this.name = name;
}
saysHello() {
return "Hello, my name is " + this.name;
}
}
@patrickporto
patrickporto / machine.js
Last active April 3, 2020 22:40
Generated by XState Viz: https://xstate.js.org/viz
const postCardMachine = Machine({
id: "postCard",
type: "parallel",
states: {
publishing: {
initial: "placeholder",
states: {
operation: {
initial: "listing",
states: {
@patrickporto
patrickporto / machine.js
Last active April 7, 2020 15:14
Generated by XState Viz: https://xstate.js.org/viz
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions