[OPEN-ILS-DEV] Staff Client Prototype - General Feedback

Dan Wells dbw2 at calvin.edu
Mon Jan 27 17:24:20 EST 2014


Hello all,

I've spent a fair number of hours over the last week getting more familiar with Bill's prototype code.  I still have a *lot* more studying to do before I can fully appreciate what is happening, but I have at least read through all of the code involved, and wanted to share a few thoughts on what I have encountered.

Overall, my first impression of the code is very positive.  Everything is very clean and relatively understandable, even to somebody with basically no AngularJS experience.  I never found myself thinking "I can't believe you have to write all that just to do XYZ", so I think the AngularJS team has made a lot of good choices in how they combine both new and common code structures in a way which is both familiar and fantastic.  Naturally, Bill also deserves some kudos here for building a highly usable prototype which better prepares the rest of us to learn AngularJS ideas through an Evergreen lens.  Thanks, Bill!

One thing I found a little surprising about AngularJS is that it doesn't have a "first-party" library of widgets.  That is, there is no equivalent of Dojo's Dijit library in the AngularJS world.  A number of AngularJS widgets are available from third parties, with one of biggest collections being the AngularUI suite.  I think Bill's choice this suite's "UI Bootstrap" is a great place to start, since it is the intersection of two very popular projects.  While I don't agree with everything Bootstrap does aesthetically, the nuts and bolts of its layout-oriented CSS is well-tested and solid.

There has been a fair amount of discussion already about the use of Template Toolkit in combination with AngularJS in the prototype.  I am very glad to see the amount of thought and consideration which has gone into the discussion, and I hope to see it continue.  I don't have a lot to add to the debate, but do want to make a few observations.  First, in simple quantity terms, Template Toolkit (outside of i18n) is not a major factor in how the prototype is coded.  We have (based on a quick regex count), not counting translation blocks, a total of 141 TT blocks in the entire prototype.  With the prototype code weighing in at 6000+ lines, we could move the TT bits to a different solution down the road and still preserve a clear majority of the work Bill has done here.  Second, TT is being used for i18n in 229 places in the prototype, making it a more significant decision.  However, AngularJS does not offer a built-in i18n string replacement mechanism, so since we are left to find our own solution, working with a known commodity is a smart place to start.  Third, the community has always had a "working code wins" mentality.  In other words, we use existing, working code until something demonstrably better is produced.  It's not a foolproof strategy, but it does "keep the ball rolling", and the door is never closed on improvements.

I have a few more specific concerns which came up in my review, but since they are fairly targeted, they will probably be better served to be discussed separately.

Thanks again to Bill and to everyone else who has taken the time to contribute to the staff client development discussion.

Sincerely,
Dan


Daniel Wells
Library Programmer/Analyst
Hekman Library, Calvin College
616.526.7133



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://libmail.georgialibraries.org/pipermail/open-ils-dev/attachments/20140127/6880b112/attachment.htm>


More information about the Open-ils-dev mailing list