2011-01-04 32 views
8

No es una pregunta tan caprichosa como cabría esperar - Si tiene un desarrollador web promedio (diremos que su nombre es "Bob") con una buena cantidad de php/mysql/jquery/Conocimiento de ajax/etc en su haber, y quería recrear desde cero un sitio tan dinámico y complejo como SO, cuáles son algunas de las mejores prácticas y cuánto tiempo (horas o días) esperaría que tardara en llegar a una beta bastante estable?Consejos para construir un sitio como stackoverflow

Pregunto porque estoy trabajando en la construcción de un sitio (ciertamente diferente, pero la carga de trabajo imagino que terminará siendo comparable), y parece que tardará una eternidad. Ha pasado alrededor de un mes trabajando no menos de unas pocas horas por noche y está llegando, pero el desarrollo parece escalar exponencialmente. Cada nueva idea o botón genera una amplia gama de otros proyectos de trabajo.

Intento utilizar bibliotecas prefabricadas y proyectos de código abierto cuando puedo, y he estudiado el uso de CMS como Drupal/Joomla, pero sinceramente muchos de los sitios personalizados son, bien personalizados, que usan un CMS visual solo parecía detenerme.

Al ser un tipo de persona de cheque a sueldo, no podía pagarle a otra persona para que me ayudara, así que más allá del trabajo voluntario, estoy menos por mi cuenta aquí para hacer el sitio. (Tenemos una comunidad microscópica de probadores dispuestos)

Porque lo sé, porque no estamos planeando cobrar ninguna tarifa, he estado construyendo el sitio encima de PHPBB3. (proporciona al usuario registro/autenticación, una API de base de datos más funciones para seguridad y un sistema de plantillas completo y una plétora de otras características ... Ah, y un FORO, heh.)

Utilizo bibliotecas como jQuery + UI para las interacciones del lado del cliente.

Intento hacer las cosas lo más modulares posible, así que si tengo que volver a cablear todo esto no será una tarea terrible, pero me preocupa que mi falta de experiencia en grandes proyectos como este va a ser fatal para el el éxito del sitio.

¿Qué lecciones pueden ofrecer las personas que han estado aquí y qué tipo de línea de tiempo debería esperar ver aquí?

+6

Tenga en cuenta que usar todas estas fantásticas piezas de código abierto y fusionarlas puede llevar más tiempo que crear exactamente lo que necesita (y no más) desde cero. Si lo construiste, solo tiene tus errores y características. Expandirlo será mucho más fácil si conoces cada línea de código. – mvds

+0

use control de versiones. contrata qa (más específicamente piratas informáticos) para hackear la mierda de tu proyecto. prácticas recomendadas de mejores prácticas de mejores prácticas. no lo construya encima del proyecto de otra persona (esto probablemente le ocasionará dolor de cabeza algún día). – dqhendricks

+0

Replicar Stackoverflow no es difícil (la interfaz de usuario y las herramientas de soporte tal vez). Pero su problema realmente podría radicar simplemente en basarlo en PHPBB. No me puedo imaginar que esto ayude mucho, en particular, el código de registro de usuario es algo anticuado y no muy abierto o de perfil temporal. También echa un vistazo a [clones de stackoverflow de fuente abierta] (http://meta.stackexchange.com/questions/2267/stack-overflow-clones) antes de comenzar desde cero. – mario

Respuesta

10

pero el desarrollo simplemente parece escalar exponencialmente. Cada nueva idea o botón genera una gama completa de otros proyectos de trabajo

Esto es lo que está causando que tome para siempre. Necesitas una o dos cosas, preferiblemente ambas.

  1. Calcule el conjunto de características que desea y deténgase allí. Resista el impulso de expandir su carga de trabajo con cada nueva idea. Es difícil, lo sé.
  2. Si no puede administrar el n. ° 1, necesita aún más. Release quickly and iterate. Es mejor hacer algo que funcione, y luego considerar el resto como mejoras en lugar de características originales. Incluso si la carga de trabajo no cambia, su forma de pensar lo hará, y se sentirá mucho mejor y más motivado. Como una ventaja adicional, si tiene usuarios, lo ayudarán a descubrir qué características nuevas realmente valen la pena.
+0

Quizás sea un buen punto. –

0

Mi consejo: en lugar de construir un nuevo sitio desde cero, proponga un nuevo sitio dentro de la red Stack Exchange, en http://area51.stackexchange.com.

+0

@DennisKriechel: ¿Mejor ahora? Creo que este enlace en particular, que es inherente a Stack Exchange, no estaba sujeto a las mismas pautas de calidad que usamos para los enlaces externos: debe hablar por sí mismo, y ciertamente no va a ninguna parte. Pero he agregado algunas explicaciones para anotar mi sugerencia. –

1

No recomendaría un CMS. Recomiendo ir con un framework, tal vez algo como CakePHP o Codeigniter. Ya incluyen una gran cantidad de bibliotecas integradas y listas para ser utilizadas.Hace que las cosas vayan mucho más rápido una vez que lo dominas. Es posible que aún necesite una biblioteca JS o dos, pero siempre que use el marco tanto como sea posible, no debería tener ningún problema si se siguen las prácticas adecuadas.

Cuestiones relacionadas