# solid

Published articles for solid.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## How to Apply SOLID Principles in Programming

DevFeed: [How to Apply SOLID Principles in Programming](<https://devfeed.tech/articles/how-to-be-a-solid-programmer-28570.md>)

Original publisher: [Read original article](<https://thehustlingengineer.substack.com/p/how-to-be-a-solid-programmer-d9c>)

Author: Hemant Pandey

Published: 2026-06-18T14:27:58Z

Content type: tutorial

Language: en

Sources: [The Hustling Engineer](<https://devfeed.tech/sources/the-hustling-engineer.md>)

Topics: [solid principles](<https://devfeed.tech/topics/solid-principles.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [deep](<https://devfeed.tech/tags/deep.md>), [deep-dive](<https://devfeed.tech/tags/deep-dive.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [programming](<https://devfeed.tech/tags/programming.md>), [solid](<https://devfeed.tech/tags/solid.md>), [solid-principles](<https://devfeed.tech/tags/solid-principles.md>)

### AI overview

A deep dive into SOLID principles and their application in programming.

### Source excerpt

Deep Dive into SOLID principles in Programming

## Generics vs. Interfaces

DevFeed: [Generics vs. Interfaces](<https://devfeed.tech/articles/generics-vs-interfaces-22185.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2022/12/generic-vs-interfaces.html>)

Published: 2022-12-16T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Binance](<https://devfeed.tech/topics/binance.md>), [backends](<https://devfeed.tech/topics/backends.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [adapter-pattern](<https://devfeed.tech/tags/adapter-pattern.md>), [api](<https://devfeed.tech/tags/api.md>), [api-server](<https://devfeed.tech/tags/api-server.md>), [business-logic](<https://devfeed.tech/tags/business-logic.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [decoupling](<https://devfeed.tech/tags/decoupling.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [function](<https://devfeed.tech/tags/function.md>), [generics](<https://devfeed.tech/tags/generics.md>), [go](<https://devfeed.tech/tags/go.md>), [go-api-server](<https://devfeed.tech/tags/go-api-server.md>), [gorm](<https://devfeed.tech/tags/gorm.md>), [http](<https://devfeed.tech/tags/http.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [reusable-code](<https://devfeed.tech/tags/reusable-code.md>), [solid](<https://devfeed.tech/tags/solid.md>), [solid-principles](<https://devfeed.tech/tags/solid-principles.md>), [transactions](<https://devfeed.tech/tags/transactions.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

A video explains how generic functions and adapter functions can reduce code duplication and decouple business logic from API server handlers in Go. It demonstrates HTTP handlers, GORM database transactions, performance evaluation with PPROF, and generic data encoding and decoding.

### Source excerpt

Introduction In this video, Paulo shows the benefit of leveraging generic functions to write less code that does more. He starts by walking you through an API server he initially wrote that makes use of Go's default HTTP handlers with a sprinkle of GORM to manage database transactions. He then refactors that code by introducing the concept of adapter functions. Paulo's approach consists of decoupling his business logic with his API code. To achieve this, he defines an adapter function that will establish a bridge between his business logic and API server handlers. This proves to be an effective way to abstract request processing and handling. This approach also promotes code reusability because the business logic is loosely coupled with the API service invoking it.

## An Effective Twig Base Templating Setup

DevFeed: [An Effective Twig Base Templating Setup](<https://devfeed.tech/articles/an-effective-twig-base-templating-setup-31241.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/an-effective-twig-base-templating-setup>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2019-11-21T01:29:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Content Management System](<https://devfeed.tech/topics/cms.md>), [Template](<https://devfeed.tech/topics/template.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [Development](<https://devfeed.tech/topics/development.md>), [Front end](<https://devfeed.tech/topics/frontend.md>)

Tags: [base](<https://devfeed.tech/tags/base.md>), [build](<https://devfeed.tech/tags/build.md>), [cms](<https://devfeed.tech/tags/cms.md>), [craft](<https://devfeed.tech/tags/craft.md>), [foundation](<https://devfeed.tech/tags/foundation.md>), [good](<https://devfeed.tech/tags/good.md>), [insights](<https://devfeed.tech/tags/insights.md>), [projects](<https://devfeed.tech/tags/projects.md>), [provides](<https://devfeed.tech/tags/provides.md>), [setup](<https://devfeed.tech/tags/setup.md>), [solid](<https://devfeed.tech/tags/solid.md>), [stable](<https://devfeed.tech/tags/stable.md>), [templates](<https://devfeed.tech/tags/templates.md>), [templating](<https://devfeed.tech/tags/templating.md>), [twig](<https://devfeed.tech/tags/twig.md>)

### AI overview

This tutorial presents a reusable Twig base templating setup for Craft CMS websites. It explains the role of Twig as a presentation layer and outlines desired capabilities, including reuse across projects, support for web pages and AJAX/XHR modals, core features with flexibility, and Google AMP pages when appropriate.

### Source excerpt

A good base templating setup for your Craft CMS Twig templates provides a stable, solid foundation on which to build your projects

## Mitigating Disaster via Website Backups

DevFeed: [Mitigating Disaster via Website Backups](<https://devfeed.tech/articles/mitigating-disaster-via-website-backups-31282.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/mitigating-disaster-via-website-backups>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2017-03-20T04:49:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [backups](<https://devfeed.tech/topics/backups.md>), [Website](<https://devfeed.tech/topics/website.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [Development](<https://devfeed.tech/topics/development.md>), [Git](<https://devfeed.tech/topics/git.md>), [Database](<https://devfeed.tech/topics/database.md>), [Disk image](<https://devfeed.tech/topics/disk-image.md>), [hosting](<https://devfeed.tech/topics/hosting.md>)

Tags: [backup](<https://devfeed.tech/tags/backup.md>), [backups](<https://devfeed.tech/tags/backups.md>), [bitbucket](<https://devfeed.tech/tags/bitbucket.md>), [clients](<https://devfeed.tech/tags/clients.md>), [database](<https://devfeed.tech/tags/database.md>), [deploy](<https://devfeed.tech/tags/deploy.md>), [development](<https://devfeed.tech/tags/development.md>), [disaster](<https://devfeed.tech/tags/disaster.md>), [git](<https://devfeed.tech/tags/git.md>), [github](<https://devfeed.tech/tags/github.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [hero](<https://devfeed.tech/tags/hero.md>), [insights](<https://devfeed.tech/tags/insights.md>), [insurance](<https://devfeed.tech/tags/insurance.md>), [make](<https://devfeed.tech/tags/make.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [policy](<https://devfeed.tech/tags/policy.md>), [repo](<https://devfeed.tech/tags/repo.md>), [server](<https://devfeed.tech/tags/server.md>), [snapshot](<https://devfeed.tech/tags/snapshot.md>), [solid](<https://devfeed.tech/tags/solid.md>), [strategy](<https://devfeed.tech/tags/strategy.md>), [strikes](<https://devfeed.tech/tags/strikes.md>), [website](<https://devfeed.tech/tags/website.md>)

### AI overview

This tutorial explains how to protect websites with a practical backup strategy. It distinguishes server snapshots from backups for individual files and dynamically changing data, and recommends separating developer-created website assets from client-created content. The former can be versioned in a Git repository, while client data and uploaded assets require separate backup handling.

### Source excerpt

A solid backup strategy is an insurance policy for your clients, and can make you the hero if disaster strikes

## Interface Segregation Principle

DevFeed: [Interface Segregation Principle](<https://devfeed.tech/articles/interface-segregation-principle-40702.md>)

Original publisher: [Read original article](<https://radek.io/posts/interface-segregation-principle-in-software-design/>)

Published: 2011-08-12T00:00:00Z

Content type: tutorial

Language: en

Sources: [Radek Pazdera](<https://devfeed.tech/sources/radek-pazdera.md>)

Topics: [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [interfaces](<https://devfeed.tech/topics/interfaces.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Inheritance](<https://devfeed.tech/topics/inheritance.md>), [abstraction](<https://devfeed.tech/topics/abstraction.md>), [reuse](<https://devfeed.tech/topics/reuse.md>)

Tags: [abstraction](<https://devfeed.tech/tags/abstraction.md>), [code](<https://devfeed.tech/tags/code.md>), [inheritance](<https://devfeed.tech/tags/inheritance.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [reuse](<https://devfeed.tech/tags/reuse.md>), [software-design](<https://devfeed.tech/tags/software-design.md>), [solid](<https://devfeed.tech/tags/solid.md>)

### AI overview

This tutorial explains the Interface Segregation Principle, the final principle in the SOLID object-oriented design set. It describes how oversized interfaces create unused or dummy methods and recommends splitting them into smaller, purpose-specific interfaces, illustrated with a car example involving automatic transmission and air conditioning.

### Source excerpt

I build software products and write on the Internet.

## Dependency Inversion Principle

DevFeed: [Dependency Inversion Principle](<https://devfeed.tech/articles/dependency-inversion-principle-40667.md>)

Original publisher: [Read original article](<https://radek.io/posts/dependency-inversion-principle/>)

Published: 2011-08-10T00:00:00Z

Content type: article

Language: en

Sources: [Radek Pazdera](<https://devfeed.tech/sources/radek-pazdera.md>)

Topics: [Dependency Inversion](<https://devfeed.tech/topics/dependency-inversion.md>), [abstraction](<https://devfeed.tech/topics/abstraction.md>), [interface](<https://devfeed.tech/topics/interface.md>), [object](<https://devfeed.tech/topics/object.md>), [modules](<https://devfeed.tech/topics/modules.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [abstraction](<https://devfeed.tech/tags/abstraction.md>), [dependency-inversion](<https://devfeed.tech/tags/dependency-inversion.md>), [dependency-inversion-principle](<https://devfeed.tech/tags/dependency-inversion-principle.md>), [interface](<https://devfeed.tech/tags/interface.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [object-oriented](<https://devfeed.tech/tags/object-oriented.md>), [software](<https://devfeed.tech/tags/software.md>), [solid](<https://devfeed.tech/tags/solid.md>)

### AI overview

The article explains the Dependency Inversion Principle, the D in SOLID, for object-oriented software design. It argues that high-level and low-level modules should depend on abstractions, while details should depend on those abstractions, improving module reuse and reducing direct coupling.

### Source excerpt

SOLID Object-Oriented Design

## Liskov Substitution Principle

DevFeed: [Liskov Substitution Principle](<https://devfeed.tech/articles/liskov-substitution-principle-40710.md>)

Original publisher: [Read original article](<https://radek.io/posts/liskov-substitution-principle/>)

Published: 2011-08-09T00:00:00Z

Content type: tutorial

Language: en

Sources: [Radek Pazdera](<https://devfeed.tech/sources/radek-pazdera.md>)

Topics: [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [coding](<https://devfeed.tech/topics/coding.md>), [subclass](<https://devfeed.tech/topics/subclass.md>), [subtype](<https://devfeed.tech/topics/subtype.md>)

Tags: [hierarchy](<https://devfeed.tech/tags/hierarchy.md>), [object-oriented](<https://devfeed.tech/tags/object-oriented.md>), [software-design](<https://devfeed.tech/tags/software-design.md>), [solid](<https://devfeed.tech/tags/solid.md>), [subclass](<https://devfeed.tech/tags/subclass.md>), [subtype](<https://devfeed.tech/tags/subtype.md>)

### AI overview

This article explains the Liskov Substitution Principle, the L in SOLID object-oriented design. It presents definitions from Barbara Liskov and Jeannette Wing, a formulation by Robert C. Martin, and a Square-Rectangle hierarchy example showing how subtype behavior can violate substitutability.

### Source excerpt

SOLID Object-Oriented Design

## Single Responsibility Principle

DevFeed: [Single Responsibility Principle](<https://devfeed.tech/articles/single-responsibility-principle-40739.md>)

Original publisher: [Read original article](<https://radek.io/posts/single-responsibility-principle/>)

Published: 2011-08-08T00:00:00Z

Content type: tutorial

Language: en

Sources: [Radek Pazdera](<https://devfeed.tech/sources/radek-pazdera.md>)

Topics: [object](<https://devfeed.tech/topics/object.md>), [class](<https://devfeed.tech/topics/class.md>), [Code](<https://devfeed.tech/topics/code.md>), [Software](<https://devfeed.tech/topics/software.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>)

Tags: [class](<https://devfeed.tech/tags/class.md>), [code](<https://devfeed.tech/tags/code.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [design](<https://devfeed.tech/tags/design.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [object-oriented](<https://devfeed.tech/tags/object-oriented.md>), [solid](<https://devfeed.tech/tags/solid.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

The article explains the Single Responsibility Principle (SRP), a SOLID guideline for object-oriented design. It defines a responsibility as a reason for a class to change and uses a MySQL connection and query-handling example to show why separate responsibilities should be split.

### Source excerpt

SOLID Object-Oriented Design

## SOLID Object-Oriented Design

DevFeed: [SOLID Object-Oriented Design](<https://devfeed.tech/articles/solid-object-oriented-design-40741.md>)

Original publisher: [Read original article](<https://radek.io/posts/solid-object-oriented-design/>)

Published: 2011-08-05T00:00:00Z

Content type: tutorial

Language: en

Sources: [Radek Pazdera](<https://devfeed.tech/sources/radek-pazdera.md>)

Topics: [object](<https://devfeed.tech/topics/object.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Software](<https://devfeed.tech/topics/software.md>), [interface](<https://devfeed.tech/topics/interface.md>), [Dependency Inversion](<https://devfeed.tech/topics/dependency-inversion.md>)

Tags: [dependency-inversion-principle](<https://devfeed.tech/tags/dependency-inversion-principle.md>), [interface](<https://devfeed.tech/tags/interface.md>), [object-oriented](<https://devfeed.tech/tags/object-oriented.md>), [solid](<https://devfeed.tech/tags/solid.md>)

### AI overview

The article introduces SOLID, an acronym for five principles of object-oriented programming and design: single responsibility, open/closed, Liskov substitution, interface segregation, and dependency inversion. It presents them as guidelines intended to support systems that are easier to maintain and extend over time.

### Source excerpt

I build software products and write on the Internet.