Skip to main content

Why I Enjoy Working on U.I. Code

I've worked in all aspects of code from libraries, DB design, Web/API-services, requirements and everything else, but I've happily fallen into being very strong in the design of User Interfaces.  It's not that I'm artsy (I'm not) but I have a knack of being able to architect UI code so that the artsy presentation skin can be added easily without effecting the functionally of the UI.

Unlike other layers of an application / service (or whatever layer), there are discreet operations and parameters with expected results.  Code can be written and tests created to the expected behavior.  It's the same with DB operations but will a bit more complexity based on relationships, triggers and transactions.

Not so easy with UI code.

Write code to show a form, easy.  Add validation and error handling and it gets a bit busier.   Add related actions, operations, state tracking for enabling / visibility, mix with async operations for data streams and any gee-wiz widget behavior and it can get overwhelming.  If these behaviors could be coded independently and then coupled together for final implementation that would be great, but they can't.   They are interrelated in their behavior and operation.  

This is why writing Unit tests for U.I. code generally does not exist.  The logic required for unit tests would modify the code (thus changing it's behavior), not handle the related states and behaviors so that what ends up being tested are the tests and not the U.I.  The side effect is to make the U.I. even more complex to update, modify and maintain.  Not a good place to be.

With some good behavioral and design patterns this can all be mitigated.  The working with multiple "behavior" balls in the air and making sure that the design patterns I have in place cover the U.I. needs.

This is what I find fun and challenging.

Comments

Popular posts from this blog

Still Life

 Life is never still, at least I don't think you would want it to be.  That's why so many of us (i.e., retired care free people) travel.  Keep seeing new things and places.   Well the Hurricane so far inland was a new thing and one I would have rather forgone but life is what happens.  Life keeps moving. Except a still life is forever and captures a slice of time frozen in a painting.  This is from a wooden bowl of pears onboard our ship during dinner one nice.  Again, just thought it looked nice. Enjoy.

A Trip Abroad

 Just back from our trip abroad as Asheville continues to recover from the hurricane.  This trip has been planned for a long time and we almost didn't make it because our dog sitting business will be closed for a while. But make it we did and now we are back. We love Amsterdam.  What a fun place to visit.  So many things to too and do there.  The weather was not the best but it did not have an impact on our visit.  Just bundle up. Got some quick painting in while on the boat (i.e., Viking) as we moved from port to port.  This painting is of a garden at a heritage site of windmills.  I thought it looked nice. Nice time on the trip to de-stress from what was happing back home.  We were fine back home but not everything is well with many others.

A Process

Once in a while I take photos of a work in progress.  This is for me as well as others as the work moves from stage to stage.  And it is done in stages with defined processes for each step.  On this walkway overpass up in Spruce Pine, I've done both an ink / marker and an Ink / Wash on the same piece. This is the finished watercolor of the work.  To start the process I did an ink drawing of it and then took a tracing from that.  It's the tracing where I did another ink drawing but this time on watercolor paper. Tracings of a work is done with standard tracing paper.  I get mine from CheapJoes.com and use the 8x10 size as that covers most of my needs.  The tracing is done with a 0.3 ink pen (Winsor & Newton Fineliner).  Once I have the tracing I can then use it for other paper or to do another work of the same subject. The tracing is just a start as I still need to get it transferred onto other paper.  For that you need a very bright light...