[webkit-dev] SharedWorkers alternate design

Maciej Stachowiak mjs at apple.com
Wed May 27 00:13:41 PDT 2009


On May 27, 2009, at 12:00 AM, Jeremy Orlow wrote:

> On Tue, May 26, 2009 at 9:40 PM, Maciej Stachowiak <mjs at apple.com>  
> wrote:
>
> On May 26, 2009, at 6:11 PM, Jeremy Orlow wrote:
>
>
> Did you say partly because it's more complicated than just splitting  
> one class (and only having 1-way sync communication)?  If so, then  
> we're still on the same page, because that's what I'll be doing as  
> well.  I was just using the StorageBackend as an example, but events  
> will require signals from the backend to the frontend, and some  
> abstractions (like StorageArea) make a lot of sense whether or not  
> things are split into two pieces, which sounds a lot like what you  
> described with ResourceHandle.
>
> As a side note - I think it would be cool if we used more specific  
> names than "Backend" and "Frontened" in the actual code, since which  
> end is front and back is not always obvious nor always agreed upon  
> by all observers. I like Proxy and Impl ok as name pairs, not sure  
> if that's the same relationship you have in mind.
>
> I somewhat disagree regarding the terms frontend and backend being  
> confusing.  It seems to me that the backend is always further away  
> from the user than the frontend.

An example of why I think these terms can be confusing:

Which part of the style system would you guess is traditionally  
described as the "back end"? Hint: it's not the part further from the  
user. I'm glad we call it RenderStyle instead of StyleBackEnd in the  
code.


>   Same thing with client and server.  That said, I've definitely  
> heard complaints about terms like this before (on other projects),  
> so I'm not married to the terms.
>
> The names I was planning to use were outlined in a design doc I sent  
> to this list (http://docs.google.com/View?id=dhs4g97m_8cwths74m).   
> Basically, I was planning to the term Backend, but the rest of the  
> names are more descriptive.  If you have another suggestion for  
> Backend, I'd be happy to change it.  I would have already, but the  
> only other idea I had was server, and I think people find that term  
> even more confusing.  StorageRepository might be an ok name.

Something like StorageRepository or StorageDataStore (despite the  
repetition) might be good. I haven't thought deeply about specific  
uses of "back end", but it's definitely something I am allergic to in  
general, as stated above.

> As for Impl and Proxy, they are actually somewhat orthogonal to the  
> frontend and backend.  For example, if a script calls  
> window.localStorage.setItem(foo, bar), the frontend in the render  
> process will access the backend proxy which will send the message to  
> the browser process where the backend implementation lives.  The  
> backend implementation will then access the EventManagerProxy which  
> will distribute the events to the EventManagerImpl in all the render  
> processes.  In other words, Proxies are necessary anywhere messages  
> originate.

Thanks for clarifying.

Regards,
Maciej

P.S. I hope all this design input isn't being too fussy. Working on a  
big project like WebKit is a constant battle against entropy, and we  
try hard to find good patterns and spread them as a counter. But I  
don't mean to make a huge deal out of this naming detail.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20090527/4de44dbd/attachment.html>


More information about the webkit-dev mailing list