Skip to content

Instantly share code, notes, and snippets.

View danilobatistaqueiroz's full-sized avatar

Danilo Batista de Queiroz danilobatistaqueiroz

View GitHub Profile
@danilobatistaqueiroz
danilobatistaqueiroz / README.md
Last active February 22, 2024 21:22
20000 palavras mais comuns usadas no dia-a-dia no inglês baseadas em séries, filmes, podcasts, canais do youtube

Essa lista foi criada baseada em centenas de séries completas tais como (todos os episódios de Friends, Simpsons, The Big Bang Theory, Small Ville, Walking Dead, Lost, CSI, etc)
Também foram usadas legendas de filmes, podcasts e canais do Youtube, tais como (todo os episódios de MrBeast, The Joe Rogan Experience, The Tonight Show, etc)
Letras de músicas, centenas de episódios de reportagens de Fox News, CBN.
São 1.800 seasons de séries. Mais de 300 séries completas. São quase 40.000 legendas com média de 20 minutos. O que equivale a 13.000 horas de streaming. Isso equivale a 36 anos de conversas o dia todo.

Foi gerada uma lista inicial com as 50.000 palavras mais usadas no dia-a-dia falado no inglês, dessa lista foram removidas as 15.000 palavras mais comuns do inglês, palavras essas que são facilmente encontradas em listas tal como a de Oxford online, e que qualquer um com um inglês intermediário entende. (inclui-se aí, palavras como as constituídas no verbo to be, work, make, números, cores, palavra

@danilobatistaqueiroz
danilobatistaqueiroz / wildfly_sqlite.md
Last active January 16, 2024 02:47
wildfly and sqlite datasource

[wildfly root]\standalone\configuration\standalone.xml

        <subsystem xmlns="urn:jboss:domain:datasources:4.0">
            <datasources>
                <datasource jndi-name="java:/SqliteDS" pool-name="SqlitePool">
                    <connection-url>jdbc:sqlite:f:/java/projects/java_sqlite/dbwildfly.db</connection-url>
                    <driver>sqlite</driver>
                    <security>
                        <user-name></user-name>
@danilobatistaqueiroz
danilobatistaqueiroz / domain_driven_design.md
Created January 22, 2023 19:44 — forked from alexruzenhack/domain_driven_design.md
Summary of #ddd by Eric Evans

The heart of software

  • Leaders within a team who understand the centrality of the domain can put their software project back on course.
  • Software developer is like a researche, both have the responsability to tackle the messiness of the real world through complicated domain that has never been formalized.
  • There are systematic ways of thinking that developers can employ to search for insight and produce effective models.

One. Crunching Knowledge

Ingredients of effective modeling

@danilobatistaqueiroz
danilobatistaqueiroz / amqp_vs_jms.md
Last active November 8, 2023 09:53
Redis vs AMQP vs JMS vs Kafka

AMQP vs JMS

JMS: only java, it is a specification
AMPQ: universal, it is a protocol, it is open standard for messaging

JMS doesn't define a protocol.

JMS is an API and AMQP is a protocol.

AMQP supports 4 message models: Direct, Fanout, Topic, Headers

@danilobatistaqueiroz
danilobatistaqueiroz / Best_Practices.md
Last active July 24, 2023 18:12
RabbitMQ and CloudAMQP

To get optimal performance, make sure your queues stay as short as possible all the time.
Longer queues impose more processing overhead.
We recommend that queues should always stay around 0 for optimal performance.

Em cenários com muitos consumers e publishers, o ideal é centralizar a criação de exchanges e queues, removendo essa permissão deles e fazendo essa gestão por uma equipe de admin.

Para garantir a entrega das mensagens o correto é usar consumer ack, broker ack e durable queue com persistent messages.
Pode-se utilizar quorum queues dependendo do cenário.

@danilobatistaqueiroz
danilobatistaqueiroz / mariadb_without_admin_rights.md
Last active July 3, 2023 01:48
mariadb standalone without admin rights

Refatorar é bom para aprender OO

Uncle Bob blogou no Clean Coder sobre uns code reviews que ele fez do código (e das refatorações) de um cara chamado John MacIntyre.

Uncle Bob criticou a conclusão do cara de que refatoração não vale a pena para projetos reais: refatoração é uma maneira efetiva de evitar que o código apodreça e fique difícil de manter.

O que achei de mais interessante sobre o post do Uncle Bob é que ele pegou o código inicial do cara e foi fazendo pequenas refatorações, no estilo Baby Steps. No final, acabou melhorando drasticamente a estrutura do código e tornando-o muito mais extensível. O exemplo é bem pequeno mas, mesmo assim, houve uma melhora significativa.
O código inicial:

## Effective Java, 2nd Edition
by Joshua Bloch
*I, [Michael Parker](http://omgitsmgp.com/), own this book and took these notes to further my own learning. If you enjoy these notes, please [purchase the book](http://www.amazon.com/Effective-Java-Edition-Joshua-Bloch/dp/0321356683)!*
### Chapter 2: Creating and Destroying Objects
#### Item 1: Consider static factories instead of constructors
* An instance-controlled class is one that uses static factories to strictly control what instances exist at any time.
@danilobatistaqueiroz
danilobatistaqueiroz / clean_code.md
Created July 16, 2020 17:02 — forked from wojteklu/clean_code.md
Summary of 'Clean code' by Robert C. Martin

Code is clean if it can be understood easily – by everyone on the team. Clean code can be read and enhanced by a developer other than its original author. With understandability comes readability, changeability, extensibility and maintainability.


General rules

  1. Follow standard conventions.
  2. Keep it simple stupid. Simpler is always better. Reduce complexity as much as possible.
  3. Boy scout rule. Leave the campground cleaner than you found it.
  4. Always find root cause. Always look for the root cause of a problem.

Design rules

@danilobatistaqueiroz
danilobatistaqueiroz / ddd.md
Last active January 14, 2023 22:52
DDD - Domain Driven Design

DDD é um conjunto de boas práticas de orientação a objetos e um padrão de modelagem de sistemas, uma metodologia para aplicação de conceitos e padrões no projeto.

DDD tende a ser uma idéia geral focando em entender primeiro o domínio.
Os problemas em questão, os objetos com os quais está trabalhando.
São construídos os modelos primeiro, ferramentas para manipulá-los em segundo lugar, e depois a lógica de negócios no topo para resolver os problemas de domínio por exigência de negócios.
Normalmente trabalha em mecanismos de persistência em seguida, e apresentação por último.

Isso vem em contrapartida com o uso comum do Data-Driven Design ou Projeto Orientado a Dados, que a maioria dos desenvolvedores usa sem mesmo ter consciência disso. Devemos em um primeiro momento esquecer de como os dados são persistidos e nos preocupar mais em como representar melhor as necessidades de negócio em classes e comportamentos.