Quale set di abilità dovrebbe avere un ingegnere per costruire un grande sito di social networking? [chiuso]

6

Sto cercando di costruire un sito di social media, ma ho bisogno di un ingegnere / architetto senior per guidarmi e assistermi nello sviluppo sul lato server da quando sono un debuttante.

La tecnologia (di cui sono famoso) da utilizzare include Java, JAX-RS, Spring e Hibernate. Sfortunatamente, non so quali altre competenze tecnologiche un ingegnere / architetto dovrebbe avere oltre a quelle sopra menzionate?

Il SNS che sto cercando di costruire è come Facebook che può guidarti in termini di funzionalità e funzionalità.

    
posta katie 04.05.2011 - 10:08
fonte

3 risposte

6

Inizia con un piccolo prototipo ospitato su un provider cloud (IAAS se sei sicuro delle tue capacità di amministratore di sistema, altrimenti un provider PAAS). Avere un sacco di utenti 'È un bel problema da avere', ma non ottimizzarlo troppo presto, potresti essere sorpreso da dove sono i tuoi punti di dolore della bilancia e dove non lo sono.

Se stai utilizzando lo stack Java, ti consiglio di utilizzare JMeter e alcuni test in stile BDD / ATDD per sondare la tua dimostrazione del concetto per vedere dove potrebbero essere i punti di dolore della bilancia.

Sarei un po 'più flessibile nelle tue scelte tecnologiche, ti stai limitando a ciò che conosci attualmente (e credimi, Hibernate o qualsiasi altro ORM ti rallenterà su larga scala). È Horses per i corsi e alcuni di quelli che hai elencato sopra potrebbero non essere appropriati in fondo alla strada.

È necessario un ingegnere che abbia dimestichezza con architetture distribuite e di messaggistica che conoscono anche i paradigmi di programmazione dello sviluppo multi-thread / concurrent. Sembra anche che tu abbia bisogno di un ingegnere che rally capisca i protocolli web e come progettare una soluzione basata sul web che sia efficiente e ben bilanciata tra client e server.

Questi tipi di ingegneri sono molto difficili da trovare (devi solo guardare Google e altri che combattono per assumerli). Quindi potresti scoprire che dovrai imparare molto da te, ma è tutto parte del divertimento giusto! : D

    
risposta data 04.05.2011 - 11:42
fonte
3

fammelo mettere nella forma più semplice:

"Non ridimensiona fino a quando non riesci"

Pensa a KISS e YAGNI . Quando inizi a servire più del tuo attuale sistema puoi sostenere che è quando ridimensioni, non prima.

    
risposta data 04.05.2011 - 11:39
fonte
2

Per giocare con l'avvocato del diavolo e per dare voce alle persistenti preoccupazioni che io e gli altri potremmo avere con alcune delle altre risposte, direi:

"Scala PRIMA di fallire

... ma non troppo prima "

Quando un sito Web è in fase di avvio, è fondamentale che gli utenti non sperimentino esperienze negative da un grave errore tecnico. I primi 1000 utenti possono essere i più difficili da ottenere, ma se il tuo sito è inattivo da un paio di giorni (in particolare un sito di social network) perderai gli utenti a un ritmo allarmante. Il fallimento non è davvero un'opzione. Detto questo, i rallentamenti e simili non sono una condanna a morte, quindi direi costruire le cose il meglio che puoi con le tecnologie con le quali ti senti più a mio agio all'inizio, ma quando vedi le cose iniziare a picchiare, cerca in modo aggressivo un ingegnere che ha qualche esperienza con questo genere di cose. Usa qualsiasi tecnologia scelga e impara il meglio che puoi. Se le cose esplodono davvero, probabilmente non scriverò comunque un bel po 'di codice.

    
risposta data 04.05.2011 - 15:16
fonte

Leggi altre domande sui tag