[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