134 ColdFusion Legacy app - Is a Refactor Better than a Rewrite? with Denny Springle
Release Date: 12/01/2023
ColdFusion Alive
Luis Majano and Brad Wood talk about “BoxLang modern JVM language that runs CFML code (new CFML engine and much more)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “…BX is the acronym we use a lot like our file extensions are analogous to the cold fusion file extensions. So a CFM file, we call that bxm For box Lang markup, CMS, which Lucy six had his support for, which is cold fusion script”. Show notes What is BoxLang? A new language for the JVM that includes CFML Inspired by cool CF, Groovy, Rust, Go, PHP etc Compiles into Java byte code, just like CF A...
info_outline 139 All About Adobe ColdFusion 2023 (Part 2: PDF, CCS, SSO, perf, security) with Mark TakataColdFusion Alive
Mark Takata talks about “All About Adobe ColdFusion 2023 (Part 2: PDF, CCS, SSO, perf, security)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “…So we decided to build this thing called CCS central configuration server. And it runs at the command line, basically, and allows you to control your servers from a central location.”. Show notes Enhanced HTML-to-PDF Conversion New HTML-to-PDF conversion engine Supports new CSS features for pixel perfect PDFs Imbed audio, video and SVG Old tags features for manipulation of PDFs and forms etc still work Increased...
info_outline 138 All About Adobe ColdFusion 2023 (Part 1: containers, GCP, GraphQL, JWT) with Mark TakataColdFusion Alive
Mark Takata talks about “All About Adobe ColdFusion 2023 (Part 1: containers, GCP, GraphQL, JWT)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “…So we support Google's version of Pub Sub. And it's fairly simple. You know, you've got a you've got someone creating a message. You've got a subscriber that you can create to listen to that message, messages of contact message that I gaze at It just have, you know, timestamps and things like that”. Show notes In this episode, we look at all the Adobe ColdFusion 2023 new features with the Adobe CF evangelist, Mark...
info_outline 137 ColdFusion Oracle Cloud Migration with MySQL (from VPS) with Scott StrozColdFusion Alive
Scott Stroz talks about “ColdFusion Oracle Cloud Migration with MySQL (from VPS)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “…And the difference between Oracle clouds version of the manage the managed MySQL database is that in Oracle Cloud, it's Enterprise Edition. So if you are using MySQL heatwave in Oracle Cloud, you're actually using Enterprise Edition”. Show notes What is Oracle Cloud? Oracle cloud services like AWS, GCP, Azure etc Servers, Storage, MySQL, AI etc OCI = Oracle Cloud Infrastructure How does it differ from AWS, GCP, Azure etc? Robust...
info_outline 136 Into The Box 2024 (all the details and speakers) with Jorge ReyesColdFusion Alive
Jorge Reyes talks about “Into The Box 2024 (all the details and speakers)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “...But it's just those aha moments where, Hey, I didn't know you could do that. So you can actually, when you go back home and do your job, then you can actually worry about looking more into it and implementing it. So that's kind of the idea behind all the sessions, actually.”. Show notes What is Into The Box conference? Is it only for Box products topics? No - lots of CF topics, not just Box products Do not have to use ColdBox framework...
info_outline 135 Lucee Migration (8 CFML code moving tips) with Mike ChytráčekColdFusion Alive
Mike Chytráček talks about “Lucee Migration (8 CFML code moving tips)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “...but we had migrated everything over and all new clients went to Lucy all new applications went to Lucy. And within I'd say maybe two years, we had probably 95% of our clients might get it off, some clients still required it”. Show notes What is Lucee? Why did you migrate to Lucee? 2018 switch from ACF to Lucee Adobe Licensing fishing call and new licensing model per application with $10ks extra cost. “SaaS” due to Mura Per core...
info_outline 134 ColdFusion Legacy app - Is a Refactor Better than a Rewrite? with Denny SpringleColdFusion 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.” Show notes Why is refactoring vs...
info_outline 133 GitHub Copilot & AI-Assisted Coding (Unlocking ColdFusion's AI Potential) with Monte ChanColdFusion Alive
Monte Chan talks about “GitHub Copilot & AI-Assisted Coding (Unlocking ColdFusion's AI Potential)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “It is an AI pair programming tool. So this helps test your programming that basically, there's another person but in this case is a AI tool, if you will, so but you will be doing most of the typing. But then that will also give you some code suggestions, if you will. And to help you with coding. So sometimes can be a short one liner, or could be one whole block of codes. So you can save a lot of typing.” Show notes...
info_outline 132 ColdFusion Hosting options with Dakota Clum and Ryan BrownColdFusion Alive
Dakota Clum and Ryan Brown talk about “ColdFusion Hosting options (what to consider when choosing a CF host)” in this episode of ColdFusion Alive Podcast with host Michaela Light. “……you shouldn't have to be trapped with one hosting option or one provider. So when we think about the AWS are the answers of the world, when there's a need for those specific resources are specific tooling and libraries, we want to be able to support that. So, to your point, there's no kind of lock in, or anything like that you shouldn't do one or the other, you should keep all the options open to you.”...
info_outline 131 Lucee 6 with Gert Franz, Charlie Arehart, Ben Nadel, Mark Drew, Zac SpitzerColdFusion Alive
Gert Franz, Charlie Arehart, Ben Nadel, Mark Drew, and Zac Spitzer talk about “Lucee 6” in this episode of ColdFusion Alive Podcast with host Michaela Light. “Welcome to the podcast. We’re coming here live from CF camp in Munich, Germany. And we are going to be talking about Lucee 6, the new release of Lucee CFML. And we’ve got some amazing experts here. Mark Drew who's done a lot of Lucee coding at distro kid. Then we’ve got Charlie Erehart, the ColdFusion troubleshooting expert giving an independent view on Lucee. Then we’ve got Ben Nadal all the way from New York City. And...
info_outlineDenny 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.”
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
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.