<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Eduardo Ferreira</title>
    <description>The latest articles on DEV Community by Eduardo Ferreira (@ferreira_eduardo_95).</description>
    <link>https://dev.to/ferreira_eduardo_95</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2274893%2F4be95cd1-a95c-4356-8bb1-54b92784fd24.jpeg</url>
      <title>DEV Community: Eduardo Ferreira</title>
      <link>https://dev.to/ferreira_eduardo_95</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ferreira_eduardo_95"/>
    <language>en</language>
    <item>
      <title>MVVM vs MVC: Which Is the Better Choice for Your Project?</title>
      <dc:creator>Eduardo Ferreira</dc:creator>
      <pubDate>Sun, 27 Oct 2024 13:08:23 +0000</pubDate>
      <link>https://dev.to/ferreira_eduardo_95/mvvm-vs-mvc-which-is-the-better-choice-for-your-project-42dm</link>
      <guid>https://dev.to/ferreira_eduardo_95/mvvm-vs-mvc-which-is-the-better-choice-for-your-project-42dm</guid>
      <description>&lt;p&gt;Hey guys 👋🏾!&lt;/p&gt;

&lt;p&gt;Are you wondering which architectural design to choose for your project: MVVM or MVC? Let’s explore which approach best fits different project needs. &lt;/p&gt;

&lt;h2&gt;
  
  
  First, It Depends!
&lt;/h2&gt;

&lt;p&gt;The choice depends on several factors: the complexity of your application, the need for a clear separation of concerns, and how scalable you want your project to be. Let’s break down when to use each design:&lt;/p&gt;

&lt;h2&gt;
  
  
  MVC (Model-View-Controller)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Simple Applications&lt;/strong&gt;: Ideal for smaller projects with straightforward UI, MVC can be faster to implement and require less code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Tight Coupling&lt;/strong&gt;: MVC has a direct relationship between View and Controller, making it suitable for apps where tight coupling won’t limit future changes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Testing is Less Crucial&lt;/strong&gt;: Because MVC tightly binds View and Controller, it’s less test-friendly. MVC may be suitable if testing isn’t a high priority.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Legacy Code Support&lt;/strong&gt;: MVC is common in older codebases, especially for iOS. If you’re maintaining a legacy project, MVC might be a natural choice.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  MVVM (Model-View-ViewModel)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Complex Applications&lt;/strong&gt;: MVVM is better for complex applications where separating UI and business logic is essential, like data-heavy or complex UI apps.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Easier Testing&lt;/strong&gt;: In MVVM, the ViewModel separates UI and logic, making it easier to test independently of the UI.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Two-Way Data Binding&lt;/strong&gt;: MVVM works well with frameworks that support data binding (e.g., Android's Data Binding Library), enabling automatic UI updates when data changes—this reduces boilerplate code and keeps the UI responsive.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scalability and Maintainability&lt;/strong&gt;: With clear component separation, MVVM allows for scalable and maintainable code, making UI or logic changes easier.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;For simpler apps, MVC might be the right fit. However, if your app requires high testability, scalability, or data binding, MVVM is likely the better choice.&lt;/p&gt;

&lt;p&gt;That's all folks!&lt;br&gt;
See you guys soon 👋🏾.&lt;/p&gt;

&lt;p&gt;Stay in touch: &lt;a href="https://www.linkedin.com/in/eduardo-lopes-ferreira-001a17181/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>learning</category>
      <category>architecture</category>
      <category>mobile</category>
    </item>
    <item>
      <title>Continuous delivery could save your time and sanity. And I can prove...</title>
      <dc:creator>Eduardo Ferreira</dc:creator>
      <pubDate>Sat, 26 Oct 2024 13:45:23 +0000</pubDate>
      <link>https://dev.to/ferreira_eduardo_95/continuous-delivery-could-save-your-time-and-sanity-and-i-can-prove-3mfg</link>
      <guid>https://dev.to/ferreira_eduardo_95/continuous-delivery-could-save-your-time-and-sanity-and-i-can-prove-3mfg</guid>
      <description>&lt;p&gt;Hey guys 👋🏾! &lt;br&gt;
Welcome to my first article 🎉! I'm aiming to establish a writing routine (Yeah! It’s hard with two wild kids 🤪) so I can share my experiences as a software developer!&lt;/p&gt;

&lt;p&gt;In this article, I’ll cover the benefits of CD and why incorporating it into your workflow is important.&lt;/p&gt;

&lt;p&gt;First of all, we need to understand what continuous delivery represents and what kind of problems they resolve. Let's dive into this article!? &lt;/p&gt;

&lt;h2&gt;
  
  
  CD 💿?! What is this?!?
&lt;/h2&gt;

&lt;p&gt;In short, continuous delivery (CD) is an automated process for delivering software changes that focuses on reducing risks, shortening delivery time, minimizing manual intervention, and enhancing code quality.&lt;br&gt;
These factors make software delivery more reliable.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's the problem with performing the deployment process manually??
&lt;/h2&gt;

&lt;p&gt;One of &lt;strong&gt;the biggest pains in the development routine&lt;/strong&gt; is the &lt;strong&gt;deployment process&lt;/strong&gt;, especially when it's done locally. Man, it's crazy 🤯!&lt;/p&gt;

&lt;p&gt;Manual deployment introduces various security, environmental, and reliability issues, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Secrets and permissions may be exposed to vulnerabilities.&lt;/li&gt;
&lt;li&gt;The classic issue arises here: &lt;strong&gt;It works on my machine&lt;/strong&gt; 😁!&lt;/li&gt;
&lt;li&gt;Manual deployment creates an unnecessary burden, pulling developers away from core tasks, and impacting their health and well-being. (We've all experienced those late Friday nights, fixing deployment issues while your friends are drinking beer and talking about how you suffer on your job executing deployment manually. Yeah, man! It hurts).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion:
&lt;/h2&gt;

&lt;p&gt;For me, the key benefit of implementing continuous delivery is to protect developers' well-being. It ensures developers feel satisfied by the end of the weekend, without the dread of facing unknowns on Monday, like: "Here we go into another unpredictable week!". &lt;br&gt;
Sure! Scalability, risk reduction, security enhancements, and the other issues CD addresses are important too. But maybe your company could lose a valuable team member because you don't have a solid software process.&lt;/p&gt;

&lt;p&gt;So, that’s all for now, folks!&lt;br&gt;
I hope this has been helpful, and together, we can continue improving our workflows.&lt;br&gt;
See you soon 👋🏾👋🏾.&lt;/p&gt;

&lt;p&gt;Stay in contact: &lt;a href="https://www.linkedin.com/in/eduardo-lopes-ferreira-001a17181/" rel="noopener noreferrer"&gt;Eduardo Ferreira - LinkedIn&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>programming</category>
      <category>productivity</category>
      <category>softwaredevelopment</category>
    </item>
  </channel>
</rss>
