Code Developement Strategy Tips

General discussion about the development of the open source Blender

Moderators: jesterKing, stiv

Post Reply
JA-forreal
Posts: 0
Joined: Sat Mar 22, 2003 10:45 pm

Code Developement Strategy Tips

Post by JA-forreal »

When my back is up againt a deadline I often seek out answers and solutions for the task at hand. I am finalizing major areas in my current project and at times I see big areas where any tips that can help me to better organize and focus my work are needed. I ran accross this info that may be of use to the Blender developers here-

http://www.sdmagazine.com/projects/

Maybe I'm just too hungry for knowledge.....

thorax
Posts: 320
Joined: Sun Oct 27, 2002 6:45 am
Contact:

Post by thorax »

Also to avoid the Antipatterns:
(The main ones are "the blob", "golden hammer", "stovepipe"
these are mostly intuitive if you've come in contact with them,
I can relate with them but they overlap some, so.. Basically
its how you recognize when a refactor/rewrite is required for a
source tree.. And ways to do it, either at once or in parts..
And the solutions are quite intuitive too.. So if you are an experienced
coder, don't bother reading these.. But its good to have a name for
them so that when you see it you can scream it out rather than searching for words to describe it.. Argh!! "It's the blob!!")

See

http://www.expressitpeople.com/20020909 ... ent1.shtml
http://www.expressitpeople.com/20020114 ... ent3.shtml
http://www.expressitpeople.com/20020107 ... ent4.shtml
http://www.expressitpeople.com/20020128 ... ent4.shtml
http://www.expressitpeople.com/20020218 ... ent4.shtml

There is at least a year of articles here.. I read the above and believe
they are good reading for developers..

http://www.google.com/search?hl=en&lr=& ... ssitpeople


http://www.antipatterns.com/briefing/sld001.htm

How I found these (recognize common antipatterns):

http://www.google.com/search?hl=en&lr=& ... terns+blob

How I knew about antipatterns? I read a book about antipatterns in
software management and in software development, but couldn't
recall the books, I did recall states of design like analysis paralysis.
And use of the silver bullet (a managerial problem where the best solution
is seen as a particular kind of software).. Analysis paralysis is when
you spend more time in analysis than in implementation. However
I think blender's source development is dieing from the "blob" antipattern..

http://www.antipatterns.com/briefing/sld012.htm

(cut and paste programming, see??)

Spaghetti Code:
Another one affecting blender.. Why is this so familiar?
http://www.antipatterns.com/briefing/sld019.htm
http://www.antipatterns.com/briefing/sld020.htm

The Blob:
http://www.antipatterns.com/briefing/sld024.htm

Some other articles you might read, I just glanced at these:
http://members.fortunecity.com/lnavu/se ... chap_a.htm
http://www.ge.infn.it/calcolo/faq/java/ ... age03.html
http://www.cs.brown.edu/courses/cs032/r ... chap01.pdf

Lava Flow:
(read through comments in blender's code, you will see
examples of this..)
http://www.antipatterns.com/lavaflow.htm

This link above came from this which is for the developers:
http://www.antipatterns.com/dev_cat.htm

This looks like a general site for antipatterns..
http://www.antipatterns.com/

And this is for Ton:
http://www.antipatterns.com/mgmt_cat.htm

And this would probably be for me and ton and others taking on
the design aspects of blender:
http://www.antipatterns.com/arch_cat.htm

see these in the above:
- The Grand Old Duke of York (developers need a architect hero)
- Warm Bodies (we need more project teams, less bodies per team)
- Swiss Army Knife (blender only needs to do what is essential)
- Autogenerated Stovepipe (Verse could lead to this)
- Architecture by Implication, Design by Committee, (what will happen if we let any single person define the architecture for blender..)
- Wolf Ticket
http://www.antipatterns.com/wolfticket.htm

In the "Wolf ticket" when it mentions "de facto standard",
that is a standard that is developed by popular use, such as using Microsoft products results in de facto standards, but the standards
are not really logical in that they tend to favor Microsoft by design..
Real open standards involve multiple parties that watchdog each other to
encourage that standards don't develop in a way that
bends toward a particular vendor.. Microsoft develops
"de facto standards" by inventing technologies that replicate
existing technologies but modify them, then are exploited with
marketing/sales campaigns.. C#, J++, are examples of
candidates for defacto standards.. But consumers determine
if these are standards or not, not industry experts.. The difference
is what counts for relevant experience. The consumers will tend to
pick solutions that feel better and get immediate results, whereas
the industry experts will pick solutions that scale well (Microsoft's
software tends not to scale well, this means it will cost you more
to maintain their software overtime, so that those who use their
stuff for minimal projects experience good results, whereas those
who try to use their software for large projects will begin to see
the ugly details in the design).. Corporate entities will pay more for software than individuals, but the individuals drive word of mouth (also called viral marketing, viral marketing is cheaper than brute force marketing, because its driven by individuals who are not paid than
by campaigns which are).. So you can see how this works out in the marketplace.. Especially when the individuals are CEO's.

Post Reply