[kde-linux] Kget "My Downloads" [Is this MS Windows?]

James Tyrer jrtyrer at earthlink.net
Mon Apr 22 06:11:14 UTC 2013


On 04/21/2013 12:29 PM, Kevin Krammer wrote:
> On Saturday, 2013-04-20, James Tyrer wrote:
>
>> I have to say, that this code needs some redesign work.  Hacking is not
>> a good design method.  You really need to design before you code.
>
> Well, depends on the software development model.
> When one does something very new, either in problem domain or technology being
> used, it is often wiser to go for a prototype - test - refine cycle instead.
>
> A usual program will see both kinds of methologies being deployed, often
> starting with the refinement cycle approach for the initial implementation or
> feature set, going for a design and test approach for refactoring or rewrite.

A long standing tradition when I was in college and we had an IBM 360 
that would fill up my house but was less powerful than the small box 
setting on the floor by my coffee table was that upper division students 
would informally tutor lower division students between punching those 
damn cards and waiting for output.

I learned a lot teaching, as I also did tutoring math.  The Socratic 
method was often the best: "Please tell me just exactly what this 
section of code is supposed to do".  And, it becomes obvious that they 
did not have a coherent idea of exactly what they wanted it to do.  And, 
if they did have a general idea that it could be done better if a little 
thought was done before it was coded, or in the case here, some 
retroactive design changes were made to improve it -- design after the 
fact as it were.

So, when I say that a program should be designed before it is coded, 
this can occur at many levels.  Programs are composed of small pieces of 
procedural code (even C++ programs are built on procedural code) that do 
the actual work.  These need to be designed, rather than just hacked at, 
if they are to work well (they need to be canonically correct and 
complete for the program to be free of bugs and only design can 
accomplish that [I can explain this without using math jargon but it 
won't be short]).  It also needs to be considered if they will need to 
interact with each other and if that needs to be designed.  This type of 
micro design is more what I had in mind (rather than designing the whole 
program) and it is the type of design that I find lacking when I look at 
code.

You are correct about designing the whole program.  You need to make a 
prototype to find out what is wrong with the original design ideas and 
what changes are needed.  That is what prototypes are for -- to find 
design errors.

-- 
James Tyrer

Linux (mostly) From Scratch

-- 
James Tyrer

Linux (mostly) From Scratch



More information about the kde-linux mailing list