Post

Messed up my hand tendons gaming too hard so I’ve been on a gaming/coding t-break over the past week. It feels good to go for a walk!

My hands are mostly healed now! Next week is more meditative refactoring of my old sokoban van game and some admin work on a semi-private non-game project! I’m really enjoying unemployment.

Admin work done I think! Now I get to enjoy puzzling out Generics and Dependancy Injection and Strategy Pattern for an Undo/Redo system! I’m using Generic Contravariance and the “dynamic” keyword seriously for the first time!

I’ve been using dependency injection regularly for the past ~5 years (2 years at a job using a big system built by someone else, 3 years on my own projects) and I keep liking it more and more. I still have so much to learn about it, too!

A month later, dependency injection and 'dynamic' aren't the answers. The best answer I have right now is functional method chaining and OneOf<> for Union Types. I'm learning a lot!

I’ve gotten rid of OneOf in favour of composition and lots of pattern matching. With each revision my code becomes more Functional, kind of on its own. This thing has been rewritten like 6 different times, I think! I haven’t been challenged by a project like this in a long time.

Working on something so inconsequential and niche feels very indulgent, and it’s hard to know if I’m going in the right direction. This project has challenged my patience a lot.

0 reposts0 likes

I’m still working on this every day! Im learning a lot all the time, this project has pushed me to grow! Right now it looks like the best perspective on the puzzle is EXTENSIVE pattern matching. It’s basically pattern matching all the way down.

I think most problems in my software can be approached by building some language for writing patterns that identify and react to a portion of the program’s state (much like a cellular automata), then doing everything in my power to reveal that process (step by step debugging, input fuzzing, etc.)