Di chuyển từ khung PHP này sang khung khác


10

Tôi đang làm việc với một công ty web đang tiếp cận một điểm mà có thể họ sẽ cần nghĩ lại sản phẩm là V2 - do đã phát triển một số nền tảng và nguyên tắc V1 đã được tích hợp vào hầu hết mọi thứ, từ mô hình dữ liệu đến giao diện người dùng. Vì nhiều lý do, sự tiến hóa này có thể liên quan đến việc di chuyển từ CakePHP (mà V1 đã được xây dựng) sang Symfony hoặc Zend.

Tôi muốn hỏi một số quan điểm có kinh nghiệm về cách mọi người có thể quản lý quá trình chuyển đổi như thế này cho một trang web có lưu lượng truy cập đáng kể và tạo doanh thu. Tôi không muốn mở ra một cuộc thảo luận về các khung công tác PHP khác nhau hoặc tại sao việc di chuyển này có thể cần thiết. Thay vào đó, tôi sẽ rất muốn biết liệu có một số lựa chọn thay thế thực tế để xây dựng V2 từ đầu cùng với V1 trong một vài tháng - và khóa thời gian mã hóa quý giá trong suốt thời gian căng thẳng này. Một ví dụ về một giải pháp thay thế như vậy có thể là di chuyển một ứng dụng theo từng phần trong một khoảng thời gian dài hơn.

Tôi rất biết ơn về bất kỳ quan điểm nào từ những người có thể đã quản lý hoặc tham gia vào các quá trình chuyển đổi như vậy.

Cảm ơn trước.

Câu trả lời:


2

Nếu đây là một ứng dụng thương mại là công việc của công ty bạn, bạn có thể sẽ tốt hơn nếu không có khung bên thứ 3 hoàn toàn. Sau đó, khi thời gian cho v3 xuất hiện, bạn sẽ không phải đối mặt với vấn đề tương tự nữa. Và bạn sẽ không bao giờ rơi vào tình huống phải tiếp tục điều chỉnh mã của mình để đáp ứng các bản cập nhật cho khung. Các khung rất tốt để khởi động và vận hành nhanh chóng, nhưng nếu đây là điều gì đó a) cốt lõi cho doanh nghiệp của bạn và b) được duy trì trong thời gian dài, giá trị của khung sẽ giảm đi.


1
Cảm ơn - Quan điểm hữu ích, mặc dù các khung làm cho cuộc sống dễ dàng hơn đối với rất nhiều điều mà thật khó để giải trí ý tưởng không sử dụng chúng. Chúng cũng có thể được tùy chỉnh và không cần luôn được cập nhật trừ khi có nhu cầu thực sự (ví dụ: lỗ hổng bảo mật, thiếu hỗ trợ cho X, v.v.). Chấp nhận câu trả lời này vì nó thực sự là về một "giải pháp" thay vì cố gắng giải quyết tại sao có thể cần chuyển đổi khung.
Tom

1
Câu trả lời này hoàn toàn không phải là một giải pháp.
Gia-cơ

6

Trước tiên hãy tìm hiểu khung công tác mới và đảm bảo rằng nó sẽ đáp ứng nhu cầu của bạn và bạn thực sự hiểu được các mô hình của khung mới. Bạn sẽ phải ném ra rất nhiều mã, và điều đó không sao cả. Điều quan trọng là bạn đang sử dụng khung công tác mới theo cách nó được sử dụng, tận dụng tối đa các tính năng của nó và không bị ràng buộc vào cách suy nghĩ từ khung cũ của bạn. Đừng cố sử dụng Zend "cách CakePHP" *

Ví dụ, khi tôi chuyển sang sử dụng khung MVC từ các khung không phải MVC trước đó, tôi thực sự không hiểu làm thế nào các mô hình, khung nhìn và bộ điều khiển phải hoạt động và tôi đã viết một số mã trông khủng khiếp vì tôi không hiểu cái mới cách làm việc. Bạn nên gắn bó với một khuôn khổ cũ kém hơn là có một ứng dụng được viết kém trên một khung tốt hơn.

* Tôi cũng không quen thuộc, vì vậy tôi không biết chúng giống nhau / so sánh như thế nào.


+1 choDon't try to use Zend "the CakePHP way
Tim Post

vâng, khi mọi người nói '+1', họ thường thực sự cho +1 bằng cách bỏ phiếu trả lời;)
GSto

Xin lỗi, nấc cục. :) TCP trên chim bồ câu vận chuyển ở đây.
Tim Post

Cảm ơn câu trả lời hữu ích. Tôi đã học được cả Zend và CakePHP, và mặc dù tôi đồng ý với nhận xét của bạn, tôi không thể chấp nhận nguyên tắc "chấp nhận" khi không nói về kinh nghiệm thực tế.
Tom

5

Điều đầu tiên cần xem xét là viết lại một sản phẩm từ đầu là điều bạn không bao giờ nên làm . Điều này đặc biệt đúng khi phiên bản hiện tại đã giúp bạn kiếm tiền. Về cơ bản, bạn sẽ dành 6 tháng thời gian, chỉ để quay lại nơi bạn đã ở 6 tháng trước. Chỉ bây giờ, bạn đã có nhiều lỗi hơn (hoặc ít nhất là các lỗi khác nhau ), các lỗi được giới thiệu lại đã được sửa trong mã cũ và bạn chậm hơn sáu tháng so với nơi bạn có thể ở đó, bạn đã từng ở thêm các tính năng cho codebase cũ.

CakePHP, Zend và Symphony phần lớn giống nhau (ví dụ: tất cả chúng đều là các khung kiểu MVC trên PHP), vì vậy tôi không chắc bạn có lợi thế gì khi chuyển từ cái này sang cái khác. Chắc chắn có sự khác biệt trong bộ tính năng, nhưng chúng có thực sự đáng để bạn tự đặt lại thời gian đó không? Đối với lượng thời gian bạn dành để viết lại từ đầu trong Zend hoặc bất cứ điều gì, bạn có thể dành cùng thời gian để thêm các tính năng cần thiết vào Bánh không?

Theo tôi, bạn nên từ từ tái cấu trúc mã hiện tại của mình theo thời gian, thay vì bắt đầu hoàn toàn từ đầu với một khung công tác mới.

Tất nhiên, đây chỉ là ý kiến ​​của tôi. Tôi biết sẽ rất khó để bỏ mã hiện tại (xấu, cũ) và bắt đầu lại từ đầu, nhưng đối với các sản phẩm đã được thiết lập đang hoạt động, thường có rất ít để đạt được và mất rất nhiều.


Chính xác những gì tôi đã nghĩ. Không có điểm nào trong việc viết lại ở đây, bởi vì dường như không có trường hợp nào mạnh mẽ rằng đó sẽ là một quyết định kinh tế.
EricBoersma
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.