Bermigrasi dari satu kerangka kerja PHP ke yang lain

10

Saya bekerja dengan perusahaan web yang mendekati titik di mana ia mungkin akan perlu memikirkan kembali produk sebagai V2 - karena tumbuh melampaui beberapa dasar dan prinsip V1 yang telah dibangun ke dalam hampir segalanya, mulai dari model data hingga antarmuka pengguna. Karena berbagai alasan, evolusi ini mungkin melibatkan migrasi dari CakePHP (yang telah dibangun V1) ke Symfony atau Zend.

Saya ingin meminta beberapa pandangan yang berpengalaman tentang bagaimana orang mungkin mengelola transisi seperti ini untuk situs web yang memiliki lalu lintas yang signifikan dan menghasilkan pendapatan. Saya tidak ingin membuka diskusi tentang pro & kontra kerangka kerja PHP yang berbeda, atau mengapa migrasi ini mungkin diperlukan. Sebaliknya, saya akan sangat tertarik mendengar apakah ada beberapa alternatif praktis untuk dasarnya membangun V2 dari awal bersama V1 selama beberapa bulan - dan mengunci waktu pengkodean yang berharga selama durasi periode yang intens ini. Contoh dari alternatif semacam itu mungkin memigrasi aplikasi di bagian-bagian dalam periode waktu yang lebih lama.

Saya akan berterima kasih atas pandangan dari orang-orang yang mungkin telah mengelola atau terlibat dalam transisi semacam itu.

Terima kasih sebelumnya.

Tom
sumber

Jawaban:

2

Jika ini adalah aplikasi komersial yang merupakan bisnis perusahaan Anda, Anda mungkin lebih baik pergi tanpa kerangka kerja pihak ketiga sepenuhnya. Kemudian ketika waktu untuk v3 tiba, Anda tidak akan menghadapi masalah yang sama lagi. Dan Anda tidak akan pernah berada dalam situasi di mana Anda harus terus menyesuaikan kode Anda dalam menanggapi pembaruan kerangka kerja. Kerangka kerja sangat bagus untuk menyelesaikan masalah dan bekerja dengan cepat, tetapi jika ini adalah sesuatu a) inti bagi bisnis Anda dan b) dipertahankan dalam jangka panjang, nilai kerangka kerja akan berkurang.

GrandmasterB
sumber
1
Terima kasih - Perspektif yang berguna, meskipun kerangka kerja membuat hidup lebih mudah sehubungan dengan begitu banyak hal sehingga sulit untuk menghibur ide untuk tidak menggunakannya. Mereka juga dapat dikustomisasi dan tidak selalu perlu diperbarui kecuali ada kebutuhan nyata untuk melakukannya (misalnya kerentanan keamanan, kurangnya dukungan untuk X, dll). Menerima jawaban ini karena ini benar-benar tentang "solusi" daripada mencoba membahas mengapa switch kerangka mungkin diperlukan.
Tom
1
Jawaban ini sama sekali bukan solusi.
James
6

Pelajari kerangka kerja baru dengan sangat baik terlebih dahulu, dan pastikan itu akan memenuhi kebutuhan Anda, dan Anda benar-benar memahami paradigma kerangka kerja baru. Anda harus membuang banyak kode, dan itu tidak masalah. Yang penting adalah Anda menggunakan kerangka kerja baru seperti yang seharusnya digunakan, memanfaatkan fitur-fiturnya sepenuhnya, dan tidak terikat dengan cara berpikir dari kerangka lama Anda. Jangan mencoba menggunakan Zend "cara CakePHP" *

Misalnya, ketika saya pindah menggunakan kerangka kerja MVC dari yang bukan-MVC sebelumnya, saya tidak benar-benar mengerti bagaimana model, tampilan, dan pengontrol seharusnya berfungsi, dan saya menulis beberapa kode yang tampak mengerikan karena saya tidak mengerti yang baru cara melakukan sesuatu. Anda akan lebih baik bertahan dengan kerangka kerja lama yang lebih rendah daripada memiliki aplikasi yang ditulis dengan buruk pada kerangka kerja yang lebih baik.

* Saya juga tidak kenal, jadi saya tidak tahu seberapa mirip / sebanding mereka.

GSto
sumber
+1 untukDon't try to use Zend "the CakePHP way
Pos Tim
kamu tahu ketika orang mengatakan '+1' mereka biasanya benar-benar memberikan +1 dengan memilih jawabannya;)
GSto
Maaf, cegukan internet. :) TCP over carrier pigeon di sini.
Tim Post
Terima kasih atas jawaban yang bermanfaat. Saya sudah mencoba-coba Zend dan CakePHP, dan meskipun saya setuju dengan komentar Anda, saya pada prinsipnya tidak bisa "menerimanya" ketika itu bukan pengalaman langsung berbicara.
Tom
5

Hal pertama yang harus dipertimbangkan adalah menulis ulang produk dari awal adalah sesuatu yang tidak boleh Anda lakukan . Ini terutama benar ketika versi saat ini sudah menghasilkan uang bagi Anda. Pada dasarnya, Anda akan menghabiskan waktu 6 bulan, hanya untuk kembali ke tempat Anda 6 bulan yang lalu. Hanya sekarang, Anda memiliki lebih banyak bug (atau setidaknya, bug yang berbeda ), memperkenalkan kembali bug yang sudah diperbaiki dalam kode lama, dan Anda enam bulan di belakang di mana Anda bisa berada, jika Anda sudah menambahkan fitur ke basis kode lama.

CakePHP, Zend dan Symphony sebagian besar sama (yaitu mereka semua kerangka kerja gaya MVC di atas PHP), jadi saya tidak yakin apa keuntungan yang Anda miliki untuk beralih dari satu ke yang lain. Memang ada perbedaan dalam set fitur, tetapi apakah mereka benar-benar layak mengatur diri Anda kembali sepanjang waktu itu? Untuk jumlah waktu yang Anda habiskan menulis ulang dari awal di Zend atau apa pun, bisakah Anda menghabiskan jumlah waktu yang sama menambahkan fitur yang diperlukan ke Cake?

Menurut pendapat saya, Anda akan lebih baik perlahan refactoring kode yang ada dari waktu ke waktu, daripada memulai sepenuhnya dari awal dengan kerangka kerja baru.

Tentu, ini hanya pendapat saya. Saya tahu itu tergoda untuk menjatuhkan kode yang ada (jelek, lama) dan mulai dari awal, tetapi untuk produk-produk mapan yang sudah bekerja, biasanya ada sedikit untuk mendapatkan dan banyak sekali kehilangan.

Dean Harding
sumber
Persis seperti yang kupikirkan. Tidak ada gunanya menulis ulang di sini, karena sepertinya tidak ada alasan kuat bahwa itu akan menjadi keputusan yang ekonomis.
EricBoersma