Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A farewell to the empirically proven to be failed modern OOP #8

Merged
merged 13 commits into from
Nov 12, 2023

Conversation

EduardoLR10
Copy link
Member

@EduardoLR10 EduardoLR10 commented Nov 11, 2023

Goal

Once upon a time, there were a @EduardoLR10 and a @MMagueta that wanted to go against their own bias towards functional programming and immutability. They tried very hard to embrace a modern approach to separation of concerns using modern, a.k.a, post-Java, object-oriented programming for RacketowerDB.
They managed to go far but eventually, reality hit, and the OOP monument crumbled with their dreams inside. Confident that it was not a matter of bias, they were enlightened by @z-silver to change the design of the application to use a combination of immutable structs, generic interfaces, and contracts. Such a set of abstractions proved to be a far better alternative in comparison, and the threefold team dedicated a significant amount of time to making an overall design change that would allow them to dream again.

Related Issues

Close #1.

How to Test

  • Make sure you delete all data files, i.e., within the ndf/data folder.
  • Run nix develop && just build && ./main and you should not see any errors.

Observations for the Reviewer

I hope you understand that this is a small step for us, but one giant leap for the future of the official database project of DrN.

@EduardoLR10 EduardoLR10 changed the title Structs bye oop A farewell to the empirically proven to be failed modern OOP Nov 11, 2023
@EduardoLR10
Copy link
Member Author

EduardoLR10 commented Nov 11, 2023

You can read more about how cursed this was here.

@EduardoLR10 EduardoLR10 mentioned this pull request Nov 11, 2023
util.rkt Outdated Show resolved Hide resolved
io.rkt Show resolved Hide resolved
io.rkt Outdated Show resolved Hide resolved
io.rkt Outdated Show resolved Hide resolved
io.rkt Outdated Show resolved Hide resolved
io.rkt Outdated Show resolved Hide resolved
ast.rkt Outdated Show resolved Hide resolved
ast.rkt Outdated Show resolved Hide resolved
io.rkt Outdated Show resolved Hide resolved
io.rkt Outdated Show resolved Hide resolved
Copy link
Collaborator

@z-silver z-silver left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just some minor readability improvements this time.

io.rkt Outdated Show resolved Hide resolved
io.rkt Outdated Show resolved Hide resolved
io.rkt Outdated Show resolved Hide resolved
@EduardoLR10 EduardoLR10 merged commit c5fce17 into master Nov 12, 2023
1 check passed
@EduardoLR10 EduardoLR10 deleted the structs-bye-oop branch November 12, 2023 20:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Limitation on how many entities can be saved in a single schema
2 participants