Home
Categories
EXPLORE
True Crime
Comedy
Business
Society & Culture
Health & Fitness
Sports
Technology
About Us
Contact Us
Copyright
© 2024 PodJoint
00:00 / 00:00
Podjoint Logo
US
Sign in

or

Don't have an account?
Sign up
Forgot password
https://is1-ssl.mzstatic.com/image/thumb/Podcasts221/v4/ff/a4/23/ffa42356-9d56-c0c9-d028-fee29a7a5f24/mza_987671573473865670.jpg/600x600bb.jpg
MasonCoding
Juan Villamoros
17 episodes
6 days ago
Audio de mis artículos publicados en medium acerca de la programación desde sus bases.
Show more...
Technology
RSS
All content for MasonCoding is the property of Juan Villamoros and is served directly from their servers with no modification, redirects, or rehosting. The podcast is not affiliated with or endorsed by Podjoint in any way.
Audio de mis artículos publicados en medium acerca de la programación desde sus bases.
Show more...
Technology
Episodes (17/17)
MasonCoding
Mastering Software Design Patterns: An Essential Guide for Developers

In this episode, we dive into the fascinating world of software design patterns, exploring their essential role in creating robust, maintainable, and scalable software. We break down design patterns into three main categories—creational, structural, and behavioral—unpacking how each addresses common challenges in software architecture.

Discover how design patterns improve code quality, promote reusability, and align seamlessly with foundational principles like SOLID. We also explore their versatility across programming paradigms, including object-oriented, functional, and procedural approaches. To bring theory to life, we showcase concrete examples of popular patterns, demonstrating their practical application in real-world scenarios.

Whether you're an experienced developer or just starting your coding journey, this episode will equip you with valuable insights to elevate your software design skills and solve complex problems with confidence.

Show more...
10 months ago
18 minutes 28 seconds

MasonCoding
🎙️The Art of Hiding: The Magic of Information Hiding in Software Design

In this episode, we explore an essential principle that transforms the way we design software: *'Information Hiding'!* 🚀 What if I told you that the key to writing clean, modular, maintainable code lies in *hiding* the secrets of your system? 🔐

We'll talk about how this technique, which consists of hiding the internal details of an object or module and revealing only the essentials through well-defined interfaces, can be the superpower you need to reduce complexity and prevent headaches down the road.

Plus, we'll break down how this philosophy is applied in paradigms like object-oriented and functional programming, and show you epic examples in languages you're sure to already know. 🌟 From how to encapsulate data to preventing small changes from destroying your entire system, this episode is full of insights that will change the way you program.

💡 Get ready to revolutionize your skill stack with tricks that will make you feel like a software architect! 🔥

📖 If you want to read more about this principle, read our article on Medium! Where you'll find examples in multiple languages with their testing code 👉🏽 https://medium.com/@Masoncoding/information-hiding-a-fundamental-software-design-principle-fd5163b1c347

🎧 Available now on your favorite podcast platform - don't miss it!

Show more...
11 months ago
15 minutes 53 seconds

MasonCoding
High Cohesion and Low Coupling: A Foundation for Robust Software Design

Welcome to today’s episode! We're diving deep into two fundamental principles of software design: high cohesion and low coupling. These concepts are foundational for building software that’s not only easier to understand and maintain but also more scalable and resilient over time. So, what exactly do we mean by high cohesion and low coupling? Simply put, high cohesion keeps related tasks and responsibilities together within a module, making code more organized and focused. Low coupling, on the other hand, minimizes dependencies between modules, so changes in one area don’t ripple through the entire system.


In this episode, we’ll break down what high cohesion and low coupling look like in practice, explore how they apply across various programming paradigms, and discuss examples from different languages. Whether you're a seasoned developer or just starting out, understanding these principles can be a game-changer for your code quality and project efficiency. Let’s get started!


Read this article 👉🏽 https://medium.com/@Masoncoding/high-cohesion-and-low-coupling-a-foundation-for-robust-software-design-f12eefc3b53f

Show more...
11 months ago
17 minutes 20 seconds

MasonCoding
Program to an Interface, Not an Implementation: A Fundamental Design Principle

"Program to an Interface, Not an Implementation" stands as one of the most powerful design principles in modern software development. While it may sound abstract at first, this principle is your key to building flexible, maintainable, and truly professional software systems. In this guide, we'll break down this concept into practical terms and show you how to apply it effectively in your projects. Read my article's blog here for more information from this topic👉🏽https://medium.com/@Masoncoding/programming-to-an-interface-not-an-implementation-024d01815070

Show more...
11 months ago
26 minutes 6 seconds

MasonCoding
Understanding the DRY Software Design Principle

The DRY (Don't Repeat Yourself) principle is a fundamental principle in software development that promotes the elimination of redundancy in code to improve maintainability, readability and efficiency. This principle, described by Andy Hunt and Dave Thomas, suggests that every piece of knowledge in a system should have a unique representation. DRY is applied across various programming paradigms, such as object-oriented programming, functional programming and modular programming, each with its own strategies for achieving code reuse. However, applying too much DRY can lead to excessive abstractions and tightly coupled code, making it difficult to understand and maintain. Therefore, it is crucial to find a balance between DRY and code simplicity.


Read my article's blog 👉🏽 https://medium.com/@Masoncoding/understanding-the-dry-software-design-principle-c25166d191b3

Show more...
11 months ago
15 minutes 44 seconds

MasonCoding
Favor Composition Over Inheritance: A Powerful Software Design Principle

In software design, choosing the right principles can significantly influence code efficiency, maintainability, and adaptability. One highly regarded principle in object-oriented programming is the “Favor Composition Over Inheritance” principle. This guideline advocates for constructing software systems using composition — creating classes by combining objects with distinct responsibilities — instead of relying heavily on inheritance, which can lead to rigid and tightly coupled designs. Composition, in contrast, offers flexibility by enabling independent modules to be assembled and reassembled for different functionalities, resulting in more adaptable and testable software. This article examines the benefits, applicability, and implementation of this principle across different programming paradigms, with practical examples to illustrate its transformative impact on software design. Read more about this topic in my blog here 👉🏽https://medium.com/@Masoncoding/favor-composition-over-inheritance-a-powerful-software-design-principle-e72be0d764d7

Show more...
12 months ago
6 minutes 1 second

MasonCoding
Encapsulate What Varies: A Fundamental Software Design Principle

Hello and welcome to today’s episode of the podcast! 🎙️ Today, we’re exploring one of the cornerstones of software design: *Encapsulate What Varies*. This principle is all about creating software that’s built to last—systems that can adapt and evolve without breaking under pressure. Imagine crafting code that stands strong against change, maintaining stability while opening doors to scalability and resilience. Whether you're building a small app or architecting a complex system, learning to isolate changeable components is a game-changer. In this episode, we’ll dive into practical insights on identifying, containing, and mastering these variations to make your code both future-proof and flexible.


Before we dive in, if you're eager to dive deeper into software design principles, make sure to check out my latest blog post for even more insights! Read the full article here: https://medium.com/@Masoncoding/encapsulate-what-varies-a-foundational-principle-in-software-design-f0cca11131f2

Show more...
12 months ago
5 minutes 52 seconds

MasonCoding
Composition over Inheritance

In today’s episode, we’ll explore a foundational principle in software development: composition over inheritance. Imagine building powerful, adaptable systems not through rigid hierarchies but by assembling independent, simple components. This approach brings advantages like flexibility, modularity, and better testability, ultimately reducing dependencies within code.


We’ll explore how this principle shines across various programming paradigms—from object-oriented design to component-based architectures and even functional programming. You’ll hear real-world examples in languages like Java, Python, JavaScript, and Swift that showcase composition's power over traditional inheritance.


Curious about which approach could elevate your projects? Join us as we unpack these insights. And hey, let’s make it a conversation—share your thoughts with us, spread the word on your socials, and tag us. Let's keep the discussion alive on how composition might reshape the way we build software. Read the article on Medium here: 👉🏽https://medium.com/@Masoncoding/c55fefaba465

Show more...
1 year ago
15 minutes 59 seconds

MasonCoding
Principle of Least Astonishment (POLA)

This principle holds that software should behave in a way that surprises users and developers as little as possible. The design should be intuitive and predictable to avoid unexpected behavior.

Show more...
1 year ago
19 minutes 59 seconds

MasonCoding
Law of Demeter (LoD)

Also known as the "Law of Minimum Exposure", an object should have limited knowledge of other objects. This encourages low coupling between classes and improves encapsulation.

Show more...
1 year ago
14 minutes 24 seconds

MasonCoding
Separation of Concerns (SoC)

The episode provides a detailed explanation of the Separation of Concerns (SoC) principle in software development. It explores the importance of organizing code into independent sections with specific responsibilities, improving the clarity, maintainability, and scalability of software. It discusses how the SoC principle is implemented in various programming paradigms, such as object-oriented programming and functional programming, as well as can be applied in popular languages such as Python, JavaScript, Ruby, Haskell, and C#.

Show more...
1 year ago
9 minutes 59 seconds

MasonCoding
YAGNI (You Aren’t Gonna Need It): A Guide to a Leaner Codebase

In the world of software development, maintaining a balance between efficiency, scalability, and simplicity is paramount. Among the many guiding principles that help developers achieve this balance, YAGNI — an acronym for ”You Aren’t Gonna Need It” — stands out as one of the most impactful. This principle, while seemingly simple, carries profound implications for software design, architecture, and project management. In this article, we will explore YAGNI in detail, examine its benefits and challenges, and see how it applies across various programming languages and paradigms. More info: https://medium.com/@Masoncoding/yagni-you-arent-gonna-need-it-a-guide-to-a-leaner-codebase-75e7f70bf263

Show more...
1 year ago
7 minutes 16 seconds

MasonCoding
Understanding the KISS Software Design Principle

The text explains the KISS principle in software development, which stands for “Keep It Simple, Stupid”. This principle promotes the creation of simple, straightforward solutions to avoid unnecessary complexity in code. The text discusses the benefits of KISS, including improved readability, maintainability, reduced bugs and increased productivity. It also explores the application of KISS in different programming paradigms, such as imperative, object-oriented, functional and modular programming. Finally, programming languages that naturally lean towards KISS are mentioned, such as Python, Go, Ruby, JavaScript and C.

Show more...
1 year ago
9 minutes 23 seconds

MasonCoding
The SOLID Principles: Fundamentals for Robust and Maintainable Software

This episode we summarize the article, which explains the five SOLID principles for object-oriented software development, which are Single Responsibility Principle (SRP), Open/Closed Principle (OCP), Liskov Substitution Principle (LSP), Interface Segregation Principle (ISP) and Dependency Inversion Principle (DIP). The article provides a detailed description of each principle, how they relate to object-oriented programming, and practical examples of their implementation in Python, JavaScript, Ruby, Swift and Kotlin. The article also highlights the importance of SOLID for creating flexible, maintainable and scalable code.


Read this article here 👉🏽 https://medium.com/@Masoncoding/los-principios-solid-fundamentos-para-un-software-robusto-y-mantenible-00d33e664b3d

Show more...
1 year ago
14 minutes 41 seconds

MasonCoding
Principio de Diseño de Software: Don't Repeat Yourself (No Te Repitas)

En el desarrollo de software, es esencial escribir un código limpio, fácil de mantener y eficiente. Uno de los principios fundamentales que guían a los desarrolladores para conseguirlo es el principio DRY, que significa «Don't Repeat Yourself» (no te repitas). El principio DRY es una piedra angular en la práctica de la escritura de código eficaz, animando a los desarrolladores a eliminar la redundancia y garantizar que cada pieza de información o lógica se representa de una manera única y sin ambigüedades dentro de la base de código.

Show more...
1 year ago
9 minutes 24 seconds

MasonCoding
Los Principios SOLID: Fundamentos para un Software Robusto y Mantenible

En este episodio, desglosaremos cada uno de los principios de SOLID, explicaremos a qué paradigma de programación se ajustan, discutiremos los lenguajes de programación en los que se aplican, y construiremos un ejemplo práctico que demuestre la implementación de estos principios en conjunto.


Show more...
1 year ago
6 minutes 50 seconds

MasonCoding
Introducción a los Principios de Diseño de Software

El diseño de software es una disciplina fundamental dentro de la ingeniería de software, encargada de establecer los cimientos para que una aplicación sea eficiente, mantenible y escalable a lo largo del tiempo. La correcta implementación de los principios de diseño permite reducir la complejidad, mejorar la calidad del código y facilitar su evolución, reduciendo el riesgo de errores y el costo asociado a cambios futuros.

Show more...
1 year ago
4 minutes 17 seconds

MasonCoding
Audio de mis artículos publicados en medium acerca de la programación desde sus bases.