Make software more efficient by refactoring / code reviews; developers who understand J2EE design patterns, TTP, caching, page rendering, web service clients. Find Refactoring / Rewriting Code WFH freelancers on November 30, 2023 who work remotely. Read less
It's similar to improving a car engine to make the car cheaper to run and perform better but without changing how the engine works. Building future upgrades on a website's codebase may depend on how easy and accessible the code is to make changes and that is often why site owner's invest in paying a developer to refactor. There are 3 major ways to refactor a code base, which range from the "Rename" Method/Field/Class/Variable, where the developer substitutes the name and all references to a particular class, replacing inline code with a call to a (new) method containing that code, known as the "Extract" Method, and thirdly the "Move" Method/Field, where we move an element to the new class, and delegate to replace references to these elements in the original class.
Other methods include encapsulating fields, where we make a public field private, then generate getters and setters to replace references to the field with calls to the new private field. The Pull Up Method/Field and Push Down Method/Field, centers on rearranging subclasses to either a single superclass or splitting superclasses to a subclasses, depending on what makes more sense in the code. A lot of the time, refactoring is correcting violations of good OO and SOLID design principles, like the Single Responsibility Principle (SRP). A code class in general should have 1 reason to change or 1 responsibility and should not be partitioned. If that happens, there can be a breakdown in logic that can lead to Spaghetti code: https://blog.cleancoder.com/uncle-bob/2014/05/08/SingleReponsibilityPrinciple.html
Irregardless of the type of codebase, she or he should have experience in using SQL in data engineering, data analysis or data warehousing, and be competent in the programming language like Python, using lean agile and CI/CD DevOps development methods, clean code, SOLID design principles, Test-Driven Development (TDD), pair programming. They should aim to reduce instances of duplications and anomalies using third normal form (3NF) data modeling methods. Because AWS is so widely used, the developer should be comfortable deploying to AWS cloud environments using technologies such as Serverless (Lambda), DynamoDB, API Gateway, Glue, Athena, Redshift or similar to improve on quality and cadence or continuous flow of work.