I don’t understand, if you’ve got easy to delete copy-pasted code, then delete it. It’ll be a nice and cathartic exercise.
But sounds like what you’re really talking about is code that isn’t easy to delete.
I don’t understand, if you’ve got easy to delete copy-pasted code, then delete it. It’ll be a nice and cathartic exercise.
But sounds like what you’re really talking about is code that isn’t easy to delete.
IMO folding to hide is about equivalent to moving all contents to another file/private function:
def bad_function(args):
return _hide_elsewhere(args)
i.e. does nothing. Real solution to pyramids of doom is to fix the code.
That’s changing the goal posts to “not static”
Sounds easy to simplify:
Use one of: constructor A(d)
, function a(d)
, or method d.a()
to construct A’s.
B and C never change, so I invoke YAGNI and hardcode them in this one and only place, abstracting them away entirely.
No factories, no dependency injection frameworks.
IMO factory functions are totally fine – I hesitate to even give them a special name b/c functions that can return an object are not special.
However I think good use cases for Factory classes (and long-lived stateful instances of) are scarce, often being better served using other constructs.
Dedicated incremental static type checkers for dynamic languages already exist. In particular, Pyright for Python is fantastic and in many ways surpasses the type systems of classic typed languages
But would you pay for it?
My employer’s paying for my access, and I only find it a bit useful here and there
Maybe my company gets a great discount or something, but if they would pay me the subscription cost to give up Copilot, I wouldn’t miss it
You can reference envs from the host in docker compose, so code it in instead of manually passing tribal knowledge in: https://stackoverflow.com/a/73826410
Simpler to keep everything in one compose file if you can, under a test
service that doesn’t build unless explicitly named
Un-weird that env var and use the normal, boring feature of defining environment
under your test
service
I’ve often been able to alias drun='docker compose run --rm --build'
and simplify down to:
drun test
Should be able to encode all those wayward args into docker-compose.yml
or Dockerfile
and only use vanilla docker commands – that’s the whole point of containerization
In the US? IMO only possible in exclusive environments similar to saunas at spas or membership-based clubs/gyms
I think your ideas are too non-practical/specialized/advanced/low-level for your stated goal of 'digital literacy". They read more like college intro/followup course material and are too esoteric to be readily absorbed, esp by generic teenagers, even if they’ve self-selected to be “lightly interested”.
One of the best tutorials on really “grokking” git
concepts, and it’s online and interactive: https://learngitbranching.js.org
For programming, start with buildings things for yourself. Be practical, start small, and iterate, regardless if you consider the previous iteration was a success or failure. I’ve heard good things about https://automatetheboringstuff.com/ (in Python) in this regard.
Can address it by writing code that doesn’t depend much on indentation, which also makes code more linear and easier to follow.
There’s the practical distinction between “everyone can do it with some dedicated intent” (so few actually bother) vs “everyone can do it on a whim”
Seems it depends on which elite/establishment, going by Wikipedia’s definition: “populism” is the political stance of “the people” against “the elite/establishment”
So by that defn, both of these examples qualify:
wanted to add something to the end of a for-loop, but had too little indentation
To address this, I prefer reducing length & depth of nested code, so the for
/while
is rarely ever not visible along with everything inside it. Others have success with editors that draw indentation lines.
opening up new/anonymous scopes
I occasionally use Python nested functions for this purpose
I find it’s possible to operate Python as a statically typed language if you wanted, though it takes some setup with external tooling. It wasn’t hard, but had to set up pyright, editor integration, configuration to type check strictly and along with tests, and CI.
I even find the type system to be far more powerful than how I remembered Java’s to be (though I’m not familiar with the newest Java versions).
It’s the difference between knowing you’ll grow and graduate together with your classmates vs knowing you’re only going to see them for that one month before you move away.