News for hackers. Stuff that matters.
Re:Long Term Refactors by keriati1 on Saturday January 27, 2024 @03:08PM (#39159311)
For projects where the estimated rewrite duration exceeds three months, we have employed an iterative approach to refactoring for several years. This methodology has yielded pretty good results.

We also utilize a series of Bash scripts designed to monitor the refactoring process. These scripts collect data regarding the utilization of both the old and new "state" within the codebase. The collected data is then dumped in Grafana, providing us with a clear overview of our progress.

Re:Long Term Refactors by Kinrany on Saturday January 27, 2024 @04:36PM (#39160084)
Oh, the idea of tracking the state of the refactoring process with small scripts is very cool. Obvious in retrospective too. These scripts would be useful even if they're only like 90% correct.
Re:Long Term Refactors by cpeterso on Saturday January 27, 2024 @06:38PM (#39160989)
An example: “Are We ESMified Yet?” is a Mozilla dashboard tracking an incremental Firefox code migration (1.5 years and counting) from a Mozilla-specific "JSM" JavaScript module system to the standard ECMAScript Module "ESM" system. Current ESMification: 96.69%.

“Are We X Yet?” is a Mozilla meme for dashboards like this.

https://spidermonkey.dev/areweesmifiedyet/

Re:Long Term Refactors by zogrodea on Sunday January 28, 2024 @01:04PM (#39168121)
I saw the phrase “are we X yet” used in the Rust community (is Rust ready for games or whatever) but never realised the phrase’s origin with Mozilla. Thank you for the little piece of history.
Re:Long Term Refactors by cpeterso on Sunday January 28, 2024 @02:46PM (#39169126)
AFAIK, https://arewefastyet.com/ (AWFY) was the first, registered in 2010.

“Are We Meta Yet?” http://www.arewemetayet.com/ is an incomplete and outdated list of some of these dashboards. Some domains expired and are now squatted.

Re:Long Term Refactors by cpeterso on Saturday January 27, 2024 @07:32PM (#39161325)
If you have scripts that can count uses of the deprecated code, you can use them to detect regressions and generate build warnings if someone adds new code using the deprecated code. Periodically you can decrease the script’s max use counter, ratcheting down until you hit zero uses.