# object

In object-oriented programming, an object stores state in fields and exposes behavior through methods.

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

## Marc Andreessen Egg Game

DevFeed: [Marc Andreessen Egg Game](<https://devfeed.tech/articles/marc-andreessen-egg-game-40769.md>)

Original publisher: [Read original article](<https://eieio.games/blog/marc-andreessen-egg-game>)

Author: Nolen Royalty (eieiogames@gmail.com)

Published: 2026-05-07T00:00:00Z

Content type: article

Language: en

Sources: [eieio.games](<https://devfeed.tech/sources/eieio-games.md>)

Topics: [Image](<https://devfeed.tech/topics/image.md>), [object](<https://devfeed.tech/topics/object.md>)

Tags: [game](<https://devfeed.tech/tags/game.md>), [images](<https://devfeed.tech/tags/images.md>), [lighting](<https://devfeed.tech/tags/lighting.md>)

### AI overview

A playful developer article about Marc Andreessen Egg Game, a game for drawing eggs that resemble Marc Andreessen. It describes the game's manifesto and explains technical challenges including egg lighting with a normal map and scoring its speedrun mode.

### Source excerpt

Marc Andreessen Egg Game helps you make eggs that look like Marc Andreessen.

## Designing a hierarchical Authorisation system

DevFeed: [Designing a hierarchical Authorisation system](<https://devfeed.tech/articles/designing-a-hierarchical-authorisation-system-39640.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2025-09-20_designing-a-hiearchical-authorisation-system>)

Author: Authorisation

Published: 2025-09-20T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [Actor](<https://devfeed.tech/topics/actor.md>), [object](<https://devfeed.tech/topics/object.md>), [structure](<https://devfeed.tech/topics/structure.md>), [service](<https://devfeed.tech/topics/service.md>), [properties](<https://devfeed.tech/topics/properties.md>)

Tags: [actor](<https://devfeed.tech/tags/actor.md>), [apis](<https://devfeed.tech/tags/apis.md>), [billing](<https://devfeed.tech/tags/billing.md>), [finance](<https://devfeed.tech/tags/finance.md>), [object](<https://devfeed.tech/tags/object.md>), [recursion](<https://devfeed.tech/tags/recursion.md>), [service](<https://devfeed.tech/tags/service.md>), [structure](<https://devfeed.tech/tags/structure.md>)

### AI overview

This article explains how to design a hierarchical authorization system for Goiter. It contrasts a flat mapping of users, objects, and actions with a hierarchical model in which groups can have multiple parents and inherit rules. The article notes that recursive parent lookup can reduce rule bloat, while assuming a maximum recursion depth of 10.

### Source excerpt

. [Designing a Hierarchical Authorisation System](designing-a-hierarchical-authorisation-system-cover...

## Effective Kotlin Item 48: Consider using object declarations

DevFeed: [Effective Kotlin Item 48: Consider using object declarations](<https://devfeed.tech/articles/effective-kotlin-item-48-consider-using-object-declarations-39286.md>)

Original publisher: [Read original article](<https://kt.academy/article/ek-object-declarations>)

Published: 2023-11-06T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [object](<https://devfeed.tech/topics/object.md>), [classes](<https://devfeed.tech/topics/classes.md>), [Kotlin programming](<https://devfeed.tech/topics/kotlin-programming.md>)

Tags: [classes](<https://devfeed.tech/tags/classes.md>), [consider](<https://devfeed.tech/tags/consider.md>), [effective](<https://devfeed.tech/tags/effective.md>), [instead](<https://devfeed.tech/tags/instead.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [object](<https://devfeed.tech/tags/object.md>), [regular](<https://devfeed.tech/tags/regular.md>), [using](<https://devfeed.tech/tags/using.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This tutorial explains when to use Kotlin object declarations instead of regular classes, including the covariant Nothing object pattern for generic types.

### Source excerpt

Why we should use object declarations instead of regular classes.

## Objects in Kotlin

DevFeed: [Objects in Kotlin](<https://devfeed.tech/articles/objects-in-kotlin-39337.md>)

Original publisher: [Read original article](<https://kt.academy/article/kfde-objects>)

Published: 2023-07-17T00:01:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [object](<https://devfeed.tech/topics/object.md>), [class](<https://devfeed.tech/topics/class.md>), [constructor](<https://devfeed.tech/topics/constructor.md>), [interfaces](<https://devfeed.tech/topics/interfaces.md>)

Tags: [class](<https://devfeed.tech/tags/class.md>), [constructor](<https://devfeed.tech/tags/constructor.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [object](<https://devfeed.tech/tags/object.md>), [synchronization](<https://devfeed.tech/tags/synchronization.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This Kotlin tutorial explains how to create objects with object expressions and object declarations. It covers anonymous objects, inheritance and interface implementation, object scope, singleton behavior, and practical uses such as listeners and synchronization locks.

### Source excerpt

What is object expression, object declaration and companion objects, and how we use them.

## Understanding Flow

DevFeed: [Understanding Flow](<https://devfeed.tech/articles/understanding-flow-39242.md>)

Original publisher: [Read original article](<https://kt.academy/article/cc-understanding-flow>)

Published: 2023-05-29T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [kotlin-coroutines](<https://devfeed.tech/topics/kotlin-coroutines.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [interface](<https://devfeed.tech/topics/interface.md>), [function](<https://devfeed.tech/topics/function.md>), [object](<https://devfeed.tech/topics/object.md>), [Parameter](<https://devfeed.tech/topics/parameter.md>), [Type Parameter](<https://devfeed.tech/topics/type-parameter.md>)

Tags: [coroutines](<https://devfeed.tech/tags/coroutines.md>), [function](<https://devfeed.tech/tags/function.md>), [interface](<https://devfeed.tech/tags/interface.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-coroutines](<https://devfeed.tech/tags/kotlin-coroutines.md>), [object](<https://devfeed.tech/tags/object.md>), [parameter](<https://devfeed.tech/tags/parameter.md>), [type-parameter](<https://devfeed.tech/tags/type-parameter.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This tutorial explains Kotlin Coroutines Flow by deriving its implementation from a suspending lambda, then introducing a functional interface, receiver, object expression, builder function, and generic type parameter. It concludes that the basic builder closely models how flow, emit, and collect are implemented.

### Source excerpt

We will explore how flow and its processing really works.

## Map as a property delegate

DevFeed: [Map as a property delegate](<https://devfeed.tech/articles/map-as-a-property-delegate-39211.md>)

Original publisher: [Read original article](<https://kt.academy/article/ak-map-delegate>)

Published: 2023-05-08T00:15:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [properties](<https://devfeed.tech/topics/properties.md>), [interface](<https://devfeed.tech/topics/interface.md>), [object](<https://devfeed.tech/topics/object.md>)

Tags: [function](<https://devfeed.tech/tags/function.md>), [interface](<https://devfeed.tech/tags/interface.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [maps](<https://devfeed.tech/tags/maps.md>), [property](<https://devfeed.tech/tags/property.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>), [state](<https://devfeed.tech/tags/state.md>), [variables](<https://devfeed.tech/tags/variables.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

A Kotlin tutorial explains how Map can act as a read-only property delegate, including use cases for objects with known and dynamically added properties. It also explains variable assignment and shared mutable-object behavior through a community puzzle.

### Source excerpt

How do we use Map as a property delegate, and why the result of a famous puzzler should not be surprising.

## Scope functions

DevFeed: [Scope functions](<https://devfeed.tech/articles/scope-functions-39306.md>)

Original publisher: [Read original article](<https://kt.academy/article/fk-scope-functions>)

Published: 2022-09-23T00:05:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [functions](<https://devfeed.tech/topics/functions.md>), [Library](<https://devfeed.tech/topics/library.md>), [object](<https://devfeed.tech/topics/object.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [Back end](<https://devfeed.tech/topics/backend.md>)

Tags: [also](<https://devfeed.tech/tags/also.md>), [apply](<https://devfeed.tech/tags/apply.md>), [backend](<https://devfeed.tech/tags/backend.md>), [functions](<https://devfeed.tech/tags/functions.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [let](<https://devfeed.tech/tags/let.md>), [scope-functions](<https://devfeed.tech/tags/scope-functions.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>), [with](<https://devfeed.tech/tags/with.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

A tutorial on Kotlin scope functions, including let, also, apply, and with. It explains how these standard-library extension functions transform or configure objects, presents application examples, and notes that scope-function-heavy code can make debugging harder.

### Source excerpt

What is let, also, apply and with, and how to use them in our applications.

## Variables point to objects

DevFeed: [Variables point to objects](<https://devfeed.tech/articles/variables-point-to-objects-39392.md>)

Original publisher: [Read original article](<https://kt.academy/article/variables>)

Published: 2021-11-17T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Variable](<https://devfeed.tech/topics/variable.md>), [object](<https://devfeed.tech/topics/object.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [exception](<https://devfeed.tech/tags/exception.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [object](<https://devfeed.tech/tags/object.md>), [variable](<https://devfeed.tech/tags/variable.md>), [variables](<https://devfeed.tech/tags/variables.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

A tutorial explaining how variables reference objects, how reassignment differs from mutating an object, and how these distinctions apply to mutable and read-only Kotlin lists and delegated properties backed by maps.

### Source excerpt

A basic feature, that is commonly misunderstood.

## Effective Kotlin Item 47: Avoid unnecessary object creation

DevFeed: [Effective Kotlin Item 47: Avoid unnecessary object creation](<https://devfeed.tech/articles/effective-kotlin-item-47-avoid-unnecessary-object-creation-39293.md>)

Original publisher: [Read original article](<https://kt.academy/article/ek-unnecessary-objects>)

Published: 2021-08-22T00:00:00Z

Content type: article

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [performance-optimization](<https://devfeed.tech/topics/performance-optimization.md>), [object](<https://devfeed.tech/topics/object.md>), [Code](<https://devfeed.tech/topics/code.md>), [Cache](<https://devfeed.tech/topics/cache.md>)

Tags: [arrays](<https://devfeed.tech/tags/arrays.md>), [code](<https://devfeed.tech/tags/code.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [memory](<https://devfeed.tech/tags/memory.md>), [object](<https://devfeed.tech/tags/object.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [performance](<https://devfeed.tech/tags/performance.md>), [performance-optimization](<https://devfeed.tech/tags/performance-optimization.md>), [virtual-machine](<https://devfeed.tech/tags/virtual-machine.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This Effective Kotlin item explains why unnecessary object creation can hurt performance on the JVM. It covers object reuse, boxing of primitives, memory overhead, references, and the additional access cost of encapsulated elements, especially for large collections and performance-critical processing.

### Source excerpt

About the most essential rule of performance optimization.

## Effective Kotlin Item 32: Consider factory functions instead of secondary constructors

DevFeed: [Effective Kotlin Item 32: Consider factory functions instead of secondary constructors](<https://devfeed.tech/articles/effective-kotlin-item-32-consider-factory-functions-instead-of-secondary-constructors-39279.md>)

Original publisher: [Read original article](<https://kt.academy/article/ek-factory-functions>)

Published: 2021-07-25T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [functions](<https://devfeed.tech/topics/functions.md>), [constructor](<https://devfeed.tech/topics/constructor.md>), [object](<https://devfeed.tech/topics/object.md>), [interface](<https://devfeed.tech/topics/interface.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>)

Tags: [constructor](<https://devfeed.tech/tags/constructor.md>), [functions](<https://devfeed.tech/tags/functions.md>), [interface](<https://devfeed.tech/tags/interface.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [object](<https://devfeed.tech/tags/object.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This article explains why Kotlin factory functions are often preferable to secondary constructors for complex object creation. It covers clearer naming, avoiding constructor conflicts, returning subtype implementations behind interfaces, and allowing platform-specific or optimized implementations.

### Source excerpt

What factory functions are and why they are so important patterns for object creation.

## What is good code?

DevFeed: [What is good code?](<https://devfeed.tech/articles/what-is-good-code-37741.md>)

Original publisher: [Read original article](<https://carlosbecker.com/posts/good-code/>)

Author: Carlos Alexandro Becker

Published: 2015-12-27T00:00:00Z

Content type: opinion

Language: en

Sources: [Carlos Becker](<https://devfeed.tech/sources/carlos-becker.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [clean-code](<https://devfeed.tech/topics/clean-code.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [functions](<https://devfeed.tech/topics/functions.md>), [unit tests](<https://devfeed.tech/topics/unit-tests.md>), [classes](<https://devfeed.tech/topics/classes.md>), [object](<https://devfeed.tech/topics/object.md>)

Tags: [classes](<https://devfeed.tech/tags/classes.md>), [clean-code](<https://devfeed.tech/tags/clean-code.md>), [code](<https://devfeed.tech/tags/code.md>), [functions](<https://devfeed.tech/tags/functions.md>), [object](<https://devfeed.tech/tags/object.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [unit-tests](<https://devfeed.tech/tags/unit-tests.md>)

### AI overview

A personal essay reevaluates common ideas about good code, including small methods and classes, meaningful names, unit tests, and refactoring. The author reflects on how experience and studying object-oriented programming changed their view of Clean Code guidance.

### Source excerpt

I've been wanting to write this for a long time, just to clarify my thoughts on the subject. Now, on vacations, I took a couple of days and finally did it. This is a personal opinion based on my personal experience and tons of books I have read, and I am not, by any means, the supreme holder of the truth, so you will probably disagree with me at some point.

## Elliptic Curves as Python Objects

DevFeed: [Elliptic Curves as Python Objects](<https://devfeed.tech/articles/elliptic-curves-as-python-objects-40347.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2014/02/24/elliptic-curves-as-python-objects/>)

Published: 2014-02-24T10:00:28Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [Algorithm](<https://devfeed.tech/topics/algorithm.md>), [Code](<https://devfeed.tech/topics/code.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [classes](<https://devfeed.tech/topics/classes.md>), [object](<https://devfeed.tech/topics/object.md>), [constructor](<https://devfeed.tech/topics/constructor.md>), [test](<https://devfeed.tech/topics/test.md>), [unit test](<https://devfeed.tech/topics/unit-test.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [classes](<https://devfeed.tech/tags/classes.md>), [code](<https://devfeed.tech/tags/code.md>), [constructor](<https://devfeed.tech/tags/constructor.md>), [elliptic-curves](<https://devfeed.tech/tags/elliptic-curves.md>), [groups](<https://devfeed.tech/tags/groups.md>), [object](<https://devfeed.tech/tags/object.md>), [programming](<https://devfeed.tech/tags/programming.md>), [python](<https://devfeed.tech/tags/python.md>), [test](<https://devfeed.tech/tags/test.md>), [unit-test](<https://devfeed.tech/tags/unit-test.md>)

### AI overview

This tutorial translates elliptic-curve point addition from its geometric and formal description into Python code. It introduces curve and point classes, associates each point with its curve, implements relevant operators, and includes checks that points lie on smooth curves.

### Source excerpt

Last time we saw a geometric version of the algorithm to add points on elliptic curves. We went quite deep into the formal setting for it (projective space $ \mathbb{P}^2$), and we spent a lot of time talking about the right way to define the "zero" object in our elliptic curve so that our issues with vertical lines would disappear. With that understanding in mind we now finally turn to code, and write classes for curves and points and implement the addition algorithm.

## Ruby: Nil

DevFeed: [Ruby: Nil](<https://devfeed.tech/articles/ruby-nil-37836.md>)

Original publisher: [Read original article](<https://carlosbecker.com/posts/ruby-nil/>)

Author: Carlos Alexandro Becker

Published: 2013-09-09T00:00:00Z

Content type: tutorial

Language: en

Sources: [Carlos Becker](<https://devfeed.tech/sources/carlos-becker.md>)

Topics: [Ruby](<https://devfeed.tech/topics/ruby.md>), [object](<https://devfeed.tech/topics/object.md>), [Java](<https://devfeed.tech/topics/java.md>)

Tags: [concepts](<https://devfeed.tech/tags/concepts.md>), [java](<https://devfeed.tech/tags/java.md>), [object](<https://devfeed.tech/tags/object.md>), [ruby](<https://devfeed.tech/tags/ruby.md>)

### AI overview

A beginner-oriented explanation of Ruby's nil object, including how it represents the absence of a value and supports method calls through the Null Object Pattern. The article compares this behavior with null handling in Java.

### Source excerpt

Following my previous posts with basic Javascript aspects, like context and variable hoisting, I'll try to write some basic concepts of the Ruby language. I decided to start with something that usually confuses new Ruby users (sometimes they don't even know that they are confused, by the way): the Ruby nil object.

## Universal Properties

DevFeed: [Universal Properties](<https://devfeed.tech/articles/universal-properties-40319.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2013/05/24/universal-properties/>)

Published: 2013-05-24T14:53:25Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Category Theory](<https://devfeed.tech/topics/category-theory.md>), [Mathematics](<https://devfeed.tech/topics/mathematics.md>), [function](<https://devfeed.tech/topics/function.md>), [object](<https://devfeed.tech/topics/object.md>)

Tags: [categories](<https://devfeed.tech/tags/categories.md>), [category-theory](<https://devfeed.tech/tags/category-theory.md>), [coproducts](<https://devfeed.tech/tags/coproducts.md>), [examples](<https://devfeed.tech/tags/examples.md>), [function](<https://devfeed.tech/tags/function.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [ml](<https://devfeed.tech/tags/ml.md>), [morphisms](<https://devfeed.tech/tags/morphisms.md>), [object](<https://devfeed.tech/tags/object.md>), [product](<https://devfeed.tech/tags/product.md>), [programming](<https://devfeed.tech/tags/programming.md>), [quotients](<https://devfeed.tech/tags/quotients.md>), [types](<https://devfeed.tech/tags/types.md>), [universal-properties](<https://devfeed.tech/tags/universal-properties.md>)

### AI overview

This tutorial introduces universal properties in category theory, defining initial, final, and zero objects through unique morphisms. It illustrates the concepts with examples from mathematics and Set, and discusses constructing programs related to these properties.

### Source excerpt

Previously in this series we've seen the definition of a category and a bunch of examples, basic properties of morphisms, and a first look at how to represent categories as types in ML. In this post we'll expand these ideas and introduce the notion of a universal property. We'll see examples from mathematics and write some programs which simultaneously prove certain objects have universal properties and construct the morphisms involved.

## Methods of Proof -- Contrapositive

DevFeed: [Methods of Proof -- Contrapositive](<https://devfeed.tech/articles/methods-of-proof-contrapositive-40304.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2013/02/22/methods-of-proof-contrapositive/>)

Published: 2013-02-22T20:43:25Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [function](<https://devfeed.tech/topics/function.md>), [functions](<https://devfeed.tech/topics/functions.md>), [object](<https://devfeed.tech/topics/object.md>)

Tags: [contrapositive](<https://devfeed.tech/tags/contrapositive.md>), [function](<https://devfeed.tech/tags/function.md>), [functions](<https://devfeed.tech/tags/functions.md>), [injective-functions](<https://devfeed.tech/tags/injective-functions.md>), [methods-of-proof](<https://devfeed.tech/tags/methods-of-proof.md>), [object](<https://devfeed.tech/tags/object.md>), [pigeonhole-principle](<https://devfeed.tech/tags/pigeonhole-principle.md>), [truth-tables](<https://devfeed.tech/tags/truth-tables.md>)

### AI overview

This post introduces the contrapositive as one of four basic proof methods and begins developing the mathematical definition of functions on sets. It explains functions as sets of ordered pairs, with each input associated with exactly one output.

### Source excerpt

In this post we'll cover the second of the "basic four" methods of proof: the contrapositive implication. We will build off our material from last time and start by defining functions on sets. Functions as Sets So far we have become comfortable with the definition of a set, but the most common way to use sets is to construct functions between them. As programmers we readily understand the nature of a function, but how can we define one mathematically?

## 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

## 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.

## Private, protected and public in Python

DevFeed: [Private, protected and public in Python](<https://devfeed.tech/articles/private-protected-and-public-in-python-40732.md>)

Original publisher: [Read original article](<https://radek.io/posts/private-protected-and-public-in-python/>)

Published: 2011-07-21T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [Python](<https://devfeed.tech/topics/python.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [class](<https://devfeed.tech/topics/class.md>), [subclass](<https://devfeed.tech/topics/subclass.md>), [object](<https://devfeed.tech/topics/object.md>), [pull-requests](<https://devfeed.tech/topics/pull-requests.md>)

Tags: [class](<https://devfeed.tech/tags/class.md>), [object](<https://devfeed.tech/tags/object.md>), [programming](<https://devfeed.tech/tags/programming.md>), [pull-request](<https://devfeed.tech/tags/pull-request.md>), [python](<https://devfeed.tech/tags/python.md>), [subclass](<https://devfeed.tech/tags/subclass.md>)

### AI overview

This tutorial explains how Python handles public, protected, and private members through defaults, naming conventions, and name mangling rather than strict access modifiers. It also discusses how these conventions apply to subclasses and code reviews.

### Source excerpt

How does encapsulation (not) work in Python.

## The Universal Design Pattern

DevFeed: [The Universal Design Pattern](<https://devfeed.tech/articles/the-universal-design-pattern-38765.md>)

Original publisher: [Read original article](<https://steve-yegge.blogspot.com/2008/10/universal-design-pattern.html>)

Author: Steve Yegge (noreply@blogger.com)

Published: 2008-10-20T10:06:00Z

Content type: article

Language: en

Sources: [Steve Yegge](<https://devfeed.tech/sources/steve-yegge.md>)

Topics: [properties](<https://devfeed.tech/topics/properties.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [Persistence](<https://devfeed.tech/topics/persistence.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>), [class](<https://devfeed.tech/topics/class.md>), [object](<https://devfeed.tech/topics/object.md>), [XML](<https://devfeed.tech/topics/xml.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Lisp](<https://devfeed.tech/topics/lisp.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [persistence](<https://devfeed.tech/tags/persistence.md>), [properties](<https://devfeed.tech/tags/properties.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [technical](<https://devfeed.tech/tags/technical.md>), [technical-article](<https://devfeed.tech/tags/technical-article.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

This technical article presents the Properties Pattern, also known in its fullest form as the Prototype Pattern. It explains the pattern as a flexible approach to modeling problems across programming languages and as a general-purpose persistence strategy, while comparing it with class-based object-oriented, relational, and XML modeling.

### Source excerpt

This idea that there is generality in the specific is of far-reaching importance. -- Douglas Hofstadter, Gödel, Escher, Bach Note: Today's entry is a technical article: it isn't funny. At least not intentionally. Update, Oct 20th 2008: I've added an Updates section, where I'll try to track significant responses, at least for a week or so. There are three entries so far. Contents Introduction Three Great Schools of Software Modeling Class Modeling Relational Modeling XML Modeling Other schools Finding the sweet spot Property Modeling Brains and Thoughts Who uses the Properties Pattern? Eclipse JavaScript Pushing it even further The pattern takes shape... Wyvern Lisp XML revisited Bigtable Properties Pattern high-level overview Representations Keys Quoting Missing keys Data structures Inheritance The deletion problem Read/write asymmetry Read-only plists Performance Interning strings Perfect hashing Copy-on-read caching Refactoring to fields Refrigerator REDACTED Rolling your own Transient properties The deletion problem (remix) Persistence Query strategies Backfills Type systems Toolkits Problems Further reading New Updates Final thoughts Introduction Today I thought I'd talk about a neat design pattern that doesn't seem to get much love: the Properties Pattern. In its fullest form it's also sometimes called the Prototype Pattern. People use this pattern all over the place, and I'll give you a nice set of real-life examples in a little bit. It's a design pattern that's useful in every programming language, and as we'll see shortly, it's also pretty darn useful as a general-purpose persistence strategy. But even though this pattern is near-universal, people don't talk about it very often. I think this is because while it's remarkably flexible and adaptable, the Properties Pattern has a reputation for not being "real" design or "real" modeling. In fact it's often viewed as a something of a shameful cheat, particularly by overly-zealous proponents of object-oriented desi