Pergunta

Eu estou em um ponto na minha carreira freelance onde tenho desenvolvido várias aplicações web para pequenas e médias empresas que suporte coisas como gerenciamento de projetos, reserva / reservas e gerenciamento de e-mail.

Eu gosto do trabalho, mas acho que, eventualmente, minhas aplicações chegar a um ponto onde a overhear para manutenção é muito alto. Eu olho para trás em código que eu escrevi 6 meses atrás e encontrar eu tenho que gastar um tempo apenas reaprender I originalmente codificado-lo antes que eu possa fazer uma correção ou recurso adições. Eu tento praticar o uso de estruturas (eu usei Zend Framework antes, e estou considerando Django para o meu próximo projeto)

Que técnicas ou estratégias que você usa para planejar um aplicativo que é capaz de lidar com um monte de usuários sem quebrar e ainda mantendo o suficiente limpo código para manter facilmente? Se alguém tiver alguma livros ou artigos que poderiam recomendar, que seria muito apreciada também.

Foi útil?

Solução

Embora certamente há bons artigos sobre o assunto, nenhum deles é um substituto da experiência do mundo real.

Maintainability há nada que você possa planejar a frente, a não ser em projectos muito pequenos. É algo que você precisa para cuidar de durante todo o projeto. Na verdade, a criação de cargas de classes e código de infra-estrutura com antecedência pode produzir código que é ainda mais difícil de entender do que código espaguete ingênuo.

Então, meu conselho é para limpar seus projetos existentes , por continuamente refatoração-los. Olhe para as peças que eram uma dor de mudança, e se esforçam para soluções mais simples que são mais fáceis de entender e se ajustar. Se o código é ainda muito ruim para isso, considerar reescrevê-lo a partir do zero.

Do not iniciar novos projetos e esperar que eles para ter sucesso, só porque o seu ler alguns artigos ou usado um novo quadro. Em vez disso, identificar as falhas de seus existentes projectos e corrigir seus específica problemas. Sempre que você precisar alterar o código, pergunte a si mesmo como reestruturá-lo para apoiar mudanças semelhantes no futuro. Isto é o que você precisa fazer de qualquer maneira, porque há serão haver mudanças semelhantes no futuro.

Ao fazer essas refatorações você vai tropeçar em vários perguntas específicas que você pode pedir e ler artigos sobre. Dessa forma, você vai aprender mais do que apenas fazer perguntas gerais e leitura de artigos gerais sobre manutenção e frameworks.

começar a limpar o seu código hoje . Não adiar para os seus projetos futuros.


(O mesmo é verdadeiro para a documentação. De Todos primeiros documentos foram muito ruim. Depois de vários meses, eles acabam por ser muito detalhado e cheio de coisas sem importância. Então complementar a documentação com soluções para os problemas que você realmente teve, porque as chances são boas de que no próximo ano você vai ser confrontado com um problema semelhante. Essas experiências irá melhorar o seu estilo de escrita mais do que qualquer guia de estilo "como escrever bom".)

Outras dicas

Eu honestamente recomendo olhar Martin Fowlers Patterns of Enterprise Application Architecture . Ele discute uma série de maneiras para tornar a sua aplicação mais organizado e de fácil manutenção. Além disso, eu recomendo usar o teste de unidade para dar-lhe uma melhor compreensão do seu código. O livro de Kent Beck em Test Driven Development é um ótimo recurso para aprender como endereço mudar para o seu código através de testes de unidade.

Para melhorar a capacidade de manutenção você pode:

  • Se você é o único desenvolvedor, então, adotar um estilo de codificação e cumpri-lo. Isso lhe dará confiança mais tarde, quando a navegar através de seu próprio código sobre coisas que você poderia ter feito e as coisas que você absolutamente não. Ser confiante para onde olhar eo que procurar eo que não olhar para você vai economizar muito tempo.

  • sempre ter tempo para documentação trazer até à data. Incluir a tarefa no plano de desenvolvimento; incluem que o tempo para o plano como parte qualquer de mudança ou novo recurso.

  • documentação Manter equilibrado: alguns diagramas de alto nível, comentários significativos. Melhores comentários dizer que não pode ser lido a partir do próprio código. Como motivos de negócios ou "porquês" por trás de certos pedaços de código.

  • Inclua no plano o esforço para manter a estrutura do código, nomes de pastas, namespaces, objeto, variável e nomes de rotina até à data e um reflexo do que eles realmente fazem. Isto irá percorrer um longo caminho para melhorar manutenção. Sempre chamar uma pá "pá". Evite grandes blocos de código, estrutura-lo por meios disponíveis no idioma de sua escolha, dar pedaços nomes significativos.

  • acoplamento de baixa e alta coerência. Certifique-se atualizado com técnicas de alcançar estes:. Projeto por contrato, a injeção de dependência, aspectos, padrões de projeto etc

  • Do ponto de vista de gerenciamento de tarefas que você deve estimar mais tempo e cobrar taxa mais elevada para peças não-contínuas de trabalho. Não hesite em fazer o cliente ciente de que você precisa de tempo extra para fazer pequenas mudanças não-contínuas propagação ao longo do tempo, em oposição a maiores projetos contínuos e manutenção contínua desde a administração e análise sobrecarga é maior (o que você precisa para gerenciar e analisar cada mudança incluindo o impacto no sistema existente separadamente). Um dos benefícios que seu cliente vai ficar é maior expectativa de vida do sistema. O outro é uma documentação precisa que preservará a sua opção de procurar a ajuda de outra pessoa se decidirem fazê-lo. Tanto o investimento como cliente de proteção são fortes pontos de venda.

  • Use o controle de origem, se você não fazer isso já

  • Mantenha um registro detalhado de tudo feito para o cliente além de qualquer comunicação importante (a CMS simples computador ou papel). Refrescar sua memória antes de cada tarefa.

  • Mantenha um registro das questões deixadas em aberto, idéias, sugestões por cliente; novamente refrescar sua memória antes de iniciar uma tarefa.

  • Planeje com antecedência como o suporte pós-implementação vai ser realizado, discutir com o cliente. Faça seus sistemas são fáceis de manter. Plano para parametrização, ferramentas de monitoramento, em-build checagens. Vendo suporte pós-implementação para o cliente como parte do contrato inicial.

  • Expand, contratando, mesmo se você precisa de alguém apenas para fornecer esse suporte pós-implementação, fazer os bits de administração.

Leitura recomendada:

O mais importante conselho que eu posso dar de ter ajudado a crescer uma aplicação web de idade em um extremamente elevado disponível, a aplicação web de alta demanda é encapsular tudo -., Em particular

  1. Use o bom princípios e frameworks MVC para separar a camada de vista da sua lógica de negócios e modelo de dados.
  2. Use uma camada de persistência robusto para não par a sua lógica de negócios para o seu modelo de dados
  3. Plano de apatridia e comportamento assíncrono.

Aqui está um excelente artigo sobre como eBay aborda estes problemas http://www.infoq.com/articles/ebay-scalability-best- práticas

  1. Use um quadro de sistema / MVC. Quanto mais organizado e centralizado seu código é o melhor.

  2. Tente usar Memcache. PHP foi construído em extensão para ele, ele leva cerca de dez minutos para configurar e mais vinte para colocar na sua aplicação. Você pode armazenar em cache o que você quer - eu armazenar em cache todos os meus registros de banco de dados em que - para cada aplicação. Ele faz Wanders.

  3. Eu recomendaria usar um sistema de controle de origem, como Subversion se você não é já.

Você deve considerar talvez usando SharePoint. É um ambiente que já é projetado para fazer tudo o que você mencionou, e tem muitos outros recursos que você talvez não tenha pensado sobre (mas talvez você vai precisar no futuro :-))

Aqui 's algumas informações do site oficial.
Existem 2 ambientes SharePoint diferentes que você pode usar: Windows SharePoint Services (WSS) ou Microsoft Office Sharepoint Server (MOSS). WSS é gratuito e vem com Windows Server 2003, enquanto MOSS não é livre, mas tem muito mais recursos e cobre quase tudo o que você necessidades da empresa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top