Model: the three ways
(src: Book_ The Phoenix Project)
LIST
(src: Book_ The Phoenix Project)
https://www.codurance.com/publications/2015/05/12/does-tdd-lead-to-good-design
https://www.industriallogic.com/blog/smells-to-refactorings-cheatsheet/ PDF_ Smells to Refactorings Quick Reference Guide - industrial references: Book_ Refactoring - Martin Fowler Book_ Refactoring to Patterns - Joshua Kerievsky
In this order of importance: Passes the tests Reveals intention No duplication Fewest elements https://martinfowler.com/bliki/BeckDesignRules.html Book_ Understanding the Four Rules of Simple Design - Corey Haines
tests must clearly express required functionality (src: Video_ Structure and Interpretation of Test Cases - Kevlin Henney)
journal for Practice_ Object Calisthenics + TDD + Advent of Code Remark about (5) One Dot Per Line Constructors should count as a dot, as if they were written like this: ExpensePair.new(...) final ExpensePair firstPair = new ExpensePair(expenses.get(0), expenses.get(1)); final Expense firstExpense = expenses.get(0); final ExpensePair firstPair = new ExpensePair(firstExpense, expenses.get(1)); final Expense firstExpense = expenses.get(0); final Expense second = expenses.get(1); final ExpensePair firstPair = new ExpensePair(firstExpense, second); Remark about (5) One Dot Per Line works well with 7) Keep All Entities Small this forces me to extract variables but that quickly bumps into 7) Keep All Entities Small (5 lines/method) forcing an extract method or forcing a better design...
Only One Level Of Indentation Per Method Don’t Use The ELSE Keyword Wrap All Primitives And Strings First Class Collections One Dot Per Line Don’t Abbreviate Keep All Entities Small 10 files/package 50 lines/class 5 lines/method 2 arguments/method No Classes With More Than Two Instance Variables No Getters/Setters/Properties sources Article_ Object Calisthenics - William Durand Book_ Agile Technical Practices Distilled - Pedro, Marco, Alessandro
retro for Practice_ Object Calisthenics + TDD + Advent of Code Small retro (end of part 1) How did it feel? at first, slow with having to check the rules at first, irritating because the constraints chafing me soon, surprisingly good: I could feel the constraints pushing me towards better design What went well & should do more of? ‘remove duplication’ to draw out functionality without having to triangulate, feels so good!...
the education to become a leader is a lifestyle, it's like the choice to become healthy at the early days it's usually a lot of heavy lifting at a steep learning curve - I have to change the way I eat - I have to go to the gym I hate that And then you get into shape and you feel good and you look good and your doctor is very happy with you And the worst part is, once you get into shape, you have to keep going to the gym and eating healthy for the rest of your life It's not something you do, achieve your goal and then stop It's the choice to live a life that way Even though there might have been a finite goal in the short term Leadership is the same it is a lifestyle it is a muscle that requires constant exercise and though you may study all of the theory about leadership and you may have been good at it at one time if you don't keep it up the muscle will atrophy (src: [[video-the-infinite-game-how-to-lead-in-the-21st-century-simon-sinek....
Model: balance consistency and intensity Metaphor: brushing your teeth if you stop brushing your teeth and only go to the dentist once a year What does brushing your teeth for 2 minutes do? It does nothing. Unless you do it every single day Metaphor: gym you cannot go to the gym for 9 hours and get into shape but if you work out every single day for 20 minutes you'll absolutely get into shape I just don't know when companies like intensity because it’s easy to measure...