Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Good principles for software development

82 views
Skip to first unread message

Alf P. Steinbach

unread,
May 26, 2016, 10:33:52 AM5/26/16
to
Good principles for software development:

• DRY – Don't Repeat Yourself (i.e. avoid redundancy)
• KISS – Keep It Simple, Stupid! (i.e. avoid complexity)
• YAGNI – You Ain't Gonna Need It (i.e. avoid over-generalization)

And of course, AHA! – Avoid Hare-brained Abbreviations!


- Alf
forwarding his own Facebook-posting to a wider audience

Mr Flibble

unread,
May 26, 2016, 12:33:05 PM5/26/16
to
On 26/05/2016 15:32, Alf P. Steinbach wrote:
> Good principles for software development:
>
> • DRY – Don't Repeat Yourself (i.e. avoid redundancy)
> • KISS – Keep It Simple, Stupid! (i.e. avoid complexity)
> • YAGNI – You Ain't Gonna Need It (i.e. avoid over-generalization)
>
> And of course, AHA! – Avoid Hare-brained Abbreviations!

KISS is both obvious common sense but also not always achievable as
complexity cannot always be avoided. One can often break complex things
down into simpler parts though.

/Flibble

K. Frank

unread,
May 26, 2016, 12:51:02 PM5/26/16
to
Hello Group!
I'm with Leigh S.S. on this one. I've learned the hard
way over the years that trying to find a simple solution
to an inherently complex problem is a fool's errand.

Many of the problems we address with programming are
complex, and I've come to believe that much of the art
is figuring out how to manage that complexity. There
are so many times I've had writer's block (programmer's
block?) that just disappeared as soon as I admitted
to myself the the problem I was working on wasn't as
simple as I wanted to pretend.

> /Flibble


Happy Hacking!


K. Frank

Rick C. Hodgin

unread,
May 26, 2016, 1:07:05 PM5/26/16
to
On Thursday, May 26, 2016 at 10:33:52 AM UTC-4, Alf P. Steinbach wrote:
> Good principles for software development:
>
> • DRY – Don't Repeat Yourself (i.e. avoid redundancy)
> • KISS – Keep It Simple, Stupid! (i.e. avoid complexity)
> • YAGNI – You Ain't Gonna Need It (i.e. avoid over-generalization)
>
> And of course, AHA! – Avoid Hare-brained Abbreviations!

:-)

My best advice to software developers looking to improve their coding
standards and general development skills is to go out and read over
lots of available software, especially from the larger projects like
the Linux kernel, LibreOffice, and Blender.

It's very interesting to see how the various developers write code, and
how the various projects require certain styles. There are good and bad
things to be learned from all of them.

And in my case, since I have dyslexia that's pretty bad at times, I've
learned to introduce extra spacing, coloring, and special formatting which,
I'm told, many other people dislike extensively. :-) But, it really does
help me read the source code more easily ... so sometimes there are those
considerations beyond mere source code requirements, as there are also
people requirements.

Best regards,
Rick C. Hodgin

Öö Tiib

unread,
May 26, 2016, 1:24:18 PM5/26/16
to
Your block was because you attempted to do impossible. It is futile.
Even Einstein taught that "Everything should be made as simple as
possible, but not simpler".

About kissing he taught that ... “Any man who can drive safely while
kissing a pretty girl is simply not giving the kiss the attention it
deserves.” So he was wise guy. ;)

Mr Flibble

unread,
May 26, 2016, 1:28:21 PM5/26/16
to
Was this post just a temporary lull in the usual god bothering noise?

/Flibble

Rick C. Hodgin

unread,
May 26, 2016, 2:38:02 PM5/26/16
to
On Thursday, May 26, 2016 at 1:28:21 PM UTC-4, Mr Flibble wrote:
> Was this post just a temporary lull in the usual god bothering noise?

My usual posts comprise of things related to my job, personal project,
personal interests, and all of them involve God in one way or another.

From time to time I post specific and explicit posts about God so as to
teach those who don't have the opportunity to otherwise hear the same
from the normal things they do in this world, but the things I do in this
world are those things I do, and because I'm a Christian they relate to
God:

XBase program called Visual FreePro, Jr:

https://github.com/RickCHodgin/libsf/tree/master/source/vjr/source

32-bit operating system called Exodus (named that way eight years before
I became a Christian, as it was simply supposed to be a "mass departure
from evil," which was Microsoft at the time (1996)):

https://github.com/RickCHodgin/libsf/tree/master/exodus/source

Hardware design for a microprocessor called Arxoda, a 40-bit extension
to the 80836 (which I call LibSF 386-x40), instead of the 64-bit extension
we have in AMD64. 40-bits gets to you 1TB of physical address space:

https://github.com/RickCHodgin/libsf/tree/master/li386

And my current project is a C/C++ compiler called CAlive, that is
basically a C compiler which has the class and several new features
that neither language supports:

https://github.com/RickCHodgin/libsf/tree/master/books/rdc
https://groups.google.com/forum/#!forum/caliveprogramminglanguage

-----
I have regular things I do in my life, Mr. Flibble. I just happen to be a
born again Christian who seeks to honor God with the skills I possess in my
life.

I also like welding, tennis, woodwork in general, working on cars, and am
interested in building a wooden boat similar to this (Devlin Godzilla 25
Tugboat, though the version I would build would be closer to the build style
of that seen in the second video):

https://www.youtube.com/watch?v=WNRaSanZrlU
https://www.youtube.com/watch?v=sWIs-9wlaV4&t=15m23s

My family and I are planning to build a 1/8th scale model of the boat we'd
like to build this summer. If we all agree we'll begin building it with a
plan to complete it over several years.

Mr Flibble

unread,
May 26, 2016, 8:40:57 PM5/26/16
to
On 26/05/2016 23:39, Stefan Ram wrote:

> - Don't talk to strangers! (Demeter's Law)

Law of Demeter is bollocks.

Law of Demeter or Principle of Least Knowledge is a simple design style
for developing software that purportedly results in a lower coupling
between elements of a computer program. Lower coupling is beneficial as
it results in code which is easier to maintain and understand.

It is the opinion of this programmer however that the Law of Demeter is
in fact a load of old toot (rubbish) as it advocates invoking methods on
global objects: this is in contradiction to a "Principle of Least
Knowledge". "For pragmatic reasons" are weasel words. Global variables
(non-constants) are bad, period.

/Flibble

mad...@acm.org

unread,
Jun 6, 2016, 4:12:24 PM6/6/16
to
On Thursday, May 26, 2016 at 10:33:52 AM UTC-4, Alf P. Steinbach wrote:
Missed my favorite: SWYM - Say What You Mean. We always used to say "SWYM DRY!".
0 new messages