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.
...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