Como projetar o fluxo de trabalho do site?


18

Estou pensando nisso há muito tempo, sem chegar a uma resposta ótima.

Antes de tudo, sou um médico que adora programar, mas nunca o estudou de verdade, exceto pelo aprendizado em casa e por muitos anos brincando com código no meu tempo livre.

Atualmente, estou tentando criar um pequeno projeto para gerenciar minha clínica. Para isso, comecei criando uma lista de opções que quero poder fazer.

Exemplo:

  1. registro ativo do paciente.
  2. autenticação com diferentes funções (por exemplo, paciente, enfermeiro, dr)
  3. agendamento de consultas (incluir calendário para vacinas / cirurgias agendadas etc. com um lembrete)
  4. permitir que o médico crie seus próprios plugins.
  5. painel para o médico visualizar suas estatísticas

Então eu comecei com o codeigniter / mysql / php / jquery e comecei a codificar.

Meus passos durante o desenvolvimento: -

  1. 1º banco de dados.

insira a descrição da imagem aqui

Comecei criando todas as minhas tabelas que precisarei.

  1. Criei todos os meus modelos para lidar com essas tabelas (1 modelo mestre que lida com leitura / gravação / atualização / verificação básica, considerando também minhas relações com tabelas

Depois disso, começo a codificar minhas visualizações e controladores. Primeiro criei o HTML da visualização, depois criei um controlador que manipulará essa visualização e iniciei a codificação de funções para fazer com que as interações da visualização funcionassem.

Exemplo ao codificar a visualização de compromisso (controller booking.php):

insira a descrição da imagem aqui

criou esse layout e tornou a tabela td clicável, quando o usuário clica em: jquery get (booking / add_patient_form) e abre-a

quando o usuário salva: lança na reserva / salva - salva o compromisso e recarrega a função index ()

etc .. e continuei os mesmos passos de criação da visualização, em seguida, seu controlador - que contém toda a lógica necessária para a visualização - para realizar todo o projeto.

No final, eu tinha todas as minhas funções-alvo funcionando bem, mas como não havia PLANO desde o início e como todo o projeto foi um furor de cérebro invadindo e depurando sem o que já havia sido planejado, depois de ter ido tão longe nesse projeto, auto preso com capacidade de manutenção e flexibilidade! e incapaz de vinculá-los.

Tenho a sensação de que todas as páginas do site são completamente isoladas das outras e nem me lembro como cada página é carregada e quais funções estão dentro sem espreitar!

Existe alguma maneira de recuperar isso e obter um design?


5
Normalmente, pego um pedaço grande de papel (A3 ou maior) e uma caneta e começo a desenhar fluxogramas até descobrir o 'fluxo de trabalho' completo da funcionalidade no site, bem como as estruturas de banco de dados. Depois disso, vou pegar outro pedaço de papel e elaborar alguns wireframes realmente básicos. A partir daí, é 'apenas' codificação e um pouco de design gráfico. Vou adicionar detalhes e detalhes finais depois que tudo estiver pronto. Os fluxogramas tornam muito fácil descobrir onde você coloca qual função e, por exemplo, quais variáveis ​​ela obtém de qual local.

3
Ainda melhor com um quadro branco grande e amplo;) +1 em @LuudJacobs. Você sabe melhor do que ninguém como o processo de clique deve ser executado, quais entidades e funções devem aparecer a cada vez e quais dados você deseja pesquisar com mais frequência, quais dados você não precisa tanto (raramente). Se você quer manter a história ou não e onde o quê. Depois de desenhar alguns diagramas de entidade, você chegará a um lugar em que se sentirá bem e garantirá que as ferramentas (db. Front end) escolhidas possam atender às suas necessidades hoje e amanhã sem muitas solicitações de mudança :)
bonCodigo

@LuudJacobs bem, obrigado :), mas tentei fazer isso, peguei um quadro branco e imprimi meu esquema db e ... não consegui desenhar nada! Eu acho que não sei como deve ser um fluxograma. vou tentar procurar no google por exemplos. se vc tem nenhum fluxogramas de um projeto real, eu gostaria de ver que
Zalaboza

+1 @bonCodigo: Um quadro branco é uma opção melhor, pois você a) tem mais espaço para trabalhar eb) é fácil apagar coisas. Aqui está uma pesquisa no Google com alguns exemplos de fluxogramas. Um bom software para fazer fluxogramas incluem MS Visio e para Mac OmniGraffle

Para um médico, você fez um trabalho admirável com isso, principalmente porque escolheu o Nickleback of Programming Languages para trabalhar.
Robert Harvey

Respostas:


6

Sua pergunta - qual é o processo para desenvolver um software - é um tópico muito debatido; basta pesquisar no Google "metodologia de software" para ver quão profunda é essa lata de worms ...

Não existe uma resposta comumente aceita. De fato, se você perguntar a 5 programadores, receberá 7 respostas, na minha experiência.

Eu recomendo comprar o "Code Complete", de Steve McConnell, para ver as práticas de codificação de nível inferior - coisas como definir o código, comentar, como testá-lo. Eu recomendaria "Domain Driven Design", de Eric Evans, para uma visão geral de como estruturar aplicativos em nível arquitetural. Eu recomendaria "Desenvolvimento Ágil de Software: Princípios, Padrões e Práticas", de Robert Martin, como uma visão geral de como "aumentar" o software ao longo do tempo, mantendo a qualidade.

É provável que outro desenvolvedor rejeite todos esses livros e indique a UML, o Rational Unified Process e a geração de código. Não há resposta certa!


Para ilustrar o ponto de vista de Neville K sobre diferentes respostas, ele deixou de fora um bom recurso para projetar as interações do usuário final, que é onde eu gostaria de começar. ;-)
Eric G

1

0

Aconselho que você mantenha a estrutura do banco de dados e gere um novo código PHP com PHP PHP Generator for MySQL criado pela empresa SQL Maestro . Isso realmente funcionou para mim. Eu o uso muito e estou muito feliz com isso, especialmente a possibilidade de ajustar o código PHP de acordo com minhas próprias necessidades. Além disso, eles incorporam os novos recursos solicitados em suas atualizações e têm bons tutoriais sobre como ajustar o código. Para entender melhor, dê uma olhada neste projeto de demonstração .

No site, é fornecida a seguinte descrição do produto:

O PHP Generator for MySQL é um front-end da GUI do MySQL que permite gerar scripts PHP de alta qualidade para as tabelas, visualizações e consultas selecionadas para trabalhar ainda mais com esses objetos na Web. Os principais recursos incluem:

  • Gerenciamento de dados: adicionar, editar, excluir e copiar registros
  • Personalização da aparência HTML
  • Habilidades de filtragem e classificação
  • Proteção de dados com muitas configurações de segurança
  • Apresentações de detalhes mestres
  • Gerenciamento de conteúdo orientado a eventos
  • Exportação de dados para PDF, XML, CVS, Excel e Word

O PHP Generator for MySQL produz código claro e fácil de entender que pode ser usado como está ou modificado da maneira que você precisar.

Economize os enormes custos de contratar um programador, aprender qualquer linguagem de programação ou comprar um software caro - todo o código é gerado automaticamente para você!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.