ugrás a tartalomhoz

Alkalmazás fejlesztés több irányba

krisy · 2009. Nov. 11. (Sze), 20.33
Sziasztok!

Egy meglévő (JAVA illetve PHP) alkalmazást szeretnék ezentúl két/több irányba továbbfejleszteni, ebben szeretném a segítségeteket kérni!

Eddig az alábbi ötletek merültek fel, hogyan lehetne ezt elvégezni:

0. az alkalmazás jelenlegi kódját több példányba lemásolnám, és külön-külön fejleszteném tovább

1. megpróbálhatnék "elágazásokat" írni a kódba; ha az egyik módon kell futni az alkalmazásnak, akkor az egyik osztályt hívja meg, ha a másik módon, akkor a másik osztályt.

2. valamiféle konfig fájlba próbálnám meg tárolni a két alkalmazás közti különbségeket, például közös ősosztályból származtatnám a különböző alkalmazás-specifikus osztályokat, így a váza közös lenne a különböző verzióknak, azonban a lényegi különbségek külön lennének

3. az alkalmazás eddig CVS-ben volt, de áttenném SVN alá, és indítanék több branch-et, és ezek között merge-ölgetnék (CVS-t/SVN-t már sokat használtam, de a branch-elés még nem jött elő)


Az alkalmazást kb. úgy lehet elképzelni, mint mondjuk egy szövegszerkesztőt, ami jelenleg csak egy szövegformátumot képest kezelni (mondjuk .txt-t), de szeretném, ha a továbbiakban több verzió lenne belőle (mondjuk .txt-t, .pdf-et, stb. kezelő változat).
Lennének közös részek (megnyitás, helyesírás-ellenőrzés, stb.), viszont nagyon sok kisebb/nagyobb különbség lenne a két verzióban.

(Mivel webes alkalmazásról van szó, a frissítések elég gyakoriak)

Szerintetek milyen megoldást érdemes választani az alkalmazás több irányban történő fejlesztésére? A fentiek közül az egyiket, vagy esetleg valami teljesen mást?
 
1

hali

carstepPCE · 2009. Nov. 11. (Sze), 21.46
en azt ajanlon nezegest meg a git -t, itt van egy jo leiras hozza elagazasok kezelesere magyarul, illetve a branchek / verziok kozotti ugras eleg gyors git-ben:

http://symbion.hu/hu/git/

Udv
Sanyi
2

Interface

Poetro · 2009. Nov. 11. (Sze), 22.12
Azok a dolgok, amikben megegyeznek egy interface alá kellene tenni, és csak a specifikus dolgokat kellene külön osztályokba / absztrakt osztályokba rakni.
Csinálhatsz factory osztályt, ami a paramétereknek megfelelő objektumot ad vissza (nem feltétlen azonos osztályba tartoznak), amik csak az interface-ben közösek, egyébként belül másképp működnek.