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.