DEV Community

Dakota Huang profile picture

Dakota Huang

Building things with Python, Go, and JavaScript. Love automating everything.

Location Seattle, WA Joined Joined on 
Your Refactor Copies a List. The Caller Still Holds the Old One.

Your Refactor Copies a List. The Caller Still Holds the Old One.

Comments
5 min read
Replay the Seam: A Differential Gate for the Smallest Safe Refactor

Replay the Seam: A Differential Gate for the Smallest Safe Refactor

Comments
5 min read
Run It Ten Times Before You Write One Characterization Test

Run It Ten Times Before You Write One Characterization Test

Comments
6 min read
Two Runs Must Agree Before You Freeze a CLI Transcript

Two Runs Must Agree Before You Freeze a CLI Transcript

Comments
6 min read
Count the Clocks Before Characterization Tests: A Nondeterminism Census for Messy Repos

Count the Clocks Before Characterization Tests: A Nondeterminism Census for Messy Repos

Comments
5 min read
Map Every Changed Line to the Test That Ran It Before You Refactor

Map Every Changed Line to the Test That Ran It Before You Refactor

Comments
6 min read
Pin the Order of Side Effects Before the Refactor: An Effect Ledger Gate

Pin the Order of Side Effects Before the Refactor: An Effect Ledger Gate

Comments
6 min read
Record What Your Code Throws Before You Refactor It

Record What Your Code Throws Before You Refactor It

Comments
5 min read
Your Characterization Tests Passed. The Side Effects Changed Order.

Your Characterization Tests Passed. The Side Effects Changed Order.

Comments
5 min read
Triage Nondeterminism Before Golden Tests: A Probe for Messy Repos

Triage Nondeterminism Before Golden Tests: A Probe for Messy Repos

Comments
7 min read
Pin the Order, Not Just the Value: an Interaction Ledger for Messy-Repo Refactors

Pin the Order, Not Just the Value: an Interaction Ledger for Messy-Repo Refactors

Comments 1
6 min read
Let the Free Model Write Inputs, Not Assertions: A Mutation Gate Before Your Refactor

Let the Free Model Write Inputs, Not Assertions: A Mutation Gate Before Your Refactor

Comments
5 min read
Before the Smallest Safe Change, Prove Your Characterization Tests Can Fail

Before the Smallest Safe Change, Prove Your Characterization Tests Can Fail

Comments
5 min read
Break Your Code on Purpose: A Kill-Rate Gate for Characterization Tests

Break Your Code on Purpose: A Kill-Rate Gate for Characterization Tests

Comments
6 min read
Prove the Smallest Safe Change Is Mechanical: An AST Diff Gate

Prove the Smallest Safe Change Is Mechanical: An AST Diff Gate

Comments
5 min read
Census the Names a Function Reads Before You Extract It

Census the Names a Function Reads Before You Extract It

Comments
5 min read
Freeze the Export Surface Before a Messy Refactor: A Manifest Gate in Python

Freeze the Export Surface Before a Messy Refactor: A Manifest Gate in Python

Comments
6 min read
Test the Process, Not the Module: A Black-Box Characterization Gate for a Repo You Can't Import

Test the Process, Not the Module: A Black-Box Characterization Gate for a Repo You Can't Import

Comments
5 min read
Time Your Safety Net First: A Budget Gate for Characterization Tests in Messy Repos

Time Your Safety Net First: A Budget Gate for Characterization Tests in Messy Repos

Comments
5 min read
Characterize the Boundary, Not the Module: An Import-Graph Gate for Messy Refactors

Characterize the Boundary, Not the Module: An Import-Graph Gate for Messy Refactors

Comments
5 min read
Census Every Raise Site Before You Move a Module

Census Every Raise Site Before You Move a Module

Comments
5 min read
Record the Ordered Side-Effect Ledger Before You Move One Function

Record the Ordered Side-Effect Ledger Before You Move One Function

Comments
4 min read
Record the Call Order, Not the Return Value: A Ledger Gate for Messy Refactors

Record the Call Order, Not the Return Value: A Ledger Gate for Messy Refactors

Comments
5 min read
Prove Reach Before You Move: A Coverage Gate for Characterization Tests

Prove Reach Before You Move: A Coverage Gate for Characterization Tests

Comments
5 min read
Cluster Edits by Failing-Test Signature Before the Smallest Safe Change

Cluster Edits by Failing-Test Signature Before the Smallest Safe Change

Comments
5 min read
Hold Out a Third of Your Corpus: The Characterization Gate for a Messy Refactor

Hold Out a Third of Your Corpus: The Characterization Gate for a Messy Refactor

Comments
5 min read
Bug-for-Bug: Stamp Every Frozen Behavior With a Quirk ID Before You Refactor

Bug-for-Bug: Stamp Every Frozen Behavior With a Quirk ID Before You Refactor

Comments
5 min read
Pin the Bugs Before You Move the Function: A Two-Way Behavior Ledger

Pin the Bugs Before You Move the Function: A Two-Way Behavior Ledger

Comments
6 min read
Your Refactor May Only Touch Lines Your Tests Execute

Your Refactor May Only Touch Lines Your Tests Execute

Comments
4 min read
The AST Matched, the Behavior Didn't: Checking Name Resolution After a Function Move

The AST Matched, the Behavior Didn't: Checking Name Resolution After a Function Move

Comments
5 min read
The Call Order Is the Contract: Trace Fixtures Before a Messy-Repo Extraction

The Call Order Is the Contract: Trace Fixtures Before a Messy-Repo Extraction

Comments 1
5 min read
Set a Change Budget Before You Refactor: A Git-Diff Gate for Messy Repos

Set a Change Budget Before You Refactor: A Git-Diff Gate for Messy Repos

Comments
5 min read
Score Every Seam Before You Move One: A Blast-Radius Budget for Messy Repos

Score Every Seam Before You Move One: A Blast-Radius Budget for Messy Repos

Comments
6 min read
Two Commits per Refactor: A Diff Gate That Keeps Pins Away From the Move

Two Commits per Refactor: A Diff Gate That Keeps Pins Away From the Move

Comments
5 min read
A Test That Cannot Fail Is Decoration: Gating Model-Drafted Characterization Tests

A Test That Cannot Fail Is Decoration: Gating Model-Drafted Characterization Tests

Comments
5 min read
Replay Captured Inputs, Then Move One Function: A Flake-Trial Gate for Messy Refactors

Replay Captured Inputs, Then Move One Function: A Flake-Trial Gate for Messy Refactors

Comments
5 min read
Freeze the Clock, Not the Timeout: A Time-Zone Matrix Before You Extract a Module

Freeze the Clock, Not the Timeout: A Time-Zone Matrix Before You Extract a Module

Comments
6 min read
Refactor Error Paths First: A Fault-Injection Table for Messy Repos

Refactor Error Paths First: A Fault-Injection Table for Messy Repos

Comments
5 min read
Twenty Identical Runs, Then One Small Diff: Sealing Entropy Before a Messy Refactor

Twenty Identical Runs, Then One Small Diff: Sealing Entropy Before a Messy Refactor

Comments
4 min read
Test the Safety Net First: Mutation-Check Characterization Pins Before a Refactor

Test the Safety Net First: Mutation-Check Characterization Pins Before a Refactor

Comments
5 min read
Twenty Identical Runs or No Refactor: A Determinism Gate for Characterization Tests

Twenty Identical Runs or No Refactor: A Determinism Gate for Characterization Tests

Comments
4 min read
Freeze the Clock First: A Nondeterminism Gate for Messy Refactors

Freeze the Clock First: A Nondeterminism Gate for Messy Refactors

Comments
5 min read
The Bug Is in the Files: Characterize Filesystem Side Effects Before a Messy Refactor

The Bug Is in the Files: Characterize Filesystem Side Effects Before a Messy Refactor

Comments
5 min read
Find the Seam Before You Cut: A Read/Write Census for Messy Modules

Find the Seam Before You Cut: A Read/Write Census for Messy Modules

Comments
7 min read
Cap Snapshot Churn: A Failure-First Characterization Harness for Messy Repos

Cap Snapshot Churn: A Failure-First Characterization Harness for Messy Repos

Comments
5 min read
Pin the Call Log, Not the Return Value: Choosing the Smallest Safe Refactor Move

Pin the Call Log, Not the Return Value: Choosing the Smallest Safe Refactor Move

Comments
6 min read
Record Every Side Effect Before You Extract: A Ledger Diff Gate

Record Every Side Effect Before You Extract: A Ledger Diff Gate

Comments
5 min read
Characterization Tests Are Not Enough: Add a Diff-Budget Guard

Characterization Tests Are Not Enough: Add a Diff-Budget Guard

Comments
6 min read
Seed Five Mutations Before You Trust a Characterization Test

Seed Five Mutations Before You Trust a Characterization Test

Comments
5 min read
Stop Hand-Writing a Hundred Characterization Tests: Shrink a Recorded Corpus Instead

Stop Hand-Writing a Hundred Characterization Tests: Shrink a Recorded Corpus Instead

Comments
5 min read
Shuffle the Input 200 Times Before You Extract One Module

Shuffle the Input 200 Times Before You Extract One Module

Comments
5 min read
Twenty Repeat Runs Before You Move One Function: A Determinism Gate for Messy Repos

Twenty Repeat Runs Before You Move One Function: A Determinism Gate for Messy Repos

Comments
5 min read
Refactor a Repo You Don't Understand: Golden Files First, One Change Second

Refactor a Repo You Don't Understand: Golden Files First, One Change Second

Comments 1
5 min read
One Star Alias Moves Only After Grant Rows Freeze

One Star Alias Moves Only After Grant Rows Freeze

Comments
6 min read
Refund Clock Tests Before the Smallest Extract

Refund Clock Tests Before the Smallest Extract

Comments
7 min read
Freeze Refund Outcomes, Then Extract One Predicate

Freeze Refund Outcomes, Then Extract One Predicate

Comments
7 min read
Hold Receipt Outputs, Then Lift One Tax Function

Hold Receipt Outputs, Then Lift One Tax Function

Comments
8 min read
Record Observed Outputs Before One Safe Refactor

Record Observed Outputs Before One Safe Refactor

Comments
6 min read
Hold Fourteen Retry Outcomes, Then Move Backoff Math

Hold Fourteen Retry Outcomes, Then Move Backoff Math

Comments
8 min read
Freeze the Deadline Split Before You Extract It

Freeze the Deadline Split Before You Extract It

Comments
7 min read
loading...