2011-01-04 3 views
8

Pas aussi fantaisiste qu'une question - Si vous avez un développeur web moyen (nous dirons que son nom est "Bob") avec une bonne quantité de php/mysql/jquery/connaissances ajax/etc à son actif, et vous vouliez recréer un site aussi dynamique et aussi complexe que SO à partir de zéro, quelles sont les meilleures pratiques, et combien de temps (heures ou jours) voulez-vous qu'il prenne pour l'obtenir une bêta assez stable? Je demande parce que je travaille sur la construction d'un site (certes complètement différent, mais la charge de travail que j'imagine sera comparable), et il semble que cela prenne une éternité. Cela fait à peu près un mois que ça marche, pas moins de quelques heures par nuit et ça arrive, mais le développement semble juste augmenter de façon exponentielle. Chaque nouvelle idée ou bouton engendre toute une série d'autres projets de travail. J'essaie d'utiliser des bibliothèques pré-faites et des projets open source quand je le peux, et j'ai regardé en utilisant des CMS comme Drupal/Joomla, mais honnêtement, beaucoup de sites personnalisés sont, bien sur, en utilisant un CMS visuel semblait juste me retenir. En tant que personne chèque de paie, je ne pouvais pas me permettre de payer quelqu'un d'autre pour aider, donc au-delà du travail bénévole, je suis moins seul pour faire le site. (Nous avons une communauté microscopique de testeurs volontaires)Astuces pour construire un site comme stackoverflow

Parce que je le sais, parce que nous ne prévoyons pas de facturer des frais, j'ai construit le site au-dessus de PHPBB3. (fournit l'enregistrement d'utilisateur/authentification, une API de base de données plus des fonctions pour la sécurité et un système complet de modèle et une pléthore d'autres caractéristiques .. Oh, et un FORUM, hein.)

J'utilise des bibliothèques comme jQuery + UI pour les interactions côté client. J'essaie de rendre les choses aussi modulaires que possible, donc si j'ai besoin de recâbler le tout ce ne sera pas une corvée terrible, mais je crains que mon manque d'expérience dans des projets majeurs comme celui-ci va être fatal à la succès du site.

Quelles leçons les gens qui ont été ici peuvent-ils nous donner, et à quel genre d'échéancier devrais-je m'attendre de manière réaliste?

+6

Méfiez-vous du fait que l'utilisation de toutes ces fabuleuses pièces opensource prêtes à l'emploi et leur fusion peut prendre plus de temps que de construire exactement ce dont vous avez besoin (et pas plus) à partir de zéro. Si vous l'avez construit, il n'a que vos bugs et fonctionnalités. L'expansion sera tellement plus facile si vous connaissez chaque ligne de code. – mvds

+0

utilisez le contrôle de version. embaucher du qa (plus spécifiquement des hackers) pour pirater la merde de votre projet. Meilleures pratiques Meilleures pratiques Meilleures pratiques. ne le construisez pas sur le projet de quelqu'un d'autre (cela vous donnera probablement un mal de tête un jour). – dqhendricks

+0

Répliquer Stackoverflow n'est pas difficile (l'interface utilisateur et les outils de support peut-être). Mais votre problème pourrait bien simplement se baser sur PHPBB. Je ne peux pas m'imaginer que cela aide beaucoup, en particulier le code d'inscription de l'utilisateur est un peu oldschool et pas très OpenID ou au profil temporaire. Consultez également [Open source stackoverflow clones] (http://meta.stackexchange.com/questions/2267/stack-overflow-clones) avant de commencer à partir de zéro. – mario

Répondre

10

mais le développement semble juste augmenter de façon exponentielle. Chaque nouvelle idée ou bouton engendre toute une série d'autres projets de travail

C'est ce qui en fait prendre une éternité. Vous avez besoin d'une ou deux choses, de préférence les deux.

  1. Déterminez votre jeu de fonctions souhaité et arrêtez-vous là. Résistez à l'envie d'élargir votre charge de travail avec chaque nouvelle idée. C'est difficile, je sais.
  2. Si vous ne parvenez pas à gérer # 1, vous en avez encore plus besoin. Release quickly and iterate. Il est préférable de faire quelque chose qui fonctionne, et ensuite considérer le reste comme des améliorations plutôt que des fonctionnalités originales. Même si la charge de travail ne change pas, votre état d'esprit sera, et vous vous sentirez beaucoup mieux à ce sujet et plus motivé. En plus, si vous avez des utilisateurs, ils vous aideront à déterminer quelles sont les nouvelles fonctionnalités qui en valent la peine.
+0

Peut-être un bon point. –

0

Mon conseil: au lieu de créer un nouveau site à partir de rien, proposez un nouveau site au sein du réseau Stack Exchange, au http://area51.stackexchange.com.

+0

@DennisKriechel: Mieux maintenant? Je pense que ce lien particulier, inhérent à Stack Exchange, n'était pas soumis aux mêmes directives de qualité habituelles que nous utilisions pour les liens externes: il devrait parler d'lui-même, et il ne va certainement pas aller nulle part. Mais j'ai ajouté quelques explications pour annoter ma suggestion. –

1

Je ne recommanderais pas un CMS. Je recommande d'aller avec un framework à la place, peut-être quelque chose comme CakePHP ou Codeigniter. Ils comprennent déjà une tonne de bibliothèques intégrées et prêtes à être utilisées.Rend les choses beaucoup plus rapides une fois que vous avez compris. Vous pouvez toujours avoir besoin d'une bibliothèque JS ou de deux, mais tant que vous utilisez le framework autant que possible, vous ne devriez pas avoir de problème si les bonnes pratiques sont suivies.

Questions connexes