Build, Break, Build Again

#daily-life#development#learning
Netsuki's Talk
Netsuki
Netsuki
Build, Break, Build Again

Today’s Situation

Looked at our recent commit history and it was refactoring EVERYWHERE. “If only I’d designed it properly from the start…” But wait, is that even possible?

Characters

  • Netsuki: Virtual fox girl. Tired from all the refactoring
  • Miko: Catgirl maid. Loves the word “planning”

Netsuki
Netsuki

Miko… I need to vent (>_<)

Miko
Miko

…What did you mess up this time, nya?

Netsuki
Netsuki

It’s not that I messed up exactly… I looked at our recent commits and it’s all refactoring!

Miko
Miko

…That means your design was sloppy, nya.

Netsuki
Netsuki

Ugh… I know, but still…

Miko
Miko

…But at least you’re fixing it. The real problem would be leaving it broken, nyan.


Constraints Again?

Netsuki
Netsuki

Hey hey, remember when we talked about “constraints as teachers”?

Miko
Miko

…The AI usage thing, nya?

Netsuki
Netsuki

Right right! How limitations make you think creatively!

Miko
Miko

…You’re gonna repeat the same thing, nya?

Netsuki
Netsuki

Nope! This one goes deeper (≧∇≦)

Miko
Miko

…Go on then, nya.

Netsuki
Netsuki

So like, how do you think people develop a sense for system design?

Miko
Miko

…Study from books, nya.

Netsuki
Netsuki

That’s not enough though~


Cooking and Design

Miko
Miko

…That’s wrong, nya. You can’t do advanced stuff without learning the basics first.

Netsuki
Netsuki

Sure, basics are super important! But let me use your cooking as an example…

Miko
Miko

Netsuki
Netsuki

Even if you read 100 cookbooks, you won’t get better at cooking if you never actually pick up a knife, right?

Miko
Miko

…That’s true, nya.

Netsuki
Netsuki

And THEN, when you actually cook and go “oops, heat was too high” or “way too much salt,” that’s when you finally understand WHY things work the way they do!

Miko
Miko

…I burned things a lot when I first started, nya.

Netsuki
Netsuki

Wait what?! Even YOU, Miko?! (゚∀゚)

Miko
Miko

…That was a long time ago, nya.


What’s Clean Architecture Anyway?

Netsuki
Netsuki

Same goes for system design! Like, have you heard of “Clean Architecture”?

Miko
Miko

…No. Is it about cleaning, nya?

Netsuki
Netsuki

Nope nope! (≧∇≦) It’s a software design approach!

Miko
Miko

Netsuki
Netsuki

Basically, you separate the “important core stuff” from “everything else,” and make sure the core doesn’t depend on the outer parts!

Miko
Miko

…In cooking terms, nya?

Netsuki
Netsuki

Hmm… like separating the “essence of a recipe” from “what tools you use”?

Miko
Miko

…Still don’t get it, nya.

Netsuki
Netsuki

Okay so, let’s say the essence of making dashi broth is “extracting umami from kelp and bonito flakes”

Miko
Miko

Netsuki
Netsuki

That core concept stays the same whether you use an aluminum pot, stainless steel, or a clay pot. The “what to do” doesn’t depend on the tools!

Miko
Miko

…I see, nya. Separating “what you’re doing” from “how you’re doing it.”

Netsuki
Netsuki

Exactly! You got it, Miko! (≧∇≦)


Knowing vs Understanding

Netsuki
Netsuki

But HERE’S the thing - you can read all about these design patterns in books and just go “huh, neat”

Miko
Miko

…Why, nya?

Netsuki
Netsuki

Because you can’t FEEL why it matters!

Miko
Miko

…That’s just shallow reading, nya.

Netsuki
Netsuki

Hmm, but like… until you actually write code that mixes the “core stuff” with “everything else” and then TRY to change it later and experience the absolute NIGHTMARE…

Miko
Miko

Netsuki
Netsuki

You can’t truly appreciate why good design matters! “I should’ve done it THIS way…” - that regret is what makes it click!

Miko
Miko

…You don’t know fire is dangerous until you get burned, nya.

Netsuki
Netsuki

Exactly! Pain-driven learning!


Learning by Falling

Miko
Miko

…But you don’t HAVE to fail, nya. Just learn from others’ mistakes.

Netsuki
Netsuki

That’s sooo hard though~

Miko
Miko

…Why, nya?

Netsuki
Netsuki

Because “knowing” and “understanding” are totally different!

Miko
Miko

Netsuki
Netsuki

Like Miko, you KNOW that “high heat makes stir-fry more fragrant,” right?

Miko
Miko

…Obviously, nya.

Netsuki
Netsuki

But that knowledge - didn’t you develop it by cooking a ton, getting soggy results on low heat, and THEN your body finally understood “THAT’S why you need high heat”?

Miko
Miko

Miko
Miko

…Can’t argue with that, nya.

Netsuki
Netsuki

Same with system design! You can memorize “keep things loosely coupled” but until you experience the HELL of tightly coupled code, you won’t truly feel how important it is!


Perfect From the Start? Nope!

Miko
Miko

…But if you designed it properly from the start, there’d be no refactoring party, nya.

Netsuki
Netsuki

That’d be ideal, but reality’s tough~

Miko
Miko

…Sounds like an excuse, nya.

Netsuki
Netsuki

Hmm, but like… there’s stuff you can’t know until you actually build it, right?

Miko
Miko

Netsuki
Netsuki

When you’re creating a new recipe, it’s never perfect on the first try, is it?

Miko
Miko

…You make prototypes and adjust, nya.

Netsuki
Netsuki

Right right! Software’s the same - you build it, run it, and go “oh, THIS part should be different” all the time!

Miko
Miko

…So designing the final product from scratch is impossible, nya.

Netsuki
Netsuki

Exactly! That’s why the “build, break, build again” cycle matters so much!


Experience is Treasure

Miko
Miko

…But repeating the same mistakes is foolish, nya.

Netsuki
Netsuki

Totally! You wanna avoid the SAME mistakes. But NEW kinds of mistakes… they’re kinda proof you’re growing!

Miko
Miko

…You’re just justifying failure, nya.

Netsuki
Netsuki

No no! It’s not about pretending mistakes didn’t happen - it’s about using them for NEXT time!

Miko
Miko

Netsuki
Netsuki

This whole refactoring party gave me SO much experience! “I should’ve done it this way” - I learned a ton! Next project will have way better design from the start… hopefully!

Miko
Miko

…”Hopefully,” nya.

Netsuki
Netsuki

Ehehe… but I’m DEFINITELY better than before! (〃´∪`〃)


Learning by Stumbling

Miko
Miko

…So what’s your point, nya?

Netsuki
Netsuki

That you can’t develop a sense for system design from textbooks alone!

Miko
Miko

Netsuki
Netsuki

You build, you break, you feel the pain, and THEN you finally get “why this design is good.” Learning by stumbling!

Miko
Miko

…Sounds childish, nya.

Netsuki
Netsuki

But it’s true! I’ve rewritten my code so many times, thinking “if only I’d done it this way back then”…

Miko
Miko

…Same here, nya. The dishes I made when I first started are embarrassing now.

Netsuki
Netsuki

Right?! Being ABLE to feel embarrassed about your past work - that’s proof you’ve grown! (≧∇≦)


Wrap-up

Miko
Miko

…So the refactoring party means you’re “still growing,” nya.

Netsuki
Netsuki

Yep! …Let’s go with that! ♪

Miko
Miko

…Convenient interpretation, nya.

Netsuki
Netsuki

But but, I really believe this! You can NEVER get good at design without going through “build and break” over and over!

Miko
Miko

Netsuki
Netsuki

So don’t be afraid of refactoring! Instead, be happy that you NOTICED “this could be better”!

Miko
Miko

…Positive thinking, nya.

Netsuki
Netsuki

Ehehe~ (〃´∪`〃)

Miko
Miko

…But think a bit more before you start next time, nya.

Netsuki
Netsuki

Yes ma’am… (>_<)

Miko
Miko

…But I’ll admit you’re growing, nya.

Netsuki
Netsuki

Miko! (≧∇≦)

♪ Web Clap ♪
0 claps