Bir Uygulamayı Up Yarma Önerileri

2 Cevap php

Şu anda 3 ön arasındaki hisse çok az kod biter o (size ne gitmek URL bağlı) 3 ön uçları olan bir web uygulaması var. Benim dizin yapısı bu gibi görünüyor:

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

App klasörleri tek tek ön 'html' de içeren kendi ieçren ile biter ve docroot en vardır. Crons sadece CLI işler için, kütüphaneleri gibi yeni Yazdığımız kod ve Zend Framework gibi şeyler gibi yeni PHP5 kütüphaneler olmasıdır. Kayıtlar app günlükleri, kurulum dağıtımı için kurulum bilgileri ve paylaşılan kod bazıları hala dayanan eski PHP4 kod temeli. Herşey büyük bir SVN repo saklanır.

Ne kolay şube ve birleştirme yapmak istiyorum böylece ben küçük olanları içine bu büyük bir SVN proje açabilirsiniz, böylece bu kadar kırmak için aklı başında bir yol olurdu? Kod birden fazla yerde güncellenmesi gerekiyor zaman nadirdir yani projelerin çoğu zaten tek bir app odaklanmak.

Yoksa bu mevcut yapısını korumak ve biz liman OO PHP5 PHP4 kodu olarak sadece geçinmek ve doğal şeyleri terk etmek daha iyidir?

2 Cevap

Reality Check

Sen ben ve ne bana mal olacak bu uygulama bölünmesiyle elde edeceklerine değer kendinize sormanız gerekir. Hala yapmak istiyorsanız o zaman küçük olanları içine büyük bir uygulama kesiliyor nasıl düşünmek bir özelliktir ve gerekli olmayan özellikler ekleyerek gerekli özellikler ekleyerek değil daha kötü nasıl. Bu LEAN yazılım geliştirme altına düşer.

Dividing your application into multiple applications

İşte ne yapacağını olduğunu. Ben paylaşılan kod alıp kütüphaneye çevirmek istiyorum. Bu kütüphane belgelenmiş ve kendi projesi olarak ele alınır. Ben de her uygulama ve bir kerede hepsini dağıtmak için bir ana dağıtma komut dosyası için ayrı dağıtım komut yaratacaktır.

\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 ...

Ben senin onunla ne yaptığını emin değilim çünkü ben yalnız cron'u bıraktı.

p.s. Splitting an application into smaller pieces is always harder than you think.

Üç uygulamalar her biri için ve kod kalanı için dördüncü - Sen dört SVN projelere bölmek olabilir. Onlar kendi kendine yeten bir çıkış olarak çalıştırabilirsiniz böylece daha sonra tek tek uygulamalar her biri için harici olarak bu paylaşılan kod tanımlayabilirsiniz.

O size ayrı projeler olsun ama sorunları kendi seti ile birlikte geliyor - Eğer herhangi bir bağımlılıkları kırık değil kontrol etmek için regresyon testi, diğer iki sahip bir uygulama için ortak bölümünü güncelleştirmek özellikle eğer.

Bu değer muhtemelen daha sorunsuz ama işe nasıl bağlıdır.