shakedown.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A community for live music fans with roots in the jam scene. Shakedown Social is run by a team of volunteers (led by @clifff and @sethadam1) and funded by donations.

Administered by:

Server stats:

292
active users

#refactoring

0 posts0 participants0 posts today
Karsten Schmidt<p>In recent years every spring seems to turn into a period of _massive_ refactoring &amp; restructuring in <a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ThingUmbrella</span></a> — maybe it's a form of spring cleaning, even though the reasons[1] are not seasonal... Currently spending my nights reworking the <a href="https://thi.ng/vectors" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/vectors</span><span class="invisible"></span></a> package (likely one of the most comprehensive vector packages available for TS/JS) and trying out different splits/structures, testing their impact on package sizes and usability in existing downstream packages. Currently over 3000 source files with uncommitted changes... aaaarrrgghh! 🤯</p><p>Most functions (vector operations) in this package exist in multiple versions (many code generated, but now in need to be updated): Generic n-dimensional, loop-free, optimized 2D/3D/4D versions and strided versions for manipulating vectors views of larger nD data buffers (supporting all kinds of data layouts, incl. AOS, SOA, hybrid...)</p><p>[1] <a href="https://mastodon.thi.ng/@toxi/114296442006935718" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">mastodon.thi.ng/@toxi/11429644</span><span class="invisible">2006935718</span></a></p><p><a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ThingUmbrella</span></a> <a href="https://mastodon.thi.ng/tags/Vectors" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Vectors</span></a> <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>TypeScript</span></a> <a href="https://mastodon.thi.ng/tags/JavaScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>JavaScript</span></a> <a href="https://mastodon.thi.ng/tags/Refactoring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Refactoring</span></a> <a href="https://mastodon.thi.ng/tags/OpenSource" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>OpenSource</span></a></p>
Ted M. Young<p><a href="https://sfba.social/tags/Java" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Java</span></a> Live Coding Stream</p><p>Join me live as I continue work on the event-sourcing aspect of JitterTed's TDD Game online.</p><p>Java, <a href="https://sfba.social/tags/EventSourcing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>EventSourcing</span></a>, <a href="https://sfba.social/tags/TDD" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>TDD</span></a>, <a href="https://sfba.social/tags/Refactoring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Refactoring</span></a>, mistakes, rants, and more: <a href="https://jitterted.stream" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">jitterted.stream</span><span class="invisible"></span></a></p>
Ted M. Young<p><a href="https://sfba.social/tags/Java" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Java</span></a> Live Coding Stream</p><p>In an hour (6pm UTC) I'll be continuing work on the event-sourcing aspect of JitterTed's TDD Game online (<a href="https://tdd.cards" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">tdd.cards</span><span class="invisible"></span></a>).</p><p>Join me on Twitch for Java, <a href="https://sfba.social/tags/EventSourcing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>EventSourcing</span></a>, <a href="https://sfba.social/tags/TDD" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>TDD</span></a>, <a href="https://sfba.social/tags/Refactoring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Refactoring</span></a>, mistakes, rants, and more: <a href="https://jitterted.stream" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">jitterted.stream</span><span class="invisible"></span></a></p>
Programming Languages Delft<p>Master thesis by Hendy Liang: "Property-Based ASTs: Enabling Language Parametricity in Refactoring Tools"</p><p>"By leveraging Tree-Sitter, a parser generator that creates parsers that produce generic, property-based ASTs, this research adapts Renaissance, an existing industrial refactoring tool, to support multi-language extensibility with minimal additional effort."</p><p><a href="https://repository.tudelft.nl/record/uuid:6e143a35-32b8-4f7e-928e-52057ea57566" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">repository.tudelft.nl/record/u</span><span class="invisible">uid:6e143a35-32b8-4f7e-928e-52057ea57566</span></a></p><p><a href="https://akademienl.social/tags/LanguageParametricity" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LanguageParametricity</span></a> <a href="https://akademienl.social/tags/refactoring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>refactoring</span></a> <a href="https://akademienl.social/tags/treesitter" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>treesitter</span></a> <a href="https://akademienl.social/tags/thesis" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>thesis</span></a></p>
slotek<p>If I drink more tea, this code will start to make sense, right? <a href="https://mastodon.social/tags/refactoring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>refactoring</span></a></p>
Antoine Vernois<p>Je suis un développeur logiciel expérimenté (20+ :) indépendant, mentor et coach, je serai disponible en février.<br>Si vous cherchez un coup de main pour dompter une base de code sauvage, préparer une grosse évolution ou plus généralement développer un logiciel maintenable, c'est le bon moment :)</p><p>J'interviens principalement de deux façons: <br>* intégré à l'équipe, je fais le taf avec vous en pair programming <br>* et/ou en accompagnement, je vous guide dans vos réflexions et l'implémentation (qq heures/semaine)</p><p>* tous langages/technos/environnements<br>* remote only ou Ambert<br>* déplacement ponctuel ok<br>* freelance</p><p><a href="https://piaille.fr/tags/BoostWelcome" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>BoostWelcome</span></a> <a href="https://piaille.fr/tags/dev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>dev</span></a> <a href="https://piaille.fr/tags/freelance" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>freelance</span></a> <a href="https://piaille.fr/tags/refactoring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>refactoring</span></a> <a href="https://piaille.fr/tags/tdd" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>tdd</span></a></p>
Kevlin Henney<p>In the latest and last of the recent round of essay revisits, I have updated the code and formatting, some links and clarified the wording in Out of Control, which explores coding styles and paradigms, refactoring and the Roman Numerals kata.</p><p><a href="https://mastodon.social/tags/RomanNumerals" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>RomanNumerals</span></a> <a href="https://mastodon.social/tags/Kata" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Kata</span></a> <a href="https://mastodon.social/tags/Python" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Python</span></a> <a href="https://mastodon.social/tags/JSON" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>JSON</span></a> <a href="https://mastodon.social/tags/Refactoring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Refactoring</span></a> <a href="https://mastodon.social/tags/ControlFlow" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ControlFlow</span></a> <a href="https://mastodon.social/tags/Code" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Code</span></a> <a href="https://mastodon.social/tags/Data" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Data</span></a></p><p><a href="https://kevlinhenney.medium.com/out-of-control-97ed6efa2818" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">kevlinhenney.medium.com/out-of</span><span class="invisible">-control-97ed6efa2818</span></a></p>
Gerbrand van Dieyen<p>I sometimes refrain from doing refactoring because I know it lead to discussion for on which I don't want to spent any energy. <a href="https://fosstodon.org/tags/refactoring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>refactoring</span></a></p>
Thomas Much<p>Every inline code comment is a method (function) that yearns to be extracted. <a href="https://mastodon.social/tags/Refactoring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Refactoring</span></a> <a href="https://mastodon.social/tags/SmallSteps" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallSteps</span></a></p>
Volker Stolz<p>My co-author Violet and I are almost on the way to the ISoLA-conference where I will present our work with our excellent MSc student Sebastian Kingston from <a href="https://mastodon.social/tags/UiO" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>UiO</span></a> on “Automated Clone Elimination in Python Tests” in the Automated Software Re-engineering-track!</p><p>Our contribution is based on Sigrid Eldh’s observation at an earlier ISoLA on what issues industry actually faces in testing.</p><p>Visit our blog for abstract, preprint and full thesis!</p><p><a href="https://selabhvl.github.io/update/2024/10/15/python-tests-isola.html" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">selabhvl.github.io/update/2024</span><span class="invisible">/10/15/python-tests-isola.html</span></a></p><p><a href="https://mastodon.social/tags/python" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>python</span></a> <a href="https://mastodon.social/tags/refactoring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>refactoring</span></a> <a href="https://mastodon.social/tags/isola" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>isola</span></a></p>
Karsten Schmidt<p>In other <a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ThingUmbrella</span></a> related news: I've completed the weekend round — 65+ commits — of restructuring &amp; splitting up some larger packages, with the result of there being nine more of them now. 198 in total! Another side effect of this effort is generally fewer dependencies, incl. for some select other core packages (partially by choosing to intern small functions/functionality, in cases where it made sense...)</p><p>The new packages (but existing functionality!) are:</p><p>- <a href="https://thi.ng/bidir-index" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/bidir-index</span><span class="invisible"></span></a> : Bi-directional map/index data structure<br>- <a href="https://thi.ng/disjoint-set" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/disjoint-set</span><span class="invisible"></span></a>: Disjoint Set data structure w/ path compression (useful for union-find tasks)<br>- <a href="https://thi.ng/object-utils" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/object-utils</span><span class="invisible"></span></a> : Plain JS object &amp; map manipulation<br>- <a href="https://thi.ng/pixel-convolve" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/pixel-convolve</span><span class="invisible"></span></a>: Extensible image convolution, preset kernels, normal map generation<br>- <a href="https://thi.ng/pixel-dominant-colors" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/pixel-dominant-colors</span><span class="invisible"></span></a>: k-means based dominant color extraction from images<br>- <a href="https://thi.ng/sorted-map" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/sorted-map</span><span class="invisible"></span></a>: Skiplist-based sorted map &amp; set data structures<br>- <a href="https://thi.ng/sparse-set" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/sparse-set</span><span class="invisible"></span></a> : Sparse set data structure<br>- <a href="https://thi.ng/trie" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/trie</span><span class="invisible"></span></a> : Trie-based map data structure w/ prefix search/query<br>- <a href="https://thi.ng/uuid" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/uuid</span><span class="invisible"></span></a> : Binary &amp; string-based UUID v4 generation</p><p>The packages which have been split up have received major version updates w/ notices on both readmes &amp; changelogs:</p><p>- <a href="https://thi.ng/adjacency" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/adjacency</span><span class="invisible"></span></a><br>- <a href="https://thi.ng/associative" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/associative</span><span class="invisible"></span></a><br>- <a href="https://thi.ng/pixel" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/pixel</span><span class="invisible"></span></a><br>- <a href="https://thi.ng/random" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/random</span><span class="invisible"></span></a></p><p>In case you missed it, please see this issue for more context:</p><p><a href="https://github.com/thi-ng/umbrella/issues/486" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/thi-ng/umbrella/iss</span><span class="invisible">ues/486</span></a></p><p><a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ThingUmbrella</span></a> <a href="https://mastodon.thi.ng/tags/Refactoring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Refactoring</span></a> <a href="https://mastodon.thi.ng/tags/Restructure" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Restructure</span></a> <a href="https://mastodon.thi.ng/tags/Dependencies" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Dependencies</span></a> <a href="https://mastodon.thi.ng/tags/OpenSource" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>OpenSource</span></a> <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>TypeScript</span></a> <a href="https://mastodon.thi.ng/tags/JavaScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>JavaScript</span></a></p>
Mark Gardner<p><span class="h-card" translate="no"><a href="https://mastodon.social/@baboond" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>baboond</span></a></span> <a href="https://social.sdf.org/tags/Refactoring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Refactoring</span></a> is exactly the opposite of “abandoning the legacy project and starting anew.”</p><p>Do you know what usually happens when a company or project *actually* embarks on the latter? Failure and eclipse by the competition.</p><p>This thread started with <span class="h-card" translate="no"><a href="https://mastodon.social/@adanskana" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>adanskana</span></a></span> asking if he should learn <a href="https://social.sdf.org/tags/Perl" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Perl</span></a>: <a href="https://mastodon.social/@adanskana/112658986556408140" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">mastodon.social/@adanskana/112</span><span class="invisible">658986556408140</span></a></p><p>The grand rewrite that was <a href="https://social.sdf.org/tags/Perl6" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Perl6</span></a> (now <a href="https://social.sdf.org/tags/RakuLang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>RakuLang</span></a>) was a decade-plus slow suicide attempt by the Perl community.</p>
Mark Gardner<p><span class="h-card" translate="no"><a href="https://mastodon.social/@baboond" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>baboond</span></a></span> <span class="h-card" translate="no"><a href="https://mastodon.social/@adanskana" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>adanskana</span></a></span> Fun <a href="https://social.sdf.org/tags/programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programming</span></a> fact #2: *Everything* is maintenance and <a href="https://social.sdf.org/tags/refactoring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>refactoring</span></a> once it ships and begins drawing revenue.</p><p>Run away from anyone who deals strictly in greenfield projects. They are ignorant of consequences.</p>
Karsten Schmidt<p>Line must go down! Maintenance weeks are over![1]</p><p>Software maintenance, large scale refactoring, creating/improving documentation, deduplicating code are some the most boring &amp; thankless tasks, but also so essential, especially on projects of the scale of <a href="https://thi.ng/umbrella" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/umbrella</span><span class="invisible"></span></a> (with almost 4100 source files)</p><p>Yesterday was <a href="https://mastodon.thi.ng/tags/ReleaseFriday" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ReleaseFriday</span></a>, most prominently featuring new major version &amp; expansion of <a href="https://thi.ng/geom" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/geom</span><span class="invisible"></span></a> (and its 20+ support packages) — I will write about it more in coming days.</p><p>Part of this major release cycle also included a repo-wide round of various cleanups, incl. updating &amp; reviewing 425 code snippets in doc strings and preparing them for extraction[2], fixing links in docs, enforcing naming conventions for package internals across all 190+ packages, deduplicating and refactoring internals in dozens of projects, updating examples, building tools to generate diagrams for readmes etc.</p><p>These have been some intense few weeks, but I'm super glad it's all done (for now)!</p><p>Happy coding! :)</p><p>[1] The hours of tech debt auto-calculated in this diagram are a bit pointless (completely OTT and containing alot of false positives), but the graph still nicely shows the effort &amp; progress involved... Btw. the chart is from here:</p><p><a href="https://codeclimate.com/github/thi-ng/umbrella" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeclimate.com/github/thi-ng/</span><span class="invisible">umbrella</span></a></p><p>[2] Wherever possible, code examples/snippets in project readme's and docstrings embedded in source code can be extracted into their own source files via <a href="https://thi.ng/tangle" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/tangle</span><span class="invisible"></span></a> and then run directly (e.g. via <a href="https://bun.sh" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">bun.sh</span><span class="invisible"></span></a>). You can find more info in this section of the main readme:</p><p><a href="https://github.com/thi-ng/umbrella/blob/develop/README.md#extracting-code-examples-from-readme-files--comments" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/thi-ng/umbrella/blo</span><span class="invisible">b/develop/README.md#extracting-code-examples-from-readme-files--comments</span></a></p><p><a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ThingUmbrella</span></a> <a href="https://mastodon.thi.ng/tags/OpenSource" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>OpenSource</span></a> <a href="https://mastodon.thi.ng/tags/Maintenance" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Maintenance</span></a> <a href="https://mastodon.thi.ng/tags/Refactoring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Refactoring</span></a> <a href="https://mastodon.thi.ng/tags/TechDebt" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>TechDebt</span></a> <a href="https://mastodon.thi.ng/tags/Documentation" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Documentation</span></a> <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>TypeScript</span></a> <a href="https://mastodon.thi.ng/tags/JavaScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>JavaScript</span></a></p>
Darren J. McLeod<p><a href="https://www.darrenmcleod.com/2024/06/tomethodobject-refactoring.html" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">darrenmcleod.com/2024/06/tomet</span><span class="invisible">hodobject-refactoring.html</span></a> Refactor for Testability. Inspired by <span class="h-card" translate="no"><a href="https://hachyderm.io/@kentbeck" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>kentbeck</span></a></span> I advocate we make the test easy to write and then write the easy test!<br> <a href="https://techhub.social/tags/Refactoring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Refactoring</span></a> <a href="https://techhub.social/tags/TDD" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>TDD</span></a> <a href="https://techhub.social/tags/softwaredevelopment" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>softwaredevelopment</span></a> <a href="https://techhub.social/tags/visualstudio" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>visualstudio</span></a> <a href="https://techhub.social/tags/LegacyCode" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LegacyCode</span></a></p>
Mark Gardner<p><span class="h-card" translate="no"><a href="https://mastodon.acc.umu.se/@mctwist" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>mctwist</span></a></span> My vice is <a href="https://social.sdf.org/tags/refactoring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>refactoring</span></a> other team members’ code when reviewing their merge requests, especially when they’re making a small fix to some grotty <a href="https://social.sdf.org/tags/LegacyCode" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LegacyCode</span></a>. (Spoiler: it’s all grotty legacy code)</p>
Jon Reid<p><a href="https://iosdev.space/tags/Refactoring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Refactoring</span></a> tip:<br>See two hunks of code that look similar?<br>First, make them identical.</p>
Volker Stolz<p><a href="https://mastodon.social/tags/homeassistant" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>homeassistant</span></a> is rejecting pull-requests that touch config options on projects that still use the old configuration.yaml-way, insisting on a <a href="https://mastodon.social/tags/refactoring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>refactoring</span></a> first.</p><p>Ii will be interesting to see how this is going to play out for them long-term. That's probably the only way to muster the required effort for refactoring the codebase, but I wonder how many necessary updates won't get done.</p><p>I'm trying to recall if we ever had something similar in the <a href="https://mastodon.social/tags/FreeBSD" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>FreeBSD</span></a> ports-tree...don't think so. 1/n</p>
Ted M. Young<p>I keep hearing/seeing things like this when justifying not writing a lot of automated tests: "tests often end up needing to be rewritten because the implementation changed."</p><p>And that's just not my experience at all. Though it does depend on how the word "rewritten" is interpreted. Do I have to restructure tests? Sure, if, for example, I wrap a `long` inside of a `PlayerId` class, then I'm going to have to change any test that uses/expects a `long`.</p><p>However, refactoring techniques (at least in Java with IntelliJ IDEA) can make this straightforward, often with no manual code changes.</p><p>Does anyone have concrete examples of where tests had to be _rewritten_ because of _implementation_ changes?</p><p><a href="https://sfba.social/tags/Refactoring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Refactoring</span></a> <a href="https://sfba.social/tags/Tests" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Tests</span></a></p>
Mark Gardner<p>If you are <a href="https://social.sdf.org/tags/refactoring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>refactoring</span></a> without automated tests you are living in sin. <span class="h-card" translate="no"><a href="https://toot.thoughtworks.com/@mfowler" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>mfowler</span></a></span>, the godfather of <a href="https://social.sdf.org/tags/software" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>software</span></a> refactoring, has some great materials on <a href="https://social.sdf.org/tags/testing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>testing</span></a> on his website: <a href="https://martinfowler.com/testing/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">martinfowler.com/testing/</span><span class="invisible"></span></a></p><p><a href="https://social.sdf.org/tags/programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programming</span></a> <a href="https://social.sdf.org/tags/coding" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>coding</span></a> <a href="https://social.sdf.org/tags/SoftwareEngineering" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SoftwareEngineering</span></a></p>