3 ms·
RE: Program is a model There are some more advanced refactoring tools now available. These tools enable you to write code to detect bad code patterns and even
by MarkSweep 4y ago
RE: Program is a model
There are some more advanced refactoring tools now available. These tools enable you to write code to detect bad code patterns and even automatically fix them. You can use them to write one-off transformations of code too. Rust has Dylint [1] and C# has Roslyn Analyzers [2]. Facebook has tooling [3] that helps writing CodeMods, enabling authors to generate changes for thousands of files at a time.
The thing I really would like to see is a smarter CI system. Caching of build outputs, so you don't have to rebuild the world from scratch every time. Distributed execution of tests and compilation, so you are not bottle-necked by one machine. Something that keeps track of which tests are flaky and which are broken on master, so you don't have to diagnose spurious build failures. Something that only runs the test that transitively depend on the code you change. Automatic bisecting of errors to the offending commit.
[1] https://github.com/trailofbits/dylint https://github.com/trailofbits/dylint
[2] https://docs.microsoft.com/visualstudio/code-quality/roslyn-analyzers-overview https://docs.microsoft.com/visualstudio/code-quality/roslyn-...
[3] one example: https://github.com/facebook/jscodeshift https://github.com/facebook/jscodeshift
- EdSchouten 4y ago> The thing I really would like to see is a smarter CI system. Caching of build outputs, so you don't have to rebuild the world from scratch every time. Distributed execution of tests and compilation, so you are not bottle-necked by one machine. This is already achievable nowadays using Bazel (https://bazel.build https://bazel.build) as a build system. It uses a gRPC based protocol for offloading/caching the actual build on a build cluster (https://github.com/bazelbuild/remote-apis https://github.com/bazelbuild/remote-apis). I am the author of one of the Open Source build cluster implementations (Buildbarn).