<?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: campbelltech</title>
    <description>The latest articles on DEV Community by campbelltech (@seancampbelltech).</description>
    <link>https://dev.to/seancampbelltech</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1110104%2F976af18e-c892-428d-8ea1-3226ce536f6e.png</url>
      <title>DEV Community: campbelltech</title>
      <link>https://dev.to/seancampbelltech</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/seancampbelltech"/>
    <language>en</language>
    <item>
      <title>A beginner-friendly design patterns masterclass</title>
      <dc:creator>campbelltech</dc:creator>
      <pubDate>Fri, 11 Aug 2023 17:10:58 +0000</pubDate>
      <link>https://dev.to/seancampbelltech/a-beginner-friendly-design-patterns-masterclass-nb3</link>
      <guid>https://dev.to/seancampbelltech/a-beginner-friendly-design-patterns-masterclass-nb3</guid>
      <description>&lt;p&gt;Are you ready to supercharge your Java programming skills? Join me on this enlightening journey where we unravel the world of creational design patterns and discover how to create powerful, efficient software architectures.&lt;/p&gt;

&lt;p&gt;🔍 Course Highlights:&lt;/p&gt;

&lt;p&gt;🧩 Master all creational design patterns: Factory Method, Abstract Factory, Builder, Singleton, and Prototype.&lt;/p&gt;

&lt;p&gt;💡 Practical solutions for real-world software engineering challenges.&lt;/p&gt;

&lt;p&gt;🌟 Acquire problem-solving skills that'll turbocharge your software development career.&lt;/p&gt;

&lt;p&gt;🖋️ Write cleaner, scalable Java code with confidence.&lt;/p&gt;

&lt;p&gt;Enroll now: &lt;a href="https://www.udemy.com/course/creational-design-patterns-in-java-demystified/?couponCode=LI_CREATE_JAVA_0823"&gt;https://www.udemy.com/course/creational-design-patterns-in-java-demystified/?couponCode=LI_CREATE_JAVA_0823&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Don't miss out on this opportunity to enhance your Java programming prowess and become a pro in building robust software architectures.&lt;/p&gt;

&lt;p&gt;Let's level up our Java game together! 🚀 Enroll today and let's delve into the world of creational design patterns.&lt;/p&gt;

</description>
      <category>java</category>
      <category>designpatterns</category>
    </item>
    <item>
      <title>The Easiest Singleton Pattern Tutorial Ever</title>
      <dc:creator>campbelltech</dc:creator>
      <pubDate>Fri, 14 Jul 2023 06:52:55 +0000</pubDate>
      <link>https://dev.to/seancampbelltech/the-easiest-singleton-pattern-tutorial-ever-1k0m</link>
      <guid>https://dev.to/seancampbelltech/the-easiest-singleton-pattern-tutorial-ever-1k0m</guid>
      <description>&lt;p&gt;Watch the easiest Singleton Pattern Tutorial ever:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/uRrqc5viVB8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>java</category>
    </item>
    <item>
      <title>Did the Amazon Prime Team Get it Wrong? 🤔</title>
      <dc:creator>campbelltech</dc:creator>
      <pubDate>Thu, 29 Jun 2023 18:08:41 +0000</pubDate>
      <link>https://dev.to/seancampbelltech/did-the-amazon-prime-team-get-it-wrong-2lg9</link>
      <guid>https://dev.to/seancampbelltech/did-the-amazon-prime-team-get-it-wrong-2lg9</guid>
      <description>&lt;p&gt;Microservices fail when the engineers involved only focus on the how, and disregard the "what" and "why" parts. If there were tightly coupled microservices in the Amazon Prime Video architecture, no wonder it failed to be an adequate solution.&lt;/p&gt;

&lt;p&gt;Microservices should be loosely coupled. Each microservice should be unaware, as far as possible, of the existence of other microservices. Each microservice should "think" it's the only service in the world.&lt;/p&gt;

&lt;p&gt;They should have followed these principles instead:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/E_XOIHeHkB4"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>microservices</category>
      <category>softwareengineering</category>
      <category>distributedsystems</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>The Easiest Factory Pattern Explanation</title>
      <dc:creator>campbelltech</dc:creator>
      <pubDate>Thu, 29 Jun 2023 17:54:20 +0000</pubDate>
      <link>https://dev.to/seancampbelltech/the-easiest-factory-pattern-explanation-459e</link>
      <guid>https://dev.to/seancampbelltech/the-easiest-factory-pattern-explanation-459e</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/iTfa97vXCAo"&gt;
&lt;/iframe&gt;
 &lt;/p&gt;

&lt;p&gt;In software engineering, the Factory pattern is a creational pattern that creates objects without exposing the creation logic to the client and refers to newly created objects using a common interface. In other words, it encapsulates object creation and decouples it from the client code that uses the objects. This can improve code maintainability, flexibility, and reusability.&lt;/p&gt;

&lt;p&gt;For example, imagine you have a program that needs to create different types of objects, such as shapes or vehicles. You could write a bunch of conditional statements or switch statements in your client code to determine which concrete class to instantiate. However, this approach can quickly become messy and hard to extend. Instead, you could use a factory method or a factory class that takes care of the object creation based on some input parameter or logic.&lt;/p&gt;

&lt;p&gt;Some benefits of using the Factory pattern include:&lt;br&gt;
👉 Encapsulating object creation and reducing coupling&lt;br&gt;
👉 Providing a central point of control and configuration for object creation&lt;br&gt;
👉 Promoting the open-closed principle by allowing new subclasses to be added without modifying existing code&lt;br&gt;
👉 Enabling testing and mocking of the client code without actually instantiating real objects&lt;/p&gt;

&lt;p&gt;So, if you want to improve the flexibility and maintainability of your software, consider using the Factory Design Pattern. It's a powerful tool in your design patterns toolbox. 🧰&lt;/p&gt;

</description>
      <category>java</category>
      <category>designpatterns</category>
      <category>coding</category>
      <category>programming</category>
    </item>
    <item>
      <title>Microservices: Do It Right With These Principles</title>
      <dc:creator>campbelltech</dc:creator>
      <pubDate>Thu, 29 Jun 2023 05:34:08 +0000</pubDate>
      <link>https://dev.to/seancampbelltech/microservices-do-it-right-with-these-principles-3k7c</link>
      <guid>https://dev.to/seancampbelltech/microservices-do-it-right-with-these-principles-3k7c</guid>
      <description>&lt;p&gt;To ensure that microservices can FAIL INDEPENDENTLY, we need to follow these principles:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/E_XOIHeHkB4"&gt;
&lt;/iframe&gt;
 &lt;/p&gt;

&lt;p&gt;👉 Each microservice should only facilitate a single business domain or function.&lt;/p&gt;

&lt;p&gt;👉 Microservices should not share code or data.&lt;/p&gt;

&lt;p&gt;👉 If you have to, rather violate the DRY principle than compromise on independence. &lt;/p&gt;

&lt;p&gt;👉 Microservices should not communicate directly with each other over HTTP. Instead, they should make use of a message/event bus (message queue or broker, e. g. Apache Kafka) &lt;/p&gt;

&lt;p&gt;👉 Each microservice should, as far as possible, be unaware of the existence of other microservices. &lt;/p&gt;

</description>
      <category>microservices</category>
    </item>
    <item>
      <title>Injectable Factory Method with Spring Boot</title>
      <dc:creator>campbelltech</dc:creator>
      <pubDate>Wed, 28 Jun 2023 19:50:51 +0000</pubDate>
      <link>https://dev.to/seancampbelltech/injectable-factory-method-with-spring-boot-2cfp</link>
      <guid>https://dev.to/seancampbelltech/injectable-factory-method-with-spring-boot-2cfp</guid>
      <description>&lt;p&gt;The Factory Design Pattern meets Dependency Injection 🏭+💉&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/WNzjz0v0t7o"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;In software engineering, the Factory pattern is a creational pattern that creates objects without exposing the creation logic to the client and refers to newly created objects using a common interface. In other words, it encapsulates object creation and decouples it from the client code that uses the objects. This can improve code maintainability, flexibility, and reusability.&lt;/p&gt;

&lt;p&gt;For example, imagine you have a program that needs to create different types of objects, such as shapes or vehicles. You could write a bunch of conditional statements or switch statements in your client code to determine which concrete class to instantiate. However, this approach can quickly become messy and hard to extend. Instead, you could use a factory method or a factory class that takes care of the object creation based on some input parameter or logic.&lt;/p&gt;

&lt;p&gt;Some benefits of using the Factory pattern include:&lt;br&gt;
👉 Encapsulating object creation and reducing coupling&lt;br&gt;
👉 Providing a central point of control and configuration for object creation&lt;br&gt;
👉 Promoting the open-closed principle by allowing new subclasses to be added without modifying existing code&lt;br&gt;
👉 Enabling testing and mocking of the client code without actually instantiating real objects&lt;/p&gt;

&lt;p&gt;Dependency injection takes the factory method to the next level. Dependency injection is a programming technique that makes a class independent of its dependencies. It achieves that by decoupling the usage of an object from its creation. This helps you to follow SOLID’s dependency inversion and single responsibility principles.&lt;/p&gt;

</description>
      <category>java</category>
      <category>spring</category>
      <category>designpatterns</category>
      <category>springboot</category>
    </item>
    <item>
      <title>Injectable Factory Method in .NET</title>
      <dc:creator>campbelltech</dc:creator>
      <pubDate>Wed, 28 Jun 2023 19:42:28 +0000</pubDate>
      <link>https://dev.to/seancampbelltech/injectable-factory-method-in-net-59ao</link>
      <guid>https://dev.to/seancampbelltech/injectable-factory-method-in-net-59ao</guid>
      <description>&lt;p&gt;🚀 Do you know how to make a factory method injectable in .NET? 🏭&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/uFitprS7k1g"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Discover the powerful combination of dependency injection and the factory pattern in .NET! By leveraging these two concepts, you can achieve even greater flexibility and loose coupling between components.&lt;/p&gt;

&lt;p&gt;🏭 The factory pattern allows you to create objects without exposing the creation logic to the client code, and refer to newly created objects using a common interface. The factory pattern is a key enabler in creating applications that comply with the open-closed principle.&lt;/p&gt;

&lt;p&gt;🔗 Dependency Injection promotes loose coupling by injecting dependencies into classes, rather than having them directly create or manage their dependencies. This enables easier testing, flexibility, and maintainability of your codebase.&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>csharp</category>
      <category>designpatterns</category>
    </item>
  </channel>
</rss>
