AltME: Rebol School

Messages

Gregg
On Software Architecture
- Beautiful Atchitecture is real world stories, but not all will teach you something. Overall I like it.
- Software Architecture in Practice is dry and rigid. I don't like it.
- Software Architecture and Design (Witt, Baker) is pretty good, if somewhat dated
- Software Architecture (perspectives on an emerging discipline) (Shaw, Garlan) I like, as it's not huge and their views align with mine. :-)
- Beyond Software Architecture didn't grab me. Lots of business related stuff in it.
- Domain Driven Design is good, as it applies to DSLs and such.
On programming, are you looking for coding specific stuff (e.g. Programming Pearls, Code Complete) or more general (Making Software, Rapid Development)?
SWhite
CelesteM
I'm looking to improve the way I structure my code so that it's both more readable and easier to maintain.
Geomol
Books I often use in combination with programming/development/language design:
- The C Programming Language (Kernighan and Ritchie).
    Most out of need, as I program in C also. Wish I didn't have to.
- Object-oriented Software Construction (Bertrand Meyer)
    Many very good ideas, even for outside real object-oriented languages.
- Programming Languages: Design and Implementation (Terrence W. Pratt)
    Cover lots of languages and designs.
- Data Structures and Algorithm Analysis (Mark Allen Weiss)
    The data structures ABC.
- Amiga ROM Kernel Reference Manual, Libraries & Devices
    Yeah, it actually still has useful stuff, even if it is old.
Carl's Style Guide has good tips for readability:
http://www.rebol.com/docs/core23/rebolcore-5.html#section-5
I changed my way of writing code, after I looked at the sources for Lua. Now I tend to write condenced code without empty lines, and then have two empty lines between functions.
And putting brackets on the same line as function definition, and space before parenthesis:
    void my_function (arg1, arg2) {
        ...
    }
Same with IF, WHILE, etc in REBOL:
    if something [
        do this
    ]
    while [this-is-true] [
        do this
    ]
CelesteM
That's how I format my code as well but I'm looking for something more along the lines of naming convention dos and don'ts. And how to create useful objects in OO programming.
Geomol
On naming, Carl has the best suggestions, as I see it:
5.2 Word Names
5.2.1 Use the Shortest Word that Communicates the Meaning
5.2.2 Use Whole Words Where Possible
5.2.3 Hyphenate Multiple Word Names
5.2.4 Begin Function Names with a Verb
5.2.5 Begin Data Words with Nouns
5.2.6 Use Standard Names
CelesteM
That looks like an excellent list right there.
Geomol
I don't do much OO programming, because it is so hard to find useful objects. :)
If I was to create a game, I would make a character object (the character, you play), objects for objects in your surroundings, etc. That is easy, because it relaty to the real world.
If I should write code, which would sort filenames in a directory, I would write a function, not use OO.
CelesteM
But in reality, each file is a separate object...
Geomol
I can only recommend reading Bertrand Meyer, if you wanna do OO (and even if you don't do OO). And I don't program in Eiffel, which is used in his book. He just have many real good ideas.
*has*
"But in reality, each file is a separate object..."
Yes, it just confuses, when what you need really is a function to just do the job.
CelesteM
That sounds like the kind of book that I'm looking for. Thanks!
I know. LOL It was sarcasm.
Gregg
Meyer is very good.  Reusable Software talks about library design, which is the most general kind of development.
Geomol
You are welcome. :)
OO was thought to be the breaktrough in programming and to be used for all programming. It wasn't and it isn't.
Gregg
Code Complete, while dated, was a seminal text on the subject. Anything by McConnell is good.

Last message posted 187 weeks ago.