Is it too late to say that refactoring is a dumb word for a dumb concept driven by a bad computer language?
In recent years every spring seems to turn into a period of _massive_ refactoring & restructuring in #ThingUmbrella — maybe it's a form of spring cleaning, even though the reasons[1] are not seasonal... Currently spending my nights reworking the https://thi.ng/vectors 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!
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...)
Mission jQuery Zero: How FreeAgent Removed jQuery From Our Application, by @freeagentapp.bsky.social:
Mini-rust in Rust 023: Refactor to share structure of the syntax tree
Here are 12 videos you have to check out!
Here's a collection of some of my more popular videos on YouTube:
https://youtu.be/Zf0YWgNbKnQ
In this video, I discuss the Reddit post about Rust replacing all of the C# at Microsoft.
https://youtu.be/5OKLiQM2y30
This video talks about using plugins within a vertical slice architecture. I walk through one of my solutions to show how I have set things up.
https://youtu.be/fTyubohxBGU
This video is on plugin usage in Blazor! As someone that loves using plugins, I had to show the usage in Blazor as well!
https://youtu.be/Wa3sdKGp3wE
This video explains how you can use BenchmarkDotNet like all of the performance examples you see across the web!
https://youtu.be/RR7Cq0iwNYo
For the beginners out there for C#, this video details how IEnumerable works. While it doesn't do a super technical deep dive, it should help explain the behavior vs something like an Array or List.
https://youtu.be/_v9k74gWJtE
A step by step guide on setting up watches for debugging in Visual Studio.
https://youtu.be/yg-qZXPBlKM
If you're interested in getting started with Autofac, this video is a perfect starting point!
https://youtu.be/GE-phyI6lEM
What's faster? Task.WhenAll or Parallel.ForEach? Only one way to find out!
https://youtu.be/iEfuyxwKQCE
A fun look at composition (compared to inheritence). No experience required for this one!
https://youtu.be/rohq-Wqj0yI
Getting setup with xUnit for writing unit tests!
https://youtu.be/Mk8bwXIZTXg
This is a fun video on how to make your own ASCII art generator!
https://youtu.be/xsY9tyRbCVk
How to switch up your code to move away from Enums by refactoring them out!
---- Sign up for my email newsletter!
Share with your network!
Refactoring Challenge: Does your PHP code run multiple SQL queries inside a loop? Optimize it by fetching data in a single query. How would you improve it?
Over-engineering takeaways: Misjudging future requirements can lead to inappropriate abstractions.
Avoiding over-engineering can be as impactful as achieving technical brilliance.
Simplicity is key to maintainability.
Avoid predicting needs that aren't certain.
Create abstractions that align with current and reasonable future requirements.
#Java Live Coding Stream
Join me live as I continue work on the event-sourcing aspect of JitterTed's TDD Game online.
Java, #EventSourcing, #TDD, #Refactoring, mistakes, rants, and more: https://jitterted.stream
#Java Live Coding Stream
In an hour (6pm UTC) I'll be continuing work on the event-sourcing aspect of JitterTed's TDD Game online (https://tdd.cards).
Join me on Twitch for Java, #EventSourcing, #TDD, #Refactoring, mistakes, rants, and more: https://jitterted.stream
I started a probably-needless #software #refactoring on Friday and I have absolutely no idea where I am now.
I remember I wanted to add...something to it and I couldn't because of how it was organized. But I didn't have a clear idea then of how it SHOULD be organized and I have even less of an idea now.
But I'm stuck #wfh for 3 days this week, so maybe I can puzzle it out.
One thing for my job I’m looking forward to about #AI: Refactoring large systems
Doing a refactoring that involves hundreds of classes and multiple changes of infrastructure has been a thing that can take weeks, even months.
However, if you have good test coverage, you can let an LLM can do the drudge work for you and just verify it did what it said it did.
TTD is a must anyway, if you use LLM’s for helping you werite code.
#programming #refactoring #unittests
Today's Live #Java Coding Stream starts in about 15 minutes on https://jitterted.stream
I'll continue working on putting JitterTed's TDD Game online (https://tdd.card). Join me for Java, #SpringBoot, #TDD, #Refactoring, #htmx, and more.
It's Monday, so don't expect much.
Master thesis by Hendy Liang: "Property-Based ASTs: Enabling Language Parametricity in Refactoring Tools"
"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."
https://repository.tudelft.nl/record/uuid:6e143a35-32b8-4f7e-928e-52057ea57566
First preview of Visual Studio 2022 v17.14 by Mads Kristensen.
https://devblogs.microsoft.com/visualstudio/first-preview-of-visual-studio-2022-v17-14/?hide_banner=true
#visualstudio #vs2022 #productivity #dotnet #csharp #copilot #refactoring
First preview of Visual Studio...
First preview of Visual Studio 2022 v17.14 by Mads Kristensen.
#Java Live Coding
Today's stream starts in an hour (19:00 UTC), where I'm creating the Online version of JitterTed's TDD Game (https://tdd.cards), working on the Play Card feature.
Join me at https://jitterted.stream
#Java Live Coding Stream
Today's stream starts later than usual (in an hour), so tune in at 21:00 UTC at https://jitterted.stream for more coding, confusion, #TDDing, mistakes, #Refactoring, #SpringBoot, and #htmx.
I'll also be trying out #Junie, the IntelliJ IDEA AI agent!