EPISODE · Dec 5, 2023 · 1H 28M
134 ColdFusion Legacy app – Is a Refactor Better than a Rewrite? with Denny Springle
from ColdFusion Alive
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 ...
NOW PLAYING
134 ColdFusion Legacy app – Is a Refactor Better than a Rewrite? with Denny Springle
No transcript for this episode yet