Object-oriented programming like it's 1986: I'm doing a fun project with LOOPS, the object extension of Interlisp.

https://journal.paoloamoroso.com/paoloamoroso/gravityloops-a-gravity-simulator-in-interlisp-and-loops

#interlisp #oop #lisp

GravityLoops, a gravity simulator in Interlisp and LOOPS

I started working on GravityLoops, a software that simulates a collection of bodies interacting under the mutual gravity. I develop it on...

Paolo Amoroso's Journal
クラスから離れよう|Unity・C#の速度のコツ - Qiita

第ゼロ部|前置き ごきげんよう。サイドでございます。これは私の初めての記事なので、記事の書き方のコツはまだ分からず、これから時間をかけて勉強していきたいと思います。そして日本語はまだ勉強中ですので、忌憚のない評価をいただけると嬉しいです。 第一部|前置き この記事は上級...

Qiita

Ich hatte erst kürzlich einen Beitrag über objektorientierte Programmierung in Java geschrieben. Diesen findest du hier. Da der Beitrag eh schon recht lang geworden war, wollte ich das Thema Interfaces und abstrakte Klassen und dessen Unterschiede in einem separaten Beitrag noch einmal aufg...

https://magicmarcy.de/interfaces-vs-abstrakte-klassen-in-java

#interface #abstrakte-klasse #basisimplementierung #abstrakte-methode #schnittstelle #erweiterung #vertrag #lose-kopplung #abstraktion #oop

Interfaces vs. abstrakte Klassen in Java | magicmarcy.de

Die entscheidenden UnterschiedeIch hatte erst kürzlich einen Beitrag über objektorientierte Programmierung in Java geschrieben. Diesen findest du hier. Da der Beitrag eh schon recht lang geworden war, wollte ich das Thema Interfaces und abstrakte Klassen und dessen Unterschiede in einem separaten Beitrag noch einmal aufgreifen, denn sie gehören zu den wichtigsten Konzepten der objektorientierten Programmierung. Beide dienen dazu, eine gemeinsame Basis für mehrere Klassen bereitzustellen, aber sie haben unterschiedliche Anwendungsfälle und Einschränkungen. In diesem Beitrag erkläre ich die Unterschiede anhand eines einfachen Beispiels und erläutere, wann welche Technik sinnvoll eingesetzt wird.

magicmarcy.de

In this new #vvvv tutorial we're building a generative droplet spray. We create a custom datatype to dynamically spawn and animate instances of droplets with their own lifetime and behavior, a perfect entry point into object-oriented patching in VL.

Spray is the 4th in our series of beginner video tutorials in collaboration with @chkworks

https://youtu.be/ktmVOzxFc80?si=upqAxQkf2WOxpUpE

#visualprogramming #creativecoding #dotnet #oop

Spray - vvvv Tutorial

YouTube

Title: P2: Object-Oriented Design and Mocking TDD nil

you design objects like big isolated containers, this slow down
refactoring which require 1) to split code actively to more specific
parts 2) collect them again in better ones.

Tests as additional dependency, coupled with code.

Conclusion: balance, balance, balance.

Links:
- Test-Driven Development paper "Mock Roles, Not Objects" by Steve Freeman, Nat Pryce, Tim Mackinnon, Joe Walnes. #dailyreport #progrmming #OOP #TTD #mockobject

Title: P1: Object-Oriented Design and Mocking TDD nil

5) Be explicit about things that should not happen. Not only that save() happened BUT also that delete() did not.
6) Percentage of coverage should be balanced
Pros of tests:

Writing tests provides a framework to think about functionality, not state.

Amplifies problems such as tight coupling. It is motivator for improving the design

Cons of test: #dailyreport #progrmming #OOP #TTD #mockobject

Title: P0: Object-Oriented Design and Mocking TDD nil

1) Dont use getters or "Tell, Don't Ask."
- Instead of if (account.getBalance() > 100), you write account.debitIfAffordable(100).
2) dont do mock.getA().getB().doSomething()
3) You should almost always mock an Interface, not a concrete Class
4) You shouldn't mock third-party libraries #dailyreport #progrmming #OOP #TTD #mockobject

Master the fundamentals of software development with our Java Programming Course and gain hands-on experience in OOP, application development, and real-time coding

Build strong programming skills and unlock exciting career opportunities in the growing IT industry.

Explore more: https://www.osizlabs.com/java-programming-course

#Java #JavaProgramming #Coding #SoftwareDevelopment #OOP #LearnJava #TechSkills #ITCareer #CareerGrowth

Ruby 클래스의 설계 범주와 객체 지향적 활용 원칙

Ruby 클래스는 Basic, Whole Value, Functional 세 가지 범주로 분류되며, 특히 #call 메서드를 구현하는 Functional 클래스는 객체와 함수의 장점을 결합한다.

🔗 원문 보기

Ruby 클래스의 설계 범주와 객체 지향적 활용 원칙

Ruby 클래스는 Basic, Whole Value, Functional 세 가지 범주로 분류되며, 특히 #call 메서드를 구현하는 Functional 클래스는 객체와 함수의 장점을 결합한다.

Ruby-News | 루비 AI 뉴스