Quantità di ore uomo per scrivere un social network [chiuso]

3

Ho grandi sogni di scrivere il prossimo Facebook (irrealistico lo so) e sono in fase di progettazione mentre parliamo e sto morendo e sto pensando di usare un framework php per questo e quante ore di sviluppo sarebbe effettivamente salvami Se qualcuno? Inoltre, è irrealistico che una persona maneggi un intero social network da solo? Qual'è la più grande applicazione che qualcuno abbia mai scritto da solo? Devo anche sottolineare che ho un lavoro diurno, quindi è notte e sera tardi. E partner in gravidanza da affrontare:)

    
posta benhowdle89 26.01.2011 - 00:38
fonte

7 risposte

12

In qualche modo, penso che scrivere una webapp non sia la preoccupazione principale.

Molto più importante è pensare a come rendere quella dannata cosa che guadagna la trazione .

Oltre a questo, probabilmente la tua domanda non ha molto senso. Scrivere qualcosa di così complesso e grande come Facebook non è qualcosa che puoi fare da solo, e sono abbastanza sicuro che nessuno abbia le risorse per iniziare così in ogni caso, anche senza un giorno di lavoro e prole e roba.

    
risposta data 26.01.2011 - 00:49
fonte
10

I'm umming and ahing about using a php framework for this and how many development hours it would actually save me. If any?

Il mio istinto su questo è no - semplicemente perché hai detto che il "prossimo Facebook" e la natura di un social network sono molti, molti utenti. Se stavi mettendo insieme un team per farlo, e hai assunto un CTO che valeva qualcosa, e hai chiesto quale framework PHP (se esiste) dovrebbe essere usato, ti direbbe di eseguire il backup e di considerare quale linguaggio dovrebbe anche essere usato. La lingua deve essere:

  • Popolare. Se diventerai il prossimo Facebook, avrai bisogno di molti sviluppatori. Facebook riferito ha circa 500 .
  • Scalabile. Quasi qualsiasi lingua può essere scalabile - se hai il know-how per pasticciare con la parte interna . Questo articolo parla di come Facebook scrive estensioni PHP in C ++, ha riscritto parti di Zend Engine e alla fine ha scritto un compilatore che trasforma PHP in codice C ++ e poi lo compila.

Se hai bisogno di una scala come questa, è improbabile che qualsiasi framework ti possa aiutare a meno che non sia già una piattaforma di social network open source (forse), o pianifichi semplicemente di scaricarla e riscrivere tutto non appena hai poche centinaia di migliaia di utenti.

Also is it unrealistic for one person to hand code an entire social network solo?

Sì.

Ma cosa significa esattamente "un'intera rete sociale"? Quali caratteristiche avrà? Il Facebook originale era ovviamente abbastanza facile da scrivere da una sola persona. Ma ciò che è ora è stato sviluppato da team di centinaia di sviluppatori per anni:

  • Feed di notizie. estraendo dati da tutte le funzionalità dell'applicazione per centinaia di connessioni per utente, rilevandone l'importanza e mostrandole in tempo reale. Renditi conto che l'unicità per utente della pertinenza del punteggio e il numero di utenti simultanei rende il caching di qualsiasi tipo un problema follemente difficile.
  • Foto. Non solo il tuo sito di condivisione di foto in media. Come / quando vengono generate, memorizzate e pubblicate le anteprime? Che dire delle immagini a grandezza naturale? Questi devono provenire da un CDN di qualche tipo, altrimenti si sovraccaricherà rapidamente la larghezza di banda del piano medio del data center. come ci sono arrivati? Che ne pensi dell'interfaccia utente? Caricamenti multipli, immagini non valide, editing dal vivo (rotazione, ecc.)? Che dire dei tag?
  • Autorizzazioni. Questa è una bestia. Solo i concetti architettonici da soli, e tanto meno la codifica in un modo che non mette giù i tuoi server la prima volta che hai bisogno di un controllo complicato (Tutti i messaggi a muro e le foto e i commenti che posso vedere da un amico di un amico). Su Facebook, non solo ogni categoria di dati può avere permessi personalizzati, ma anche quasi tutti i post possono! Alla fine, l'interfaccia utente deve anche sapere in anticipo quali saranno le autorizzazioni in modo da non presentare all'utente collegamenti non validi.
  • Premio . Se pensavi che il grafico che hai creato con le connessioni degli amici fosse folle, ora estendilo alla possibilità per ognuno dei tuoi utenti di "piacere" su Internet. Crea un'API completa per questo e consenti ai proprietari di contenuti di accedere a Facebook dopo il fatto e accedi alla pagina creata da questi dati.
  • E così via ... Troppe altre funzioni da nominare.

Whats the largest application anyone has written on their own?

Impossibile sapere, ma garantisco che se ci sono riusciti, non erano da soli per molto tempo. Se hai successo, avrai bisogno di più mani per continuare a costruire.

I should also point out that I have a day job, so late nights and evenings it is. And pregnant partners to deal with :)

Buona fortuna:)

    
risposta data 26.01.2011 - 01:45
fonte
3

Scrivere un social network funzionale che la gente vorrebbe davvero utilizzare richiederebbe molte migliaia di ore. Probabilmente 10.000 al minimo.

Avere 5 programmatori che lavorano a tempo pieno per 1 anno consumerebbe 10.000 ore di lavoro. Facebook, ad esempio, molto probabilmente ha richiesto molte più volte quello per i suoi primi due anni di funzionamento.

    
risposta data 26.01.2011 - 00:48
fonte
3

Quindi praticamente il numero di ore uomo di whatsisname è giusto, anche se forse anche un po 'basso. Facebook, secondo Wikipedia:

Facebook has over 1,700 employees, and offices in 12 countries.

Un lotto di ore uomo è andato su Facebook come lo vedi.

Detto questo, due cose:

  1. Sembra che il sito di lancio originale abbia impiegato circa un mese per scrivere. Tuttavia , qualcosa che richiede un mese per un genio della programmazione che aveva programmato per 12 anni (wikipedia, di nuovo). Qualcuno con meno esperienza o talento richiederebbe molto più tempo

  2. Lo stato dell'arte è avanzato dal 2002, molto. Abbiamo cose come SocialEngine (PHP) , Pinax (Python) e CommunityEngine (Ruby) . Migliaia di ore sono già passate allo sviluppo di questi framework, quindi ti risparmierai una quantità significativa di tempo usando cose che le persone hanno già scritto. Perché, a meno che qualcosa non sia davvero speciale per la funzionalità "gli utenti dovrebbero essere in grado di inviare messaggi agli utenti", risparmierai tutto il tempo che dedicheresti a scrivere la funzionalità di messaggistica ... e questo è solo un piccolo angolo del sito.

  3. Ci sarà ancora molto lavoro. L'uso di un framework velocizzerà molto questo processo - anche solo la scrittura in un database può essere fastidiosamente frustrante senza un framework ... ma anche oltre i normali framework web e le strutture che ho elencato sarà la salsa segreta che fa preoccupare tutti del tuo sito. Forse è il design, forse è una funzionalità di wizbang, forse fai le cose in modo diverso ... ma quel fattore di differenziazione richiederà ancora tempo.

risposta data 26.01.2011 - 01:17
fonte
3

Per ottenere un esempio recente di uno sforzo di creazione di social network, dovresti dare un'occhiata al progetto della rete sociale della diaspora , che è un open fonte, social network decentralizzato e social network.

Riguardo all'aspetto uomo-ora, penso che abbiano iniziato intorno a maggio, l'anno scorso e abbiano appena raggiunto la fase Alpha, con 4 sviluppatori principali e 200.000 US $ di donazione. Puoi anche dare un'occhiata al loro lavoro su Github e vedere il numero di contributori attivi.

Solo contando 4 sviluppatori principali che hanno probabilmente già investito almeno 7.000 ore uomo e sono lontani dal completamento, quindi penso che la stima di 10.000 ore uomo suona il nome ragionevole per ottenere qualcosa di base, secondo lo standard oggi funzionante.

E stanno anche cercando di essere The Next Facebook .

    
risposta data 26.01.2011 - 16:47
fonte
1

Se avessi intenzione di scrivere il prossimo social network, inizierei considerando di non utilizzare affatto il codice lato server. Lo farei in HTML5 e invitare solo persone abbastanza intelligenti da usare browser in grado di interpretarlo pienamente.

Se scrivi la sceneggiatura sul sequel del Social Network, ti preghiamo di includere la parte in cui ti ho citato in giudizio per aver preso questa idea che ti ho dato su programmers.SE e mi hai dato una somma di denaro non divulgata superiore a 65 milioni dollari.

Oops, ho dimenticato di rispondere alla domanda.

Ci vorranno circa una settimana e non ci sono problemi di sicurezza.

    
risposta data 26.01.2011 - 18:01
fonte
0

Scrivere un sito di chat e dichiararlo social network non è difficile né molto sforzo di codifica. Centinaia di programmatori lo stanno facendo in questo momento, e tutti non riusciranno a ottenere la trazione, indipendentemente da quante caratteristiche siano codificate o quanto elegante sia.

Non esiste una base di utenti da guadagnare a meno che non sia possibile creare una solida interfaccia tecnica e di usabilità su Facebook. Questo è uno sforzo di codifica che pochi sono in grado di eseguire e alcuni non riescono a predisporre l'implementazione del proxy (Diaspora) per creare una rete di fatti

.

A proposito, potrebbero esserci gruppi di destinatari più semplici rispetto agli utenti di Facebook. (Anche se probabilmente non ho il diritto di commentare, dal momento che ho memorizzato nella cache in / etc / hosts come 127.0.0.5 da quando sono apparsi quei pulsanti di tracciamento.)

    
risposta data 26.01.2011 - 04:58
fonte