[ic] Beima's Response!

Ron Phipps rphipps@reliant-solutions.com
Sun, 1 Apr 2001 22:34:34 -0700

> I learn by 'doing'. Construct Something sets up an excellent store. A
> very complete store, with only a couple of omissions. Whoever set this
> up put in a LOT of time and effort into building it. I only wish that I
> was selling hammers and nails. It's great.

The construct demo works quite well for other applications.  Checkout
http://www.mygamewear.com This site is based off of Construct with *some*
custom programming.  Sure we had to add different shipping, tax, and
modifiers per item but it was within reason to use the Construct Demo and
what wasn't in the demo could be answered in the list or built with some
effort (for example: being able to purchase a product from the list page
that has modifiers).  An accomplished programmer like yourself should be
able to use the Construct Demo as a starting point, to pull apart and figure
out how it runs and how to expand it for your needs.  The site above was
built with a 5 year experienced web designer and a 6 year experienced
database developer.

I've built 3 sites and a 4th is in progress.  My development environment
consists of a demo store that will not be modified and a demo store where
the work will take place.  With this arrangement as you make changes and
compare between the two you are able to see how it *should* work and how it
does or does not work after you make changes.  I've found this method a good
way to dive right in and learn the ropes, but it may only work for someone
that can spend quite a bit of time trying things out and is determined to
learn how it works, not just to get the demo working.  The first (no longer
online) was based off of the old Art Store.  It did not have many bells and
whistles, basically allowed someone to order a product out of a static
catalog.  I learned more about e-business during this project then I did
about Interchange, the site worked but was minimal and did not have any
custom additions accept for processing through Verisign.

The second (http://www.caseetc.com) was also based off of the Art Store
however this time I decided to start with empty files and only use the Art
Store as a reference.  This store contained all the functionality of the Art
Store (user database, user tools, modifiers) and also modifed the look
almost %100.  The way we built this site was that I would show the Web
Designer what a page looked like in the demo (so he could get an idea of the
fields needed).  He would then send me a static html file with all the
graphics.  At this point I would start with an empty file, copy all of his
code into the file and then open up the Art Store file that correponds to
the piece of the store I was working on.  I would then go *line by line*
inserting code and modifying it as needed.  This allowed me to see exactly
how the demo worked because I needed to understand each tag (although it did
not come all at once).  This store was later migrated form MV 4.04 to IC
4.6.1, that was a fun experience.  At this point my reading of the docs was
minimal, I watched the list every single day and did a lot of searching of
the list (the docs were not as neatly organized as they are now).  Checkout
this site and see what actually can be done if you get in there and get your
hands dirty.

The 3rd site (http://www.mygamewear.com) was built as a side business to our
development and hosting company.  We were on an aggressive schedule to get
the site up and running within 4 weeks (this included not only building the
site but setting up the entire business like printing products, setting up
merchant accounts, making partnerships and so forth).  The 3 people that put
this business together all have day jobs so we were unable to work on it
full time (although our spouses would say otherwise ;)  This store was built
in a similiar fashion as CaseETC.  However this time I started with the
Construct Demo.  I also used blank files again,  so that I could learn the
new demo and go *line by line* through the code (ignoring the html).  Like I
said above the only major hangup I reached was on the list page, enabling a
user to purchase an item that also has modifiers (construct only allows
quantity changes from the list page).  We are currently adding more user
tools like request an RMA and an Address book.  We are also redesigning the
list page to fit more products per page.  With this project I learned how to
start an e-business (there's a lot to learn!), the Construct Demo as well as
the new Admin interface.

The next site we will develop is going to push us outside the construct demo
and require quite a bit of custom programming.  I expect this store to be
the one I learn the most from.  The client knows the features they would
like based on a competing site and I will have to figure out how to do these
things in IC (watch out list, I'm coming back to ask questions :).  With
this site we will have more time then the MyGamewear.com site and will be
able to load the site with more features.

> But, not covered is why the
> various things are done as they are. When a good programmer writes
> software s/he puts in comments to explain what they did, and why. I
> haven't found these explanations, yet.

Are you implying that Mike and his team are not 'good' programmers.  Perhaps
you don't know how IC came around to what it is today.  This was a one man
show back in the day and has evolved to a team of people, each working on
their own piece of the pie.  At one point the Admin interface didn't even
exist (minimate worked but not as well as the IC admin), now look at how
well it works today.  I'm sure Mike evaluated what he thought needed to be
done at the time and that outweighed working on the docs (I don't know many
*good* programmers that enjoy or put all their effort into docs).  I'd much
rather have the admin interface for my clients to use then to have better
docs.  I'm %100 positive I would spend more time doing things for them
manually then the time I spent learning this package without the docs.
However, Jon mentioned that in 4.8.x we should see new documentation, this
may give you what you are looking for.

> I'm standing here looking at a Ford that needs a valve job and I have
> no idea of where to start in, other than the theory of the 4-cycle
> internal combustion engine.

Get in there and take the thing apart (start with index.html), step through
line by line, remove code to see what that effects, put it back and see if
it works again.  Use grep to search the source files and docs and use Google
to search the list.  You'll start to see how it all fits together if you
spend this time,  It sure worked for me and I don't have nearly as much
programming experience as you do.  If you don't have this time to dedicate
then you might as well move on, there are cookie cutter e-com apps out there
(although they'll cost ya $$$$) if that's what you are looking for.

Whew :)