¿Cómo diseñar el flujo de trabajo del sitio web?


18

He estado pensando en esto durante mucho tiempo sin llegar a una respuesta óptima.

En primer lugar, soy un médico que ama la programación pero nunca la estudió, excepto por el aprendizaje en el hogar y muchos años jugando con el código en mi tiempo libre.

Actualmente estoy tratando de construir un pequeño proyecto para administrar mi clínica, para hacerlo comencé creando una lista de opciones que quiero poder hacer.

Ejemplo:

  1. registro activo del paciente.
  2. autenticación con diferentes roles (por ejemplo, paciente, enfermera, dr)
  3. horario de citas (incluye calendario para vacunaciones / cirugías programadas, etc. con un recordatorio)
  4. Permitir al médico crear sus propios complementos.
  5. tablero de instrumentos para que el médico vea sus estadísticas

Luego comencé con codeigniter / mysql / php / jquery y comencé a codificar.

Mis pasos durante el desarrollo: -

  1. Primera base de datos.

ingrese la descripción de la imagen aquí

Comencé creando todas mis tablas que necesitaré.

  1. Creé todos mis modelos para manejar estas tablas (1 modelo maestro que maneja lectura / escritura / actualización / verificación básicas mientras considera las relaciones de mi tabla

Después de eso empiezo a codificar mis vistas y controladores. Primero creé HTML de vista, luego creé un controlador que manejará esta vista, y comencé a codificar funciones para que las interacciones de vista funcionen.

Ejemplo al codificar la vista de cita (controlador booking.php):

ingrese la descripción de la imagen aquí

creó este diseño e hizo clic en la tabla td, cuando el usuario hace clic: jquery get (booking / add_patient_form) y lo abre

cuando el usuario guarde: publique en la reserva / guarde: guarde la cita y luego vuelva a cargar la función index ()

etc. y continué los mismos pasos para crear una vista y luego su controlador, que contiene toda la lógica que esta vista necesitaba, para llevar a cabo todo el proyecto.

Al final, todas mis funciones objetivo funcionaban bien, pero dado que no había un PLAN desde el principio y como todo el proyecto fue una tormenta de ideas y depuración sin ningún plan, después de haber llegado tan lejos en este proyecto, encuentro mi ¡atrapado con facilidad de mantenimiento y flexibilidad! e incapaz de vincularlos juntos.

¡Tengo la sensación de que cada página del sitio web está completamente aislada de la otra y ni siquiera puedo recordar cómo se carga cada página y qué funciones hay dentro sin mirar!

¿Hay alguna forma de recuperar esto y obtener un diseño?


55
Por lo general, saco una hoja de papel grande (A3 o más grande) y un bolígrafo y comienzo a dibujar diagramas de flujo hasta que descubrí el 'flujo de trabajo' completo de la funcionalidad en el sitio web, así como las estructuras de la base de datos. Después de eso, obtendré otro pedazo de papel y resolveré algunos wireframes realmente básicos. A partir de ahí es la codificación 'solo' y un poco de diseño gráfico. Agregaré toques finales y detalles después de que todo esté hecho. Los diagramas de flujo hacen que sea realmente fácil averiguar dónde coloca qué función y, por ejemplo, qué variables obtiene de qué ubicación.

3
Aún mejor con una pizarra blanca grande y ancha;) +1 @LuudJacobs. Sabe mejor que nadie cómo debe ejecutarse su proceso de clics, de qué entidades y funciones deben aparecer cada vez y qué datos desea buscar con mayor frecuencia, qué datos no necesita tanto (rara vez). Si quieres mantener la historia o no y dónde de qué. Después de haber dibujado un par de diagramas de entidad, lo llevará a un lugar en el que se sentirá bien y se asegurará de que las herramientas (base de datos) que elija puedan satisfacer sus necesidades hoy y mañana sin muchas solicitudes de cambio :)
bonCodigo

@LuudJacobs bien, gracias :), pero intenté hacerlo, agarré una pizarra e imprimí mi esquema de db y ... ¡no pude dibujar nada! Supongo que no sé cómo debería verse un diagrama de flujo. Trataré de buscar en Google por ejemplos. si tiene algún diagrama de flujo de un proyecto real, me encantaría ver eso
Zalaboza

+1 @bonCodigo: una pizarra es una mejor opción, ya que a) tiene más espacio para trabajar yb) es fácil de borrar. Aquí hay una búsqueda en Google con algunos ejemplos de diagramas de flujo. Un buen software para hacer diagramas de flujo incluye MS Visio y para Mac OmniGraffle

Para un médico, ha hecho un trabajo admirable con esto, especialmente dado que ha elegido el Nickleback de los lenguajes de programación para trabajar.
Robert Harvey

Respuestas:


6

Su pregunta, ¿cuál es el proceso para desarrollar una pieza de software? Es un tema muy debatido; simplemente google "metodología de software" para ver qué tan profundo va esta lata de gusanos ...

No hay una respuesta comúnmente aceptada. De hecho, si le preguntas a 5 programadores, obtendrás 7 respuestas, en mi experiencia.

Recomiendo comprar el "Código completo" de Steve McConnell para ver las prácticas de codificación de nivel inferior: cosas como cómo diseñar su código, cómo comentarlo, cómo probarlo. Recomendaría "Diseño controlado por dominio" de Eric Evans para obtener una descripción general de cómo estructurar aplicaciones a nivel arquitectónico. Recomiendo "Desarrollo de software ágil: principios, patrones y prácticas" de Robert Martin como una descripción general de cómo "hacer crecer" el software a lo largo del tiempo, manteniendo la calidad.

Es probable que otro desarrollador rechace todos estos libros y le indique UML, Rational Unified Process y generación de código. ¡No hay una respuesta correcta!


Para ilustrar el punto de Neville K sobre diferentes respuestas, dejó un buen recurso para diseñar las interacciones del usuario final, que es donde me gusta comenzar. ;-)
Eric G

1

0

Le aconsejaría que mantenga la estructura de la base de datos y genere un nuevo código PHP con PHP Generator for MySQL creado por la compañía SQL Maestro . Realmente funcionó para mí. Lo uso mucho y estoy muy contento con él, especialmente la posibilidad de ajustar el código PHP a mis propias necesidades. Además, incorporan las nuevas funciones solicitadas en sus actualizaciones y tienen buenos tutoriales sobre cómo modificar el código. Para comprender mejor, eche un vistazo a este proyecto de demostración .

En su sitio web se proporciona la siguiente descripción del producto:

PHP Generator for MySQL es una interfaz GUI de MySQL que le permite generar scripts PHP de alta calidad para las tablas, vistas y consultas seleccionadas para seguir trabajando con estos objetos a través de la web. Las características clave incluyen:

  • Gestión de datos: agregar, editar, eliminar y copiar registros
  • Personalización de la apariencia HTML
  • Habilidades de filtrado y clasificación.
  • Protección de datos con muchas configuraciones de seguridad
  • Presentaciones maestras detalladas
  • Gestión de contenido basada en eventos.
  • Exportación de datos a PDF, XML, CVS, Excel y Word

PHP Generator for MySQL produce un código claro y fácil de entender que puede usarse tal cual o modificarse de la forma que necesite.

Ahorre los enormes costos de contratar a un programador, aprender cualquier lenguaje de programación o comprar un software costoso: ¡todo el código se genera automáticamente para usted!

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.