| Deutsch English Français Italiano |
|
<open-20240417153428@ram.dialup.fu-berlin.de> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!fu-berlin.de!uni-berlin.de!not-for-mail
From: ram@zedat.fu-berlin.de (Stefan Ram)
Newsgroups: comp.misc
Subject: Re: Code Reuse (was Re: The Continuous Amnesia Issue)
Date: 17 Apr 2024 14:37:15 GMT
Organization: Stefan Ram
Lines: 39
Expires: 1 Feb 2025 11:59:58 GMT
Message-ID: <open-20240417153428@ram.dialup.fu-berlin.de>
References: <slrnv1rafb.3l3.bencollver@svadhyaya.localdomain> <uvnf78$1ct1p$3@dont-email.me> <wwv8r1cpg7w.fsf@LkoBDZeT.terraraq.uk> <reusability-20240417141033@ram.dialup.fu-berlin.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Trace: news.uni-berlin.de VjNpRGb/bmQa0KzQKCWpjQJZRIWoVwSq0BjOe+EPLDVtwr
Cancel-Lock: sha1:xn9d3BmepHSXN0oKcs9f2VOOUtE= sha256:XRiiAb7xiE/fP2EsZsWMVzfOgaY9/NwYOTp2TGiDglo=
X-Copyright: (C) Copyright 2024 Stefan Ram. All rights reserved.
Distribution through any means other than regular usenet
channels is forbidden. It is forbidden to publish this
article in the Web, to change URIs of this article into links,
and to transfer the body without this notice, but quotations
of parts in other Usenet posts are allowed.
X-No-Archive: Yes
Archive: no
X-No-Archive-Readme: "X-No-Archive" is set, because this prevents some
services to mirror the article in the web. But the article may
be kept on a Usenet archive server with only NNTP access.
X-No-Html: yes
Content-Language: en-US
Bytes: 3287
ram@zedat.fu-berlin.de (Stefan Ram) wrote or quoted:
>- Leverage them design patterns, architecture principles,
> and software frameworks
The "Open-Closed Principle" is really ticklin' my fancy here.
The idea is that software entities should be open for extension,
but closed for modification.
But then you got Uncle Bob comin' in with his two cents,
sayin' that procedural software is a cinch to tack on more
verbs (procedures/functions), but a real headache when it
comes to addin' new data types. Flip that around, and you got
object-oriented software - a piece of cake for the data types,
but a real bear when you wanna slap on some new verbs (method
names).
Now, I know what you're all thinkin' - "Stefan, you're really
speakin' my language here, but what the heck do you mean by
'open for extension, but closed for modification'?"
Well, let me break it down for ya: Imagine you got this ol' software
program, right? And you wanna add some new bells and whistles to
it, but you don't wanna go messin' with the core guts of the thing.
That's where the "open for extension" part comes in - you wanna make
it easy to tack on new features without havin' to rip the whole darn
thing apart.
But then you got the "closed for modification" bit - you don't want
just any ol' Tom, Dick, or Harry comin' in and start tweakin' the
fundamental workings of your software. That's a one-way ticket to
Bugsville, my friends.
So, in a nutshell, you wanna make your software flexible enough
to grow and evolve, but sturdy enough to keep the foundation
intact. Kinda like building a house - you want the walls to
be strong and sturdy, but the decor and layout should be easy to
change up as your needs evolve.