The talk from @ScaleByTheBay about how Unison lets you refactor a codebase without ever breaking it is now online https://www.youtube.com/watch?v=IvENPX0MAZ4 … and there's a blog post writeup here https://www.unisonweb.org/2019/11/26/how-to-refactor-a-codebase-without-ever-breaking-it …
-
Prikaži ovu nit
-
The usual codebase editing experience: code is modified in place, generating a list of (often misleading) compile errors or test failures, then slogging through those to restore the codebase to a working state.
1 reply 0 proslijeđenih tweetova 1 korisnik označava da mu se sviđaPrikaži ovu nit -
While you work through these errors, the code is broken. You're blocked from doing anything else - you can't run your code or work on other things unrelated to your refactoring. This is not an ideal experience. Can we do better?
1 reply 0 proslijeđenih tweetova 2 korisnika označavaju da im se sviđaPrikaži ovu nit -
Refactoring in Unison is a structured process whereby a new, compiling version of the code is built up incrementally off to the side.
1 reply 0 proslijeđenih tweetova 2 korisnika označavaju da im se sviđaPrikaži ovu nit -
The Unison codebase is never in a broken state - it always typechecks and is runnable, and you can control the scope of any change. You can test a refactoring out in a small context before propagating to the whole codebase.
1 reply 0 proslijeđenih tweetova 2 korisnika označavaju da im se sviđaPrikaži ovu nit -
The idea is that every change starts out well typed in some small context, and refactoring is the gradual process of expanding that context to include transitive dependents of the changed code. Unison lets you control this, or automate it.
1 reply 0 proslijeđenih tweetova 2 korisnika označavaju da im se sviđaPrikaži ovu nit -
You might have bad memories of tedious refactoring converting pure code to monadic, which involves switching from pure to monadic syntax and updating a bunch of type signatures, often all along an entire dependency chain.
1 reply 0 proslijeđenih tweetova 2 korisnika označavaju da im se sviđaPrikaži ovu nit -
In Unison this work just vanishes, as changes to ability signatures (Unison's types for tracking effects) are propagated automatically to callers.
1 reply 0 proslijeđenih tweetova 2 korisnika označavaju da im se sviđaPrikaži ovu nit -
For more info on the Unison refactoring workflow, there's newly created documentation here https://www.unisonweb.org/docs/refactoring/ …
1 reply 1 proslijeđeni tweet 8 korisnika označava da im se sviđaPrikaži ovu nit
Everywhere we turn, we find aspects of the common developer experience that can be vastly improved through some careful rethinking. It really is possible to make better tools, so let's keep doing that!
Čini se da učitavanje traje već neko vrijeme.
Twitter je možda preopterećen ili ima kratkotrajnih poteškoća u radu. Pokušajte ponovno ili potražite dodatne informacije u odjeljku Status Twittera.