2011-01-04 8 views
8

Non è una domanda estrosa come ci si potrebbe aspettare - Se si ha uno sviluppatore web medio (diremo che il suo nome è "Bob") con una discreta quantità di php/mysql/jquery/conoscenza di ajax/etc sotto la sua cintura, e volevi ricreare un sito dinamico e complesso come SO da zero, quali sono le migliori pratiche e quanto a lungo (ore o giorni) ti aspetteresti che occorresse per portarlo a una beta abbastanza stabile?Suggerimenti per la costruzione di un sito come StackOverflow

Chiedo perché sto lavorando alla costruzione di un sito (certamente completamente diverso, ma il carico di lavoro che immagino finirà per essere paragonabile), e sembra proprio che ci voglia per sempre. È stato circa un mese a funzionare non meno di poche ore a notte e sta arrivando, ma lo sviluppo sembra aumentare vertiginosamente. Ogni nuova idea o pulsante genera una serie di altri progetti di lavoro.

Cerco di utilizzare le librerie predefinite e i progetti open source quando posso, e ho cercato di utilizzare CMS come Drupal/Joomla, ma onestamente molti dei siti personalizzati sono, ben personalizzati, che utilizzano un CMS visivo sembrava solo trattenermi.

Essendo uno stipendio per tipo di stipendio di persona, non potevo permettermi di pagare qualcun altro per aiutare, quindi al di là del lavoro di volontario sono più di meno qui per creare il sito. (Abbiamo una microscopica comunità di testers volontari)

Perché lo so, perché non abbiamo in programma di addebitare alcun costo. Ho costruito il sito su PHPBB3. (fornisce la registrazione/autenticazione dell'utente, un'API del database più funzioni per la sicurezza e un completo sistema di template e una pletora di altre caratteristiche .. Oh, e un FORUM, heh.)

Io uso librerie come jQuery + UI per le interazioni lato client.

Cerco di rendere le cose il più modulari possibile, quindi se ho bisogno di ricablare tutto ciò non sarà un compito terribile, ma temo che la mia mancanza di esperienza in grandi progetti come questo sarà fatale per il il successo del sito.

Quali lezioni possono offrire le persone che sono state qui e quale tipo di calendario dovrei realisticamente aspettarmi di guardare qui?

+6

Attenzione, l'utilizzo di tutti questi fantastici open source pronti all'uso e la loro unione potrebbe richiedere molto più tempo rispetto alla creazione esattamente di ciò che è necessario (e non di più) da zero. Se lo hai creato, ha solo bug e funzionalità. Espanderlo sarà molto più facile se conosci ogni riga di codice. – mvds

+0

usa il controllo della versione. assumi qa (più specificatamente gli hacker) per hackerare il tuo progetto. best practice best practice best practice. non costruirlo sulla base di un progetto di qualcun altro (questo molto probabilmente ti darà un mal di testa un giorno). – dqhendricks

+0

La replica di StackOverflow non è difficile (l'interfaccia utente e gli strumenti di supporto forse). Ma il tuo problema potrebbe semplicemente basarti su PHPBB. Non posso immaginare che questo aiuti molto, in particolare il codice di registrazione dell'utente è un po 'oldschool e non molto OpenID o di profilo temporaneo. Controlla anche [Cloni stackoverflow open source] (http://meta.stackexchange.com/questions/2267/stack-overflow-clones) prima di iniziare da zero. – mario

risposta

10

ma lo sviluppo sembra aumentare vertiginosamente. Ogni nuova idea o pulsante genera una vasta gamma di altri progetti di lavoro

Questo è ciò che sta causando per prendere per sempre. Hai bisogno di una o due cose, preferibilmente entrambe.

  1. Calcolare il set di funzioni desiderato e fermarsi qui. Resistere all'impulso di espandere il carico di lavoro con ogni nuova idea. È difficile, lo so.
  2. Se non riesci a gestire il numero 1, allora ne hai bisogno ancora di più. Release quickly and iterate. È meglio far funzionare qualcosa, quindi considerare il resto come miglioramenti piuttosto che come funzionalità originali. Anche se il carico di lavoro non cambia, la tua mentalità lo farà, e ti sentirai molto meglio e più motivato. Come ulteriore vantaggio, se hai utenti, ti aiuteranno a capire quali nuove funzionalità sono effettivamente utili.
+0

Forse un buon punto. –

0

Il mio consiglio: invece di costruire un nuovo sito da zero, proponi un nuovo sito all'interno della rete Stack Exchange, al numero http://area51.stackexchange.com.

+0

@DennisKriechel: Meglio ora? Penso che questo particolare collegamento, inerente allo Stack Exchange, non fosse soggetto alle solite linee guida sulla qualità che useremmo per i link esterni: dovrebbe parlare da solo, e sicuramente non andrà da nessuna parte. Ma ho aggiunto qualche spiegazione per annotare il mio suggerimento. –

1

Non consiglierei un CMS. Consiglierei di andare con un framework, forse qualcosa come CakePHP o Codeigniter. Includono già una tonnellata di librerie integrate e pronte per essere utilizzate.Rende le cose molto più veloci una volta capito. Potresti avere ancora bisogno di una libreria JS o due, ma se usi il framework il più possibile, non dovresti avere problemi se vengono seguite le pratiche corrette.

Problemi correlati