การโอนย้ายจากเฟรมเวิร์ก PHP หนึ่งไปอีกเฟรมหนึ่ง


10

ฉันทำงานกับ บริษัท เว็บที่กำลังเข้าใกล้จุดที่มันอาจจะต้องคิดอีกครั้งว่าผลิตภัณฑ์เป็น V2 - เนื่องจากการเติบโตกว่ารากฐาน V1 และหลักการบางอย่างที่สร้างขึ้นในแทบทุกอย่างตั้งแต่ตัวแบบข้อมูลไปจนถึง ส่วนต่อประสานผู้ใช้ ด้วยเหตุผลหลายประการวิวัฒนาการนี้อาจเกี่ยวข้องกับการย้ายถิ่นจาก CakePHP (ซึ่งสร้าง V1) ไปยัง Symfony หรือ Zend

ฉันต้องการขอมุมมองที่มีประสบการณ์เกี่ยวกับวิธีที่ผู้คนอาจจัดการกับการเปลี่ยนแปลงเช่นนี้สำหรับเว็บไซต์ที่มีปริมาณการเข้าชมมากและสร้างรายได้ ฉันไม่ต้องการที่จะเปิดการอภิปรายเกี่ยวกับกรอบ PHP ที่แตกต่างกันของโปรหรือทำไมการโยกย้ายนี้อาจจำเป็น ค่อนข้างฉันจะสนใจอย่างมากในการได้ยินว่ามีทางเลือกในทางปฏิบัติบางอย่างในการสร้าง V2 จากรอยขีดข่วนควบคู่ไปกับ V1 เป็นเวลาสองเดือน - และล็อคเวลาการเข้ารหัสที่มีค่าในช่วงเวลาที่รุนแรงนี้ ตัวอย่างของทางเลือกดังกล่าวอาจกำลังย้ายแอพในบางส่วนในระยะเวลานาน

ฉันจะขอบคุณสำหรับมุมมองใด ๆ จากคนที่อาจมีการจัดการหรือมีส่วนร่วมในช่วงการเปลี่ยนภาพดังกล่าว

ขอบคุณล่วงหน้า.

คำตอบ:


2

หากนี่เป็นแอปพลิเคชั่นเชิงพาณิชย์ที่เป็นธุรกิจของ บริษัท คุณอาจจะดีกว่าหากไม่มีโครงงานภายนอกโดยสิ้นเชิง เมื่อถึงเวลาสำหรับ v3 คุณจะไม่ต้องเจอกับปัญหาเดียวกันนี้อีก และคุณจะไม่ต้องตกอยู่ในสถานการณ์ที่คุณต้องปรับเปลี่ยนโค้ดของคุณเพื่อตอบสนองต่อการอัพเดตเฟรมเวิร์ก กรอบการทำงานนั้นยอดเยี่ยมสำหรับการทำให้สิ่งต่าง ๆ และทำงานได้อย่างรวดเร็ว แต่ถ้าสิ่งนี้เป็นสิ่งสำคัญสำหรับธุรกิจของคุณและข) การบำรุงรักษาในระยะยาวมูลค่าของกรอบจะลดน้อยลง


1
ขอบคุณ - มุมมองที่เป็นประโยชน์แม้ว่ากรอบงานจะทำให้ชีวิตง่ายขึ้นโดยคำนึงถึงหลายสิ่งหลายอย่างซึ่งยากที่จะสร้างความบันเทิงความคิดที่ไม่ได้ใช้ พวกเขายังสามารถปรับแต่งและไม่จำเป็นต้องได้รับการปรับปรุงเว้นแต่จะมีความจำเป็นที่จะต้องทำเช่นนั้น (เช่นช่องโหว่ด้านความปลอดภัยขาดการสนับสนุน X, ฯลฯ ) ยอมรับคำตอบนี้เพราะเป็นเรื่องเกี่ยวกับ "วิธีแก้ปัญหา" แทนที่จะพยายามระบุว่าทำไมต้องเปลี่ยนกรอบงาน
Tom

1
คำตอบนี้ไม่ใช่ทางออกเลย
James

6

เรียนรู้กรอบการทำงานใหม่เป็นอย่างดีก่อนและตรวจสอบให้แน่ใจว่ามันจะตอบสนองความต้องการของคุณและว่าคุณกรอบความคิดของกรอบใหม่ คุณจะต้องทิ้งรหัสจำนวนมากและก็ไม่เป็นไร สิ่งสำคัญคือคุณใช้เฟรมเวิร์กใหม่ตามที่ตั้งใจไว้ใช้ประโยชน์จากฟีเจอร์ต่าง ๆ ของมันอย่างเต็มที่และไม่เชื่อมโยงกับวิธีคิดจากกรอบเก่าของคุณ อย่าพยายามใช้ Zend "the CakePHP way" *

ตัวอย่างเช่นเมื่อฉันย้ายไปใช้กรอบ MVC จากรายการที่ไม่ใช่ MVC ก่อนหน้าฉันไม่เข้าใจว่าแบบจำลองมุมมองและตัวควบคุมควรทำงานอย่างไรและฉันเขียนโค้ดที่ดูแย่มากเพราะฉันไม่เข้าใจสิ่งใหม่ วิธีการทำสิ่งต่าง ๆ คุณควรที่จะยึดติดกับกรอบเก่าที่ด้อยกว่าได้ดีกว่ามีแอปที่เขียนไม่ดีบนกรอบที่ดีกว่า

* ฉันไม่คุ้นเคยกับทั้งคู่ดังนั้นฉันจึงไม่ทราบว่ามีความคล้ายคลึงกัน / เปรียบได้อย่างไร


+1 สำหรับDon't try to use Zend "the CakePHP way
Tim Post

คุณรู้ไหมเมื่อมีคนพูดว่า '+1' พวกเขามักจะให้ +1 ด้วยการโหวตคำตอบ;)
ถึง

ขออภัยสะอึกอินเทอร์เน็ต :) TCP ผ่านผู้ให้บริการนกพิราบที่นี่
ทิมโพสต์

ขอบคุณสำหรับคำตอบที่มีประโยชน์ ฉันเคยขลุกทั้ง Zend และ CakePHP และแม้ว่าฉันจะเห็นด้วยกับความคิดเห็นของคุณฉันก็ไม่สามารถเป็นเรื่องของหลักการ "ยอมรับ" เมื่อไม่มีประสบการณ์พูด
Tom

5

สิ่งแรกที่ต้องพิจารณาคือการเขียนใหม่สินค้าตั้งแต่เริ่มต้นเป็นสิ่งที่คุณไม่ควรทำ นี่เป็นเรื่องจริงโดยเฉพาะเมื่อเวอร์ชันปัจจุบันสร้างรายได้ให้คุณแล้ว โดยพื้นฐานแล้วคุณจะใช้เวลา 6 เดือนเพื่อกลับไปยังที่ที่คุณอยู่เมื่อ 6 เดือนก่อน เฉพาะตอนนี้คุณมีข้อผิดพลาดเพิ่มขึ้น (หรืออย่างน้อยที่สุด, ข้อผิดพลาดที่แตกต่างกัน ), ข้อผิดพลาดที่แนะนำอีกครั้งซึ่งได้รับการแก้ไขแล้วในรหัสเก่าและคุณหกเดือนหลังที่คุณเคยเป็น เพิ่มคุณสมบัติให้ codebase เก่า

CakePHP, Zend และ Symphony ส่วนใหญ่เหมือนกัน (นั่นคือกรอบ MVC ทั้งหมดบน PHP) ดังนั้นฉันไม่แน่ใจว่าคุณจะได้เปรียบจากที่หนึ่งไปยังอีกที่หนึ่ง มีชุดคุณสมบัติที่แตกต่างกันอย่างแน่นอน แต่พวกเขาควรจะกลับมาตลอดเวลาหรือไม่? สำหรับระยะเวลาที่คุณใช้การเขียนใหม่ตั้งแต่ต้นใน Zend หรืออะไรก็ตามคุณสามารถใช้เวลาเพิ่มคุณสมบัติที่จำเป็นในเค้กได้หรือไม่

ในความคิดของฉันคุณควรค่อย ๆ ปรับโครงสร้างโค้ดที่มีอยู่ของคุณใหม่อย่างช้าๆแทนที่จะเริ่มต้นใหม่ทั้งหมดตั้งแต่เริ่มต้นด้วยกรอบงานใหม่

แน่นอนว่านี่เป็นเพียงความคิดเห็นของฉัน ฉันรู้ว่ามันเป็นการดึงดูดให้ทิ้งโค้ดที่มีอยู่ (น่าเกลียดเก่า) และเริ่มต้นจากศูนย์ แต่สำหรับผลิตภัณฑ์ที่สร้างไว้แล้วที่ใช้งานได้แล้วมักจะมีน้อยมากที่จะได้รับ


สิ่งที่ฉันคิด ไม่มีประเด็นในการเขียนใหม่ที่นี่เพราะดูเหมือนจะไม่มีกรณีที่แข็งแกร่งว่ามันจะเป็นการตัดสินใจที่ประหยัด
EricBoersma
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.