Skip to content

Instantly share code, notes, and snippets.

Danilo Batista de Queiroz danilobatistaqueiroz

  • São Paulo, SP, Brasil
Block or report user

Report or block danilobatistaqueiroz

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@danilobatistaqueiroz
danilobatistaqueiroz / fib.py
Created Sep 26, 2019 — forked from soeirosantos/fib.py
a bit of Fibonacci with Python
View fib.py
def recursive_fib(n):
if n <= 1:
return n
return recursive_fib(n - 2) + recursive_fib(n - 1)
def memoized_fib(n):
f = [0] * (n + 1)
f[0] = 0
f[1] = 1
View npm_without_root
https://www.competa.com/blog/how-to-run-npm-without-sudo/
npm config set prefix ~/.npm
# open your .bashrc (Linux) or .bash_profile (Mac) file for editing:
nano ~/.bashrc # for Linux
# or...
nano ~/.bash_profile # for Mac if you haven't created a .bashrc file
# add these lines:
View valida.cnpj.js
function cnpj(s) {
let cnpj = s.replace(/[^\d]+/g, '')
// Valida a quantidade de caracteres
if (cnpj.length !== 14)
return false
// Elimina inválidos com todos os caracteres iguais
if (/^(\d)\1+$/.test(cnpj))
return false
@danilobatistaqueiroz
danilobatistaqueiroz / mongoDB.py
Created May 26, 2019 — forked from cjgiridhar/mongoDB.py
CRUD for MongoDB with Pymongo
View mongoDB.py
import pymongo
from pymongo import Connection
conn = Connection()
db = conn['myDB']
collection = db['language']
#Creating a collection
db.language.insert({"id": "1", "name": "C", "grade":"Boring"})
db.language.insert({"id": "2", "name":"Python", "grade":"Interesting"})
View orm.md

Padrões de Projeto

Active Record
Uma tabela de banco de dados ou visão(view) é embrulhada(wrapped) em uma classe.
Uma instância de um objeto é amarrada a um único registo(tupla) na tabela.
A classe de embrulho implementa os métodos de acesso (save,find,update,delete).
E também as propriedades (setter e getter) para cada coluna na tabela ou visão.

Padrão Mapeador de Dados (Data Mapper Design)
Um Mapeador de Dados é uma Camada de Acesso a Dados que executa a transferência bidirecional de dados

@danilobatistaqueiroz
danilobatistaqueiroz / environment.md
Last active May 15, 2019
Configurando Variaveis no Windows
View environment.md

Configurando variáveis de ambiente no Windows

Entre no Regedit
Em HKEY_CURRENT_USER -> Environment
E adicione Strings
Por exemplo, para o java_home, de esse nome e coloque o caminho
Para configurar o PATH, crie uma String com esse nome e preencha com as configurações
Reinicie o Windows e agora ele sempre terá essas variáveis configuradas

regedit

@danilobatistaqueiroz
danilobatistaqueiroz / spring_jms_activemq.md
Last active May 24, 2019
Tutorial Spring JMS ActiveMQ
View spring_jms_activemq.md

Tutorial Spring 4 MVC + JMS + ActiveMQ annotation based

Teremos dois aplicativos java baseados em Spring.
O primeiro é um aplicativo Spring MVC (chamaremos de Web-Shop) onde você pode comprar um produto on-line.
O outro será o aplicativo de Inventário (chamaremos de Order-Inventory), baseado no Spring MVC, implantado como war.

Depois de ter feito seu pedido (significa que o status do pedido é 'criado'),
O aplicativo de loja virtual (Web-Shop) envia este pedido para o aplicativo de Inventário
Ele envia via ActiveMQ Message Broker usando a fila JMS (nomeada como 'order-queue'),

View CompositionInheritance.md

Has-a over Is-a

A composição sobre herança (ou princípio de reutilização composto) na programação orientada a objeto (OOP)
é o princípio de que classes devem alcançar comportamento polimórfico e reutilização de código por sua composição
(contendo instâncias de outras classes que implementam a funcionalidade desejada) em vez de herança de um classe base ou pai.
Este é um princípio frequentemente afirmado de OOP, como no influente livro Design Patterns.

Composição é a forma mais forte de associação, o que significa que o(s) objeto(s) que compõem ou estão contidos
em um objeto são destruídos também quando esse objeto é destruído.

Exemplo

View spring.md

Spring e ORM

Spring é popular porque cuida de todo código repetitivo de recortar e colar que você tem com qualquer estrutura ORM.
Pense em try ... finally blocks, lidando com o objeto de sessão (Hibernate ou outro) e commit / rollback (transações).
Isso você terá que repetir diversas vezes, tornando o código poluído e de difícil manutenção, propenso a erros.

O gerenciamento de transações também é talvez o grande carro chefe do Spring.
Você pode definir transações usando anotações ou no arquivo de configuração do Spring xml.
No arquivo de configuração, o benefício é que você pode usar curingas para especificar que, por exemplo,
todos os métodos de busca em alguns conjuntos de pacotes devem suportar transações (PROPAGATION_SUPPORTS),

View solid.md

The principles are a subset of many principles promoted by American software engineer and instructor Robert C. Martin.

Single responsibility principle
A class should have only a single responsibility, that is, only changes to one part of the software's specification should be able to affect the specification of the class.
Um bom exemplo seria uma classe "Encomenda", ela não pode ter métodos para alterar a "NotaFiscal".
Um exemplo mais abstrato seria evitar criar classes multi funções, como encontramos demasiadamente na camada de "serviços", ou mesmo nas "controllers", quando elas deveriam apenas orquestrar os requests e responses, essa é a única responsabilidade das "controllers". Pois, se você começar a implementar muita coisa na "controller", seu código torna-se dependente do framework, e na melhor das hipóteses, torna o teu "domínio" amarrado à web o que nunca é boa ideia.
Outro exemplo seria uma classe "ProdutoValidador", nessa classe não pode haver métodos que alterem o produto, por que a

You can’t perform that action at this time.