Domanda veloce riguardante codice / logica condivisa nella parte posteriore e frontale di un'applicazione web.
Ho un'applicazione web (Rails + heavy JS) che analizza i metadati dalle pagine HTML recuperate tramite un URL fornito dall'utente (pensa Pinterest o Instapaper). Attualmente questa elaborazione avviene esclusivamente sul lato client. Il codice che recupera l'URL e analizza il DOM si trova in un insieme abbastanza grande di script JS nella nostra app Rails.
Occasionalmente desideri eseguire questa elaborazione sul lato server dell'app. Ad esempio, cosa succede se un utente ha fornito un URL ma hanno disabilitato JS o hanno un browser non standard compatibile, ecc. Idealmente mi piacerebbe essere in grado di elaborare questi URL in Ruby sul back-end (nei processi in background asincroni forse) usando la stessa logica usata dai nostri parser JS SENZA portare il JS in Ruby.
Ho esaminato i sistemi che consentono di eseguire script JS nel backend come execjs così come Ruby-to- Compilatori Javascript come OpalRB che si spera possano consentire "scrivere una sola volta, eseguirne molti", ma non sono sicuro che sia la decisione giusta.
Qual è il modo migliore per evitare la duplicazione della logica aziendale per le app che devono eseguire sia l'elaborazione lato client che quella lato server di dati simili?