Denny Springle talks about “ColdFusion Legacy app – Is a Refactor Better than a Rewrite?” in this episode of ColdFusion Alive Podcast with host Michaela Light.
“Refactoring is a way of taking in modernizing code that already exists, and bring it up to speed with generally modern best development practices. So you know, some object orientation, data modeling type of thing, as well as you know, either using a framework or building an application framework yourself, that hits all of the major obstacles that are that a framework will do for you generally”.
Contents
- Show notes
- Why is refactoring vs rewriting important today?
- What does refactoring mean?
- What does rewriting mean (really)?
- Walk us through your ColdFusion refactor process?
- Why are you proud to use CF?
- WWIT to make CF more alive this year?
- What are you looking forward to at ITB 2024?
- Mentioned in this episode
- Listen to the Audio
- Bio
- Links
- Interview transcript
- Join the CF Alive revolution
Show notes
-
Why is refactoring vs rewriting important today?
- vs 3rd option – leave the legacy app unchanged…
- Risks and rewards for each, best approaches
- Security, hacking risk and biz reputation
- Dev elegy to spaghetti
- Old style code with CF tags (vs CFscript
- Tech debt
- Urge to rewrite
-
What does refactoring mean?
- Modernize existing code in place in production app
- Adding/improving framework
- Improving datamodel
- Incremental improvement that is always working
- Opportunity to get into the depths of the code and business logic
- Reuse
- Security
- Performance
- Feature flags
- New Ben Nadel book on this coming out soon
- House in dark analogy
-
What does rewriting mean (really)?
- Understanding all the business logic and intelligence up front (and documented!)
- What really is the biz problem being solved
- No original devs or business users left
- May be to a new language, platform, database, OS/Cloud provider
- Or may be the same language, new version/upgrade.
- Recreate data model
- Understanding all the business logic and intelligence up front (and documented!)
- What are the risks and disasters of rewriting that you have seen?
- He was the “rewrite kid” in younger days
- Underestimate analysis time for understanding business logic
- Underestimate time for coding and testing
- Risk of project failure
- Users don’t accept the radically changed system or UX
- Now is is the “refactor” man
- He as seen 1 successful rewrite out of 5
- Worse odds than Russian roulette!
- Always 90% done
- After 6 mos “we are 90% done boss”
- After another 6 mos “we are 90% done boss”
- Rewrite tips
- Extensive testing period, including beta testers (actual users)
- Only do when simple biz logic or well documented biz logic or big changes in business (merger or regulation change)
- Allow long shake down period after release
- If possible do slow rollout (how good SaaS work)
- He was the “rewrite kid” in younger days
-
Walk us through your ColdFusion refactor process?
- Agile sprint
- Reusability (and maintainable)
- A data model
- Move to Common code, objects
- Remove Deadwood code, tables, indices, and data
- Move to a MVC framework
- Why – code organization to Model, View and Controller parts of your code
- MVC is a standard in most modern languages
- Separating View code lets Switch out front ends – web vs mobile
- Easier for UX coders to edit the View code without messing up the CFML code logic or SQL queries
- Readability
- FW/1 – lightweight
- ColdBox – more features and ecosystem
- CFWheels
- Legacy non-maintained CF frameworks
- Fusebox
- Model Glue
- Why – code organization to Model, View and Controller parts of your code
- REST API
- REST API is a modern programming pattern
- Many 3rd party REST API
- All modern web programming languages use them
- CF makes consuming or providing REST API incredible easy
- One parameter in your CFC object!
- Encapsulation of data model and business logic
- Different front ends, same API
- Not a microservices fan any more
- Can become clunky and numerous
- Cloud resources and cost go through the roof
- Documentation may be lacking
- Amazon Prime case study of moving away from microservices
- Is Amazon moving away from microservices?
- The migration of the Audio-Video Monitoring Service from Microservices to Monolith was a significant change in Amazon Prime Video's architecture. The new architecture utilizes AWS services such as ECS and Amazon EC2 for scalability and flexibility which helped in improving operational efficiency and reducing costs.
- In the case study, Amazon Prime Video moved away from serverless components, not necessarily microservices. The team found that the serverless components in their architecture, such as AWS Step Functions and Lambda, were causing scaling bottlenecks and increasing costs. By removing these serverless components and simplifying their architecture, Amazon Prime Video was able to achieve significant cost savings.
- Tall servers – lots of RAM and CPU
- REST API is a modern programming pattern
-
Why are you proud to use CF?
- Started as a sys admin at Java shop and CF was easy to learn and be productive
- The business impact of CF RAD coding, features in CFML work better
- Continuous improvement and modern features of CFML
- Less code for same results as other languages
- CF Community rocks
- Modern ecosystem around CF
- Friendly competitors
- ACF and Lucee
- Other language
-
WWIT to make CF more alive this year?
- More CF developers learning modern methods and design patterns such as MVC, REST API
- And teaching and sharing to others
- Use ChatGPT, Google and YouTube for learning
- Ask in CF community for help
- More CF developers learning modern methods and design patterns such as MVC, REST API
-
What are you looking forward to at ITB 2024?
- Very approachable speakers
- Intermate / family gathering event
Mentioned in this episode
- 132 ColdFusion Hosting options with Dakota Clum and Ryan Brown
- Amazon Prime microservices and serverless case study
- Pete 111 CFCasts episode
https://teratech.com/podcast/cfcasts-behind-the-scenes-with-eric-peterson/ - Into The Box conference
https://teratech.com/podcast/into-the-box-coldfusion-conference-2022-new-details-revealed-with-gavin-pickin/
https://teratech.com/into-the-box-conference-is-coldfusion-modern-or-dead/ - CFCasts
Listen to the Audio
Podcast: Play in new window | Download | Embed
Subscribe: RSS
Bio
Denard Springle
Software Systems Engineer, Mentor, Trainer, Learner
Denard Springle is a polyglot developer that has been engineering software for just over three decades with a focus on ColdFusion and Java development for the past two. As a lifelong learner who has been mentored by some of the best developers in the business, Denard regularly shares his knowledge and experience with others at conferences, user groups and online venues with a strong focus on application engineering using modern best practices.
Links
Interview transcript
Michaela Light 0:01
Welcome back to the show. I'm here with Danny. And springle is his last name, you may have heard of him, he used to be a very regular speaker. And he's just back on the conference circuit for ColdFusion. We're going to be talking about refactoring versus rewriting, which is incredibly important, because I have seen a lot of coffee developers and CIOs shoot themselves in the foot in this and will reveal which of the two options is more dangerous. I guess there's a third unwritten option, which is do absolutely nothing with your legacy app, which is another dangerous option.
Michaela Light 0:35
So welcome, Danny, those who don't know him.
Michaela Light 1:18
Welcome, Danny.
Michaela Light 1:24
You know, for a lot of people listening have some legacy ColdFusion app. And they may be thinking of rewriting it, or refactoring, or maybe they're not thinking about it at all, and they're just gonna leave it alone. Right. So there are three typical options there. Why is this such an important topic? You know, this year?
Denny Springle 1:48
I think that, for me, personally, I think that the, the decision to refactor or rewrite these be considered carefully, and need to know what all the risks and rewards are for each method. And understanding the different ways of approaching those. I think that that is an important distinction to make between the two approaches to getting what you want out of your application.
Michaela Light 2:28
That no, that makes sense. I mean, people may have, you know, they may think they're supposed to do it a certain way, but they haven't thought through what are the possible risks and rewards? Then what about the unspoken stepchild of you just leave your legacy app in the corner and don't be the new improved? The right that
Denny Springle 2:47
That will ultimately lead to it being hacked nine times out of 10? Yes, unfortunate. Unfortunately, if you if you leave an app alone for too long, it will, it will develop flaws that nobody knew were there until years later. So if you don't, if you don't maintain those things, and you run that risk, surrender, yes, you run the risk of not delivering the tools that you need to whoever your end users are, whether that's internal clients, or external clients were what have you, you know, you run the risk of even losing customers by not continuing to improve your application. So there's definitely a lot of risks of leaving it alone as well.
Read more
Michaela Light is the host of the CF Alive Podcast and has interviewed more than 100 ColdFusion experts. In each interview, she asks "What Would It Take to make CF more alive this year?" The answers still inspire her to continue to write and interview new speakers.
Michaela has been programming in ColdFusion for more than 20 years. She founded TeraTech in 1989. The company specializes in ColdFusion application development, security and optimization. She has also founded the CFUnited Conference and runs the annual State of the CF Union Survey.
Join the CF Alive revolution
Discover how we can all make CF more alive, modern and secure this year. Join other ColdFusion developers and managers in the CF Alive Inner Circle today.- Get early access to the CF Alive book and videos
- Be part of a new movement for improving CF's perception in the world.
- Contribute to the CF Alive revolution
- Connect with other CF developers and managers
- There is no cost to membership.