Is it safe to use __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED?
github.com
github.com
You can threaten hell and experience it while maintaining code with functions & variables like
__SECRET_INTERNALS.IAM_A_BUDDHIST.IAM_WILLING_TO_VISIT_NARAKA_BY_USING_THIS.VARIABLE_FROM_HELL_1
__SECRET_INTERNALS.IAM_AN_ATHEIST.I_ACCEPT_THERE_IS_GOD.GOD_VARIABLE_1
This \"function\" has a superficial similarity to 'unsafePerformIO' but
it is in fact a malevolent agent of chaos. It unpicks the seams of reality
(and the 'IO' monad) so that the normal rules no longer apply. It lulls you
into thinking it is reasonable, but when you are not looking it stabs you
in the back and aliases all of your mutable buffers. The carcass of many a
seasoned Haskell programmer lie strewn at its feet.
Do not talk about \"safe\"! You do not know what is safe!
Yield not to its blasphemous call! Flee traveller! Flee or you will be
corrupted and devoured!Fun nostalgia to see it out there :)
Note that I doubt anybody ever got fired for modifying these parts of the code. In particular, automatic refactors would have modified these (safely); and it’s a scary warning about negative consequences of messing up.
reject sixty two thousand four hundred and six records
into a modal with paste disabled and a red background.
You can't fix stupid, even if they're paying customers.
And then you get "I hacked the headers to expose your private variable, and now my program is broken, help!"
Back when I did a lot more Objective-C you'd have programmers that figure out your private APIs and custom craft invocations to it. Yay.
It feels like getting programmers to code to API contracts, instead of observed behavior, is just one of the toughest things out there...
Normalize closing stuff like this without further discussion as far as I'm concerned
"Don't do that." </resolved>
I have learned from this experience to try to make my own stuff safe to extend without needing to access genuinely internal stuff, but it's a lot of work to achieve that level of flexibility. I can see why people generally don't bother.
https://www.ifixit.com/News/74736/warranty-void-stickers-are...
The behavior can change on any release
The most popular React framework, NextJS, vendors a specific, unreleased version of React and their documentation recommends the use of APIs that have never been in a stable release. That's apparently accepted everywhere. This particular variable couldn't be any worse.The Stackoverflow post is about detecting the end of a render cycle in useEffect.