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:)