# Week 1 - 2023

## **Books**

### Refactoring:

* Interesting strategies to deal with 'big' refactorings
    
* Interesting concept in the NullObject (Blog post pending)
    
* I am left pondering how I would actually refactor the db in something as tightly coupled as Rails
    

## Domain driven design

* The concept of ubiquitous language is interesting. Although it sounds extremely challenging.
    
* I wonder how one could retrofit the ubiquitous language in an already running application
    
* Different coding and company languages do not help, but can be relatively easily overcome
    

## Practice

### Ruby

* Participated (i.e. was taught) in the implementation of an actual Factory and Builder Pattern GoF style!
    
* Class methods are also affected by inheritance (e.g. `super`)
    

### Python

* Data types do not contain all methods that 'affect them' unlike Ruby. (E.g. `filter(function, ither)`).
    
* Python prevents you from having circular dependencies, go Python!
    
* List comprehension. It sounds like a very sharp knife, I'll end up cutting myself.
    

### Testing

* Starting to get a grasp of how BDD is supposed to work, after my fair share of failures trying it. (In a one man hobby project, still curious to see it in 'the wild')
    
* Getting better at testing the behavior and not the implementation
    

## Misc

### Notes to self

* If you want to find a defect, follow the error message
    
* If something starts to feel unnatural or like you are fighting your program, probably you are doing something wrong
    
* @ keywords in Python are scary!
    

### List of topics of interest\*

\**Where I want to learn more of*

* UML
    
* Databases
    
* Functional Programming
    
* Bash/shell
    
* DDD
    
* CI/CD
    
* Agile in practice
    
* Game development
    

### Things to (re)try next week:

* Pomodoro
    
* Eat the Frog
    
* A bit of UML where possible
    

### Wins:

* Managed to get my game project to where I can highlight the individual cells on hover.
    

### Losses:

* Did not fix all the defects that needed fixing
    

### Surprise:

* chatGPT is quite useful albeit dangerous in the **green** side of *red-green-refactor*
