On Tue, May 26, 2009 at 9:40 PM, Maciej Stachowiak <span dir="ltr">&lt;<a href="mailto:mjs@apple.com" target="_blank">mjs@apple.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div><br>
On May 26, 2009, at 6:11 PM, Jeremy Orlow wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
Did you say partly because it&#39;s more complicated than just splitting one class (and only having 1-way sync communication)?  If so, then we&#39;re still on the same page, because that&#39;s what I&#39;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.<br>


</blockquote>
<br></div>
As a side note - I think it would be cool if we used more specific names than &quot;Backend&quot; and &quot;Frontened&quot; 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&#39;s the same relationship you have in mind.</blockquote>

<div><br></div>
<div>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.  Same thing with client and server.  That said, I&#39;ve definitely heard complaints about terms like this before (on other projects), so I&#39;m not married to the terms.<br>
<br>The names I was planning to use were outlined in a design doc I sent to this list (<a href="http://docs.google.com/View?id=dhs4g97m_8cwths74m" target="_blank">http://docs.google.com/View?id=dhs4g97m_8cwths74m</a>).  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&#39;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.<br><br>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.<br>
<br>Jeremy<br></div></div>