Greetings Weblocks users,

I have been quite successful using Weblocks to build a web application and I
thought I would introduce it on this list and provide some additional
information about how I use Weblocks.  Maybe this information will be useful
to newcomers and I'd love to get some feedback :-)

My application is called SnappyVote, http://snappyvote.com, and is meant to
be a general purpose voting application.  The basic idea is you build a
ballot with choices and then invite your friends to vote on it.  This can be
useful for a variety of applications, like voting on where to go for lunch,
or what is the greatest movie of all time or 'Employee of the Month'.  Right
now it is alpha quality but it is being used by several people already.   I
plan on extending it to allow additional voting types like ranked list,
yes/no, to do surveys and provide web widgets that you can embed into blogs
or facebook or whatever.

Now a little bit about how I use Weblocks.   I started using Weblocks when
it was relatively new and used it for several small projects.  I also tried
other lisp web frameworks (uncommon web, plain hunchentoot) and found that
Weblocks made the most sense to me.   It was quite a learning curve and I
did a lot of things wrong in the beginning.  At times I got incredibly
frustrated with it but somewhere in the process everything just clicked and
I have been productive ever sense.  One thing I learned fairly early on is
the bundled widgets were great for quickly prototyping UI but when it comes
to customizing the behavior they are fairly limited.  This is *not* really a
problem because building custom widgets is not that hard.   So every widget
in SnappyVote, except maybe forms, are all custom.

I do not use any of the continuation-based flow stuff like do-widget except
for maybe one or two places.  While they do make some things cleaner, IMHO I
dont think they are necessary and, at least for me, they caused more
headache than what they were worth.  I recommend that newcomers stay away
from these things unless there is a good reason to use them. YMMV.

I use Elephant with the BDB backend and I like it a lot.  It was very easy
for me to understand the basics and I like defining my data in terms of CLOS
and not tables.  The only thing I'd recommend is staying away from is
associations as they seem to break under some conditions.  If the site
outgrows Elephant I will probably refactor my db code to use postmodern.

For unit testing I use stefil, mostly for its simplicity and my familiarity
working with it on other projects.  I have had great success using
cl-selenium with stefil for UI testing.   cl-selenium is quite stable and
very easy to set up.  I cannot recommend this enough and I was surprised
that there is  no mention of it on the weblocks site or on this mailing
list.  In addition to unit testing, I use SBCL's sb-cover library to get
code coverage for my unit tests.  sb-cover has a nice form-by-form
color-coded report that shows me exactly which code paths are missed in my
unit tests.   Again, highly recommended!

Well, that's it.  Again, feedback is welcome and I hope this is helpful to
some of you.

Thanks!

Anthony

-- 
You received this message because you are subscribed to the Google Groups 
"weblocks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/weblocks?hl=en.

Reply via email to