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:
- registro activo del paciente.
- autenticación con diferentes roles (por ejemplo, paciente, enfermera, dr)
- horario de citas (incluye calendario para vacunaciones / cirugías programadas, etc. con un recordatorio)
- Permitir al médico crear sus propios complementos.
- 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: -
- Primera base de datos.
Comencé creando todas mis tablas que necesitaré.
- 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):
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?
fuente
Respuestas:
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!
fuente
Pasos / etapas para el diseño del flujo de trabajo del sitio web
Recursos detallados
fuente
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:
fuente