Советы по разделению приложения - PullRequest
0 голосов
/ 16 октября 2008

В настоящее время у меня есть веб-приложение с 3 внешними интерфейсами (в зависимости от того, на какой URL вы идете), которое разделяет очень мало кода между 3 внешними интерфейсами. Моя структура каталогов выглядит так:

\app1
    \includes
    \html
\app2
    \includes
    \html
\app3
    \includes
    \html
\crons
\libs
\logs
\setup
    \db
\shared
    \globalFunctions
    \oldAPI
    \oldClasses

Папки приложений - это отдельные внешние интерфейсы с собственными включениями и документами в формате html. Crons предназначен только для работы с CLI, библиотеки libs - это более новые библиотеки PHP5, такие как новый код, который мы пишем, и такие вещи, как Zend Framework. Журналы - это журналы приложений, настройка - это информация о настройке для развертывания, а общая - это старая кодовая база PHP4, на которую все еще опирается некоторая часть кода. Все хранится в одном большом репозитории SVN.

Что было бы разумным способом разбить это, чтобы я мог превратить этот один большой проект SVN в меньшие, чтобы было легче разветвлять и объединять? В любом случае, большинство проектов сосредоточены на одном приложении, поэтому редко приходится обновлять код в нескольких местах.

Или лучше сохранить эту текущую структуру и просто идти дальше, пока мы переносим код PHP4 на OO PHP5 и, естественно, пропускаем вещи?

Ответы [ 2 ]

1 голос
/ 16 октября 2008

Вы можете разделить его на четыре проекта SVN - один для каждого из трех приложений и четвертый для остальной части кода. Затем вы можете определить этот общий код как внешний для каждого из отдельных приложений, чтобы они могли работать как автономная проверка.

Это дает вам ваши отдельные проекты, но сопряжено с собственным набором проблем - в основном, если вы обновляете раздел с общим доступом для одного приложения, вы должны регрессивно протестировать два других, чтобы убедиться, что вы не нарушили никаких зависимостей.

Это, наверное, больше хлопот, чем стоит, но это зависит от того, как вы работаете.

1 голос
/ 16 октября 2008

Проверка реальности

Вы должны спросить себя, какую ценность я получу, разделив это приложение и сколько это будет стоить мне. Тогда, если вы все еще хотите это сделать, подумайте о том, как разбить большое приложение на более мелкие и чем хуже добавление ненужных функций, чем не добавление необходимых функций. Это относится к разработке программного обеспечения LEAN .

Разделение вашего приложения на несколько приложений

Вот что я хотел бы сделать. Я бы взял твой общий код и превратил его в библиотеку. Эта библиотека будет документироваться и рассматриваться как собственный проект. Я также создал бы отдельные сценарии развертывания для каждого приложения и основной сценарий развертывания, чтобы развернуть их все сразу.

\app1
    \docs
    \includes
    \html
    \logs
    \setup
        \deploy
        \db
\app2
    \docs
    \includes
    \html
    \logs
    \setup
        \deploy
        \db
\app3
    \docs
    \includes
    \html
    \logs
    \setup
        \deploy
        \db
\crons
\deploy
    \docs
    \apps123
\libs
    \newSharedLibName
        \docs
        \globalFunctions
        \oldAPI
        \oldClasses
    \zend
    \etc ...

Я оставил Крона в покое, так как не уверен, что ты с ним делаешь.

p.s. Разделить приложение на более мелкие части всегда сложнее, чем вы думаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...