My mission is to help you maintain best possible codebase quality and boost your productivity!
Perfect codebase does not exist.
The technology develops so fast that the line of code you implement today might become a technical debt you will have to face tomorrow.
I worked on several projects and discovered that there is never enough time or budget for maintaining existing code with good quality. Businesses always push for developing new features without considering the risk of accumulated technical debt.
Replacing an old lib with a new one takes too much time.
Refactoring a utility requires too much manual work spent on adjusting the existing API usage.
There are always some excuses to not address your technical debt.
At some scale, refactoring even seems impossible - there is simply just too much to do.
And you are never sure if you addressed everything.
There are a lot of frustrated developers who would love to improve the codebase and reduce technical debt.
But how do you convince your manager to spend hours or days outside of mainstream work just to reshape some underlying tech?
You walk by these duplicated lines of code every day, but they are probably copy-pasted 20 times and you are not even able to find all of the occurrences.
You feel like refactoring X would just make everyone's life easier. But then you realize that changing the implementation is just 10% of the time needed; the rest is a painful manual adjustment of several files that use X. You give up and just add
TODO: refactor it later.`
As a developer, you need tools to act quickly and accurately in order to perform decent refactoring on a daily basis.
There are tools like JSCodeShift that can help with batch refactoring, but who has time to implement custom codemods?
Metaprogramming is a skill that requires quite a lot of time.
There are plenty of available codemods or ESLint plugins that could potentially help you address some of the problems.
But the reality is that your codebase is unique and has unique problems that no one has solved yet.
I led a project focused on the large-scale refactoring of a custom server-side rendering (SSR) solution built on webpack-isomorphic-tools into Next.js.
We had to manually refactor the entire routing layer of the app from react-route to nex.js routing.
Around 20 developers were actively working on developing the app, while 4 of us were dedicated to the migration.
We had to implement custom ESLint rules to prevent the usage of restricted APIs.
I realized how ridiculous it was to write 100 lines of code just to flag a few simple patterns in the codebase.
I simply felt that we, as developers, could do better. After all, we are getting paid to make people's lives easier. So why not make our own lives easier?
And here is where CodeQue can help.
CodeQue will be a formatting-agnostic search and refactor tool for your codebase.
Yes, a refactoring tool!
Currently, it only offers search functionality, which is still extremely helpful as a standalone feature.
But the ultimate goal is to enable searching and replacing complex code patterns with similar ergonomics as you would with a normal text search and replace feature in your IDE.
It will be a syntax-aware search and replace tool.
This means you can batch refactor more complex elements than just React component prop values.
The goal is ambitious, but I'm excited to take on this challenge.
Search through code faster using formatting agnostic code-like query language
Improve codebase discoverability, hence reduce new developers onboarding time
Refactor code in a batch using advanced replace mechanism
Identify and extract duplicated code with ease
Reduce codemods implementation time to minutes
Define restricted syntax fixable ESlint rules in minutes
Perform a decent refactor in codebase that you don't know much
Pay your tech debt faster
No more excuses for code refactoring!