Sviluppo una suite di strumenti di produttività, per Mac, iOS e Windows. Tutti comunicano con un server di sincronizzazione tramite un'interfaccia RESTful (usando i protocol buffer), ma quando aggiungiamo nuove piattaforme, ci rendiamo conto che è difficile ricreare diverse versioni dello stesso codice solo per comunicare con il client, quindi abbiamo pensato di utilizzando un design modulare:
- Il modulo del client di backend sarebbe lo stesso per tutti i client, in modo che le modifiche al protocollo possano essere facilmente trasferite a tutti i client
- Clienti che dobbiamo supportare: Windows, Mac, iOS, Android, Web, possibilmente Windows Mobile
L'unico modo che posso pensare è tramite un modulo JavaScript che è condiviso tra tutti i client e gestisce le comunicazioni con il server, ma forse è ancora più lavoro a causa dell'integrazione richiesta con l'interprete JavaScript. Forse potremmo stare meglio scrivendo un paio di moduli di backend invece di uno solo.