InfoQ Homepage Refactoring Content on InfoQ
-
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.
-
TypeScript 2.5 Released, Adds Language Level Refactoring
Microsoft has released TypeScript 2.5. The release is light on new language features, but has some new abilities including basic refactoring built into the language service itself.
-
Refactoring and Code Smells – A Journey Toward Cleaner Code
Refactoring helps to move towards cleaner code that is easier to understand and maintain. It takes practice and experience to recognise code smells: symptoms of bad design which indicate deeper problems in the code. Tools can be helpful to refactor in small steps and prevent breaking the code.
-
How and Why Etsy Moved to an API-First Architecture
At QCon New York 2016, Etsy software engineer Stefanie Schirmer told how her company successfully transitioned to an API-first architecture that supports multiple devices, addresses server-side performance problems, and was quickly adopted by development teams.
-
GitHub's Scientist Aims to Help Refactoring Critical Paths
GitHub has just made available Scientist 1.0, a Ruby library that will help developers refactor or rewrite their code with confidence, writes GitHub engineer Jesse Toth, and that was used at GitHub over the last few years for a number of projects. InfoQ has spoken with Toth.
-
Measure and Improve Code Quality
InfoQ interviewed Boris Modylevsky about the importance of measuring code quality and how measurements can be used to improve quality, integrating static code analysis in continuous integration, testing coverage and test automation, and the benefits that continuous integration with integrated code analysis and test coverage can bring.
-
Test First Approaches With Test Driven Development and Behavior Driven Development
InfoQ interviewed Gil Zilberfeld about the benefits that a test first approach can bring, the concepts of Test Driven Development (TDD) and Behavior Driven Development (BDD) and examples of teams using BDD and TDD, and how you can explore BDD and TDD without doing any coding.
-
Microservices at Spotify
Kevin Goldsmith talked about how Spotify uses microservices to break down architectures and be innovative at the GOTO Berlin 2015 conference. He argues that Microservices are easier to test, deploy and monitor than monolithic applications. Spotify also aims to have as few as possible dependencies in their product, and microservices are very helpful for that.
-
Human Refactoring: Applying Refactoring to Your Life
Bryan Beecham gave a keynote about Human Refactoring at the Agile Testing Days 2015. InfoQ interviewed him about how Human Refactoring can help us to improve our lives, how it relates to refactoring code, why he considers eating healthy food to be important, how agile teams can benefit from human refactoring, and where people can find more information about self improvement and individual growth.