2009-06-28 12 views
11

Estoy buscando para empezar a trabajar en una aplicación web y estoy casi hecho con la especificación funcional:pasos del proyecto de diseño de aplicaciones web/programación

¿A dónde voy ahora?

  • ¿Empiezo a trabajar en la creación del html y css?
  • ¿Empiezo a crear el cuerpo de código del back-end ? (configurando validación del correo electrónico en el servidor y funciones de entrada de datos en la base de datos)
  • ¿Comienzo a trabajar en el scripting del lado del cliente? (javascript/jquery)
  • ¿Comienzo a trabajar en la estructura de la base de datos?

¿Existe un orden de mejores prácticas para estas cosas?

Gracias!

+0

¡Vaya! Tal vez debería haber especificado que este es un * proyecto personal *. No hay cliente(¡Ojalá llegue a un público amplio cuando esté listo!) – Tyler

+1

Eso solo significa que usted es el cliente (o su audiencia). Si se trata de un proyecto personal serio, trátelo como tal. Obtendrá una gran cantidad de información sobre cómo ejecutar otros proyectos y su proyecto será mucho mejor. Trabaje en la interfaz de usuario y muéstresela a algunos amigos, incluso encontrará cosas que quiera cambiar una vez que trabaje en un diseño. – Luis

Respuesta

5

De acuerdo, ha creado una gran especificación. Ahora es el momento de expandir esa "descripción" en maquetas funcionales de la interfaz de usuario.

¿Por qué?

Una especificación dice lo que una aplicación "debería" hacer. Incluso puede ser muy detallado al respecto. Pero las interfaces de usuario completas dicen exactamente lo que una aplicación "realmente hace". Después de todo, ¿realmente les importa a los usuarios lo que está debajo del capó?

En nuestra experiencia, encontramos que los proyectos que tienen la interfaz de usuario diseñada y refinada (html válido por ejemplo) ANTES de que se aplique la funcionalidad van juntos varias veces más rápido y más eficientes que los demás.

  • Una especificación puede contener solamente un pequeño porcentaje de los detalles reales que se ejecutan en la hora de implementar una aplicación .
  • Una interfaz de usuario funcional puede cubrir casi todos los detalles reales con los que se encuentra al implementar una aplicación, en una fracción del tiempo de realmente haciéndolo funcionar.

Una vez que el cliente/interesado está satisfecho con la interfaz de usuario, entonces es una ruta rápida para conectar la funcionalidad.

Y una IU funcional no es un trabajo pequeño. Tal vez incluso el 20-40% del trabajo podría gastar haciendo eso.

-

dicho todo esto, no pierda el tiempo haciendo que todo bastante - sólo se centran en las interfaces muy fácil de utilizar. Una persona de gráficos puede venir más tarde y hacerlo bonito mientras está ocupado haciendo que funcione.

+0

+1 para enfocarse en la interfaz de usuario a través de maquetas/guiones gráficos con la parte interesada para garantizar que la aplicación que crea proporciona claramente el beneficio para el usuario final. – condiosluzverde

0

Dos de las opciones más populares son Desarrollo impulsado por dominio y Desarrollo impulsado por prueba. En términos generales ...

En el Desarrollo Dirigido por Dominio, usted podría comenzar trazando la organización lógica del esfuerzo de desarrollo en un modelo que pueda usarse para programar en contra.

En Test Driven Development, usted comenzaría escribiendo pruebas unitarias que se alineen con casos de uso específicos. A continuación, agrega funcionalidades incrementales, ya que los casos de uso se superponen y, finalmente, satisfacen todos los requisitos. A los entusiastas de TDD les gusta este enfoque porque su mentalidad es codificar solo lo que es necesario para lograr el objetivo actual y finalmente tendrá una mejor base de código.

Afortunadamente esto le da dos caminos diferentes para mirar, buena suerte.

3

La respuesta es Depende.

Depende de si necesita o no a su cliente a firmar en el aspecto y la sensación antes de empezar a trabajar; depende si las maquetas formaron parte de esa apariencia. Depende de sobre la rapidez con la que debe someterse a prueba un prototipo delante de su cliente.

No importa en qué empieces a trabajar, Depende de cuál es tu situación específica.

Si eres un defensor de Domain Driven Design, entonces tienes un punto de partida específico. Si eres un defensor de Test Driven Development, entonces también tienes un punto de partida específico. De hecho, no importa su software religion, es probable que tenga un punto de partida.

Aquí está mi respuesta: Comience donde puede obtener el máximo rendimiento de su inversión. Si son datos pesados, empiezo allí, ya que todo depende de eso.

+1

+1 para la aprobación de la apariencia del cliente – blu

4

La respuesta es: todo lo anterior. (Por ejemplo, HTML/CSS, del lado del servidor, base de datos de secuencias de comandos del lado del cliente, etc.)

Sin embargo, sólo la menor cantidad posible de cada uno de aquellos requeridos para obtener la característica individual más simple en realidad trabajan.

Según su pregunta, parece que nunca antes ha hecho una aplicación web. Eso está bien, y su pregunta es buena, ya que recuerdo que encontrar mi primera aplicación web fue bastante desalentadora.

Para comenzar a usar esta mejor práctica, recomiendo iteraciones cortas/ajustadas, donde cada iteración produce código de trabajo terminado.

Aquí es una simple descripción de este proceso, por mi experiencia:

  • dejar de trabajar en su especificación funcional - déjela a un lado, y mantenerlo - es un trabajo importante.
  • Elija 1 función ... hágala la característica más simple en su especificación como lo es ahora.
    • creo que ha de ser: para mostrar la versión más simple posible de su página de inicio
  • empezar a trabajar en todo lo que se necesita para hacer que su página de inicio súper simple en realidad funciona.
  • Para que funcione esta 1 página, tendrá que aprender un poco sobre cada parte de su pila, excepto tal vez la base de datos, eso está bien, puede continuar en una iteración posterior.
  • Elegir las herramientas en su pila ...
    • desarrollo de la máquina/medio ambiente (por ejemplo, Linux/Apache/PHP, o ventanas/IIS, asp.net, etc.)
    • si usted no sabe su stack, pídales a sus amigos o colegas que lo recomienden.
    • encontrar un tutorial sobre el desarrollo del lenguaje (php, asp.net, Javascript/jQuery) - hay un montón de tutoriales en línea - sólo Google para ellos
  • Siguiendo los tutoriales y/o hacer preguntas específicas sobre el SO y/o SF, instale sus herramientas/plataforma, y ​​obtenga un ejemplo de tutorial para trabajar.
  • Una vez que tenga confianza, comience a limpiar y desarrolle su súper simple página de inicio.
  • Ahora ... regrese a su especificación funcional y elija la siguiente característica más simple, tal vez una que involucre la base de datos.
  • Repite los pasos anteriores, selecciona tus herramientas y aprende a usarlas con un tutorial, luego pasa a implementar tu característica simple real.
  • Después de haber hecho algunas funciones simples, digamos 3 por ejemplo, revise su especificación funcional y vea si necesita una actualización basada en lo que ha aprendido haciendo las 3 primeras funciones.
  • Revise su código de sus primeras 3 características, ¿aprendió algo desde que comenzó? ¿Hay alguna razón para refactorizar o limpiar? Si es así, haga 1 paso en la limpieza/refactorización.
  • Una vez que esté satisfecho con sus 3 funciones simples, vuelva a su especificación y elija otra característica y/o agregue más sofisticación a una función existente.

Cada ciclo descrito anteriormente es una iteración, manténgalos cortos y siempre termine con código de trabajo que podría enviar potencialmente, si su aplicación solo requería esa característica pequeña.

No inventé el proceso anterior, se llama Scrum. Aunque en realidad no necesita saber nada más de lo que he descrito anteriormente para comenzar, puede leer más al respecto (en su tiempo libre, o tal vez no hasta que haya completado 5 funciones simples) aquí:

wikipedia entry on scrum

Tenga en cuenta que cada iteración probablemente será necesario que para aprender un poco y crear un poco de cada una de las partes componentes que usted describe más arriba: HTML/CSS, código del lado del servidor, bases de datos, etc.

Por lo tanto, lo que hará "primero" es implementar la característica más simple posible, utilizando la menor cantidad de codificación necesaria para que funcione esa característica.

Buena suerte.

Cuestiones relacionadas