Per l'interazione con altri programmi: riga di comando, socket o qualcos'altro?

0

Sto iniziando un progetto open source per la registrazione degli orari di lavoro. L'intenzione è di costruire qualcosa di simile a Git, dove invece di spingere il codice stai spingendo le informazioni sulle ore di lavoro e sui progressi.

Intendo creare un SDK PHP per l'interazione con questo programma (e, auspicabilmente, gli SDK per altre lingue in futuro), ma non sono sicuro di come dovrei fare per renderlo possibile.

L'SDK potrebbe effettuare chiamate a system (), ma ovviamente ciò ha implicazioni di sicurezza ovvie, problemi di portabilità e non sono sicuro di quale sia il modo appropriato per farlo.

Sto anche pensando di usare una connessione socket localmente. Il mio programma di gestione del tempo agirà come un server e quindi l'SDK stabilirà una connessione come client. Questo mi sembra il migliore finora.

    
posta Eric Dubé 24.06.2016 - 03:45
fonte

1 risposta

3

Se stai scrivendo un programma per tenere traccia delle ore, non scriverlo come utility autonoma basata su comandi per una singola macchina. Non farlo. Veramente. Non farlo.

Scrivete invece un server REST con autenticazione che può essere raggiunto ovunque vi troviate tramite il nostro moderno amico, Internet. Puoi scrivere il server in PHP se vuoi, o qualsiasi altra cosa ti trovi a tuo agio. Ma REST disaccoppia gli utenti e il server. Potresti volere un'app mobile nativa dedicata per l'immissione di ore e un'app Web a singola pagina per generare periodicamente fatture e rapporti e una parte componente di un sistema più grande che tiene traccia delle ore come parte di una grande forza lavoro. Se lo scrivi bene, tutte le implementazioni possono utilizzare il tuo server.

Non pensare 'Git', pensa 'GitHub'. Scrivi il back-end REST che tutti possono utilizzare con qualsiasi front-end di cui un utente potrebbe aver bisogno. Scrivi la tua utilità per utilizzare l'interfaccia. Ma non pensare in piccolo e scrivilo per risiedere e servire una singola macchina - pensa in grande, per servire l'intero pianeta.

    
risposta data 24.06.2016 - 04:32
fonte

Leggi altre domande sui tag