InfoQ Homepage Refactoring Content on InfoQ
-
QCon SF 2024: Refactoring Large, Stubborn Codebases
Jake Zimmerman, Technical Lead of Sorbet at Stripe, and Getty Ritter, Ruby Infrastructure Engineer at Stripe, presented Refactoring Stubborn, Legacy Codebases at the 2024 QCon San Francisco conference. Zimmerman and Ritter demonstrated how to fix complaints on maintaining a large codebase with leverage and by ratcheting incremental progress.
-
Google Expands Duet AI in Google Cloud for App Development, DevOps, and More
At Google Cloud Next, Google has expanded its always-on collaborator Duet AI with new features aimed at helping developers with application development, DevOps, database management and migration, data analysis and visualization, as well as cybersecurity.
-
Applying Test-Driven Development in the Cloud
In the cloud, application development can be treated end-to-end with its accompanying infrastructure. This makes it possible to use test-driven development (TDD) and refactoring on the full application, which can bring down maintenance costs.
-
Kent Beck: Software Design is an Exercise in Human Relationships
In the closing keynote at QCon SF, Kent Beck spoke about how software design is an exercise in human relationships, why iterative and incremental development is the most cost effective way to build software, and how the overall cost of a software system is directly related to the cost of coupling and decoupling and the jackpot changes which result in cascaded coupling.
-
Error Prone Support Introduces New Bug Checks and Refaster Templates
Picnic, the “supermarket on wheels” company, has released Error Prone Support, an open source project that extends Google's Error Prone, that contains thirty new bug checks to detect, and optionally resolve, possible mistakes during compilation of a Java project. More than fifty new Refaster rule collections are available to improve code uniformity by automatically rewriting the codebase.
-
Building an Effective Platform by Focusing on End-to-End Workflows
Platform engineering teams need to focus on building end-to-end workflows versus individual tools according to Naphat Sanguansin, CTO at Prodvana. A focus on workflows will help to abstract away the complexities of running services and allow for application engineers to focus on their product.
-
Fast-Track Application Refactoring with the Generally Available AWS Migration Hub Refactor Spaces
AWS first introduced the preview of AWS Migration Hub Refactor Spaces, a new capability of AWS Migration Hub, last November at re:Invent 2021. Now, the public cloud provider announced the general availability of the Migration Hub capability.
-
Spotify's Journey to a Unified Codebase for Its Web and Desktop Clients
Spotify recently published an account of their journey towards a unified codebase for their web and desktop clients. Spotify's team was the owner of a web-player and a separate, full-featured desktop client. Due to having to implement many features twice, they were not shipping at the pace they wanted. Now Spotify created one codebase for both, resulting in an improved development cadence.
-
Sentry Migrates Its Frontend to Typescript - Lessons Learned
Mark Story and Priscila Oliveira recently shared lessons learned when converting Sentry’s frontend codebase (one-year effort, 100,000 lines of code) to TypeScript. The pair described a gradual conversion process in which TypeScript progressively replaced JavaScript, types were continuously refined as new TypeScript language features were released, and complex types were built incrementally.
-
Refactoring Large Haskell Codebases Using Facebook Retrie
Facebook has open-sourced the tool they use to refactor their own Sigma anti-abuse rule engine. Named Retrie, this tool allows developers to describe rewrites as equations in Haskell syntax rather than regular expressions.
-
Decomposing a Monolith Does Not Require Microservices - Sam Newman at QCon London
Sam Newman says the goal of decomposing a monolith must be independent deployability, and developers need to focus on the outcome, not the technology. Speaking at QCon London, he said, "The monolith is not the enemy" and, "Microservices should not be the default choice."
-
Refactoring GitHub OctoKit JavaScript REST SDK for Maintainability and Modularization
GitHub engineer Gregor Martynus recently described his journey to refactor GitHub official REST JavaScript SDK, originally containing about 16 thousand lines of code across six files total, into a more maintainable and modular project.
-
An Incremental Architecture Approach to Building Systems
Of most of the applications we have globally, maybe 90% of them are perfectly served by a monolithic approach. To avoid overengineering, we should start with a simple architecture and evolve it as needs arise, Randy Shoup recently declared in a presentation where he described his experience with companies that started small and then grew into large global internet companies.
-
Too Many Scripts Can Kill Your Continuous Delivery
Avantika Mathur spoke at Continuous Lifecycle London last month on the costs associated with an ever increasing number of scripts in a Continuous Delivery pipeline. Besides the cost of maintaining the scripts, the lack of visibility and auditability on exactly what activities are being carried out before deploying a change to production is another major cost not many organizations are aware of.
-
How Technical Practices Support Evolutionary Architecture and Continuous Delivery
Technical practices of XP such as TDD, Refactoring, CI and Pair Programming support emergent design and enable evolving your architecture. The first practice you need for continuous delivery is CI, committing to mainline every day. Being able to write clean, well-factored, and well-tested modular code is the most important skill for developers.