You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
*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.
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.
Kanban [com K maiúsculo], foi criado por Taiichi Ohno (Toyota),
é um sistema de controle da cadeia logística de produção e do estoque de insumos que este sistema necessita.
O Kanban (JIT – Toyota) não é exatamente o Kanban (LeanKanban – David Anderson).
Kanban para desenvolvimento de software foi um conceito trazido por David Anderson, com contribuições de Corey Ladas (Scrumban) adaptado para o ecossistema de TI.
Quando falamos de Kanban em desenvolvimento de software, existem 3 elementos básicos:
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
To me, legacy code is simply code without tests. I’ve gotten some grief for this definition. What do tests have to do with whether code is bad?
To me, the answer is straightforward, and it is a point that I elaborate throughout the book: Code without tests is bad code. It doesn’t matter how well written it is; it doesn’t matter how pretty or object-oriented or well-encapsulated it is.
With tests, we can change the behavior of our code quickly and verifiably. Without them, we really don’t know if our code is getting better or worse.
Chapter 1 Changing Software
Four Reasons to Change Software:
For simplicity’s sake, let’s look at four primary reasons to change software.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
Follow standard conventions.
Keep it simple stupid. Simpler is always better. Reduce complexity as much as possible.
Boy scout rule. Leave the campground cleaner than you found it.
Always find root cause. Always look for the root cause of a problem.