ColdFusion Alive

134 ColdFusion Legacy app – Is a Refactor Better than a Rewrite? with Denny Springle


Listen Later

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”.
https://youtu.be/_assa85CJQc
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
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) 
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
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 
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 
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
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
Denard Springle | LinkedIn
https://github.com/ddspringle 
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
...more
View all episodesView all episodes
Download on the App Store

ColdFusion AliveBy Michaela Light

  • 4.8
  • 4.8
  • 4.8
  • 4.8
  • 4.8

4.8

5 ratings