<?xml version="1.0" encoding="utf-8"?>
<oembed>
  <version>1</version>
  <type>rich</type>
  <provider_name>Libsyn</provider_name>
  <provider_url>https://www.libsyn.com</provider_url>
  <height>90</height>
  <width>600</width>
  <title>134 ColdFusion Legacy app - Is a Refactor Better than a Rewrite? with Denny Springle</title>
  <description>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 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&amp;amp;nbsp; Tech debt Urge to rewrite   What does refactoring mean?  Modernize existing code in place in production app Adding/improving framework&amp;amp;nbsp; Improving datamodel Incremental improvement that is always working Opportunity to get into the depths of the code and business logic&amp;amp;nbsp; Reuse&amp;amp;nbsp; Security Performance Feature flags  New Ben Nadel book on this coming out soon   House in dark analogy&amp;amp;nbsp;   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&amp;amp;nbsp;   May be to a new language, platform, database, OS/Cloud provider Or may be the same language, new version/upgrade.&amp;amp;nbsp; 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&amp;amp;nbsp;  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  &amp;amp;nbsp;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)&amp;amp;nbsp;     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&amp;amp;nbsp;   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&amp;amp;nbsp; Less code for same results as other languages CF Community rocks Modern ecosystem around CF Friendly competitors&amp;amp;nbsp;  ACF and Lucee Other language&amp;amp;nbsp;     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&amp;amp;nbsp; Pete 111 CFCasts episodehttps://teratech.com/podcast/cfcasts-behind-the-scenes-with-eric-peterson/ Into The Box conferencehttps://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.&amp;amp;nbsp; Links  Denard Springle | LinkedIn https://github.com/ddspringle&amp;amp;nbsp;  </description>
  <author_name>ColdFusion Alive</author_name>
  <author_url>https://teratech.com/podcast/</author_url>
  <html>&lt;iframe title="Libsyn Player" style="border: none" src="//html5-player.libsyn.com/embed/episode/id/28890808/height/90/theme/custom/thumbnail/yes/direction/forward/render-playlist/no/custom-color/88AA3C/" height="90" width="600" scrolling="no"  allowfullscreen webkitallowfullscreen mozallowfullscreen oallowfullscreen msallowfullscreen&gt;&lt;/iframe&gt;</html>
  <thumbnail_url>https://assets.libsyn.com/secure/content/164507958</thumbnail_url>
</oembed>
