การพัฒนาเทียบกับข้อมูลการผลิตหรือไม่


10

ฉันได้ยินมาเสมอว่ามันเป็นแนวปฏิบัติที่ไม่ดีในการพัฒนาเทียบกับข้อมูลการผลิตและขณะนี้ฉันกำลังอยู่ในขั้นตอนการย้ายไปยังDev> เวที>รูปแบบการผลิตส่วนใหญ่เป็นเพราะฉันมีพนักงานใหม่ที่มีทักษะน้อยที่สุดและฉันไม่ต้องการเขา ทำงานโดยตรงกับข้อมูลการผลิตเลย

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

เหตุใดการพัฒนาเว็บไซต์สดจึงมีการปฏิบัติที่ไม่ดีเช่นนี้


คุณสามารถทำซ้ำข้อมูลที่คุณมีในเซิร์ฟเวอร์การผลิตของคุณบนเซิร์ฟเวอร์การพัฒนา
HoLyVieR

1
mmmm ... ฉันจะลงคะแนนคำถามนี้โดยไม่ปรากฏว่าสนับสนุนวิธีการทำสิ่งต่าง ๆ โดยตรงกับข้อมูลการผลิตได้อย่างไร : S
vmarquez

2
@vmarquez คำถามเกี่ยวกับการปฏิบัติที่ไม่ดีจำเป็นต้องเป็นคำถามที่ไม่ดีหรือไม่?
plntxt

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

1
ผู้คนโหวตสิ่งต่าง ๆ ด้วยเหตุผลต่าง ๆ ฉันไม่ได้รับการโหวตเป็นอย่างอื่นนอกจาก "บุคคลนี้ได้รับบางสิ่งบางอย่างจากคำถามนี้"
artlung

คำตอบ:


17

หากในระหว่างการพัฒนาคุณกำลังรันคำสั่ง SQL ที่รวมINSERTหรือUPDATEบนตารางฐานข้อมูลที่มีอยู่คุณกำลังเสี่ยงต่อการที่ตารางฐานข้อมูลเหล่านั้นมีภารกิจที่สำคัญ

สถานที่บางแห่งซิงค์ข้อมูลการผลิตลงในฐานข้อมูลการพัฒนาในบางช่วงเวลาพูดสัปดาห์ละครั้งหรือตามคำขอของนักพัฒนาเพื่อให้คุณมีข้อมูลใหม่ที่จะพัฒนาด้วย

แต่ถ้าข้อมูลการผลิตของคุณไม่มีความเสี่ยงจากสิ่งที่คุณกำลังทำตัวอย่างเช่นถ้าคุณเพียงแค่พัฒนามุมมองของข้อมูลบางอย่างมักจะไม่ใช่เรื่องใหญ่ ทีนี้หากคุณกำลังเรียกใช้รายงานที่สแกนตารางคุณก็มีโอกาสที่จะล็อกตารางจากนั้นผู้ใช้ปัจจุบันของคุณจะได้รับผลกระทบ

ฉันจะเลื่อนไปยังผู้ดูแลระบบฐานข้อมูลของฉันในกรณีเช่นนี้หากไม่มี DBA "เป็นทางการ" ฉันจะทำตามคำเตือนอย่างระมัดระวัง มันง่ายพอที่จะสร้างฐานข้อมูลการพัฒนาแม้สำหรับตัวฉันเอง ในทีมมันสำคัญมาก ความล้มเหลวนั้นถ้าคุณยืนยันเกี่ยวกับการ hving เพียงหนึ่งฐานข้อมูลคุณสามารถนำหน้าตารางฐานข้อมูลการพัฒนาของคุณด้วยDEV_และรู้สึกดีขึ้นเล็กน้อย ใช่ว่าต้องมีการเปลี่ยนแปลงรหัส แต่ในการพัฒนาเพิ่มตัวแปรบางอย่างในระหว่างการพัฒนา$debug = trueฯลฯ มักจะคุ้มค่ากับความพยายาม

มีวิธีมากมายในการเข้าถึงสิ่งนี้ มันขึ้นอยู่กับสถานการณ์ของคุณเป็นอย่างมาก


+1 ในกระบวนการซิงค์ เราทำตามความต้องการที่นี่เพื่อการพัฒนาของเรา นอกจากนี้เรายังมีระบบประกันคุณภาพซึ่งเป็นพื้นที่ที่ซิงค์บ่อยขึ้นสำหรับการตรวจสอบการเปลี่ยนแปลงขั้นสุดท้ายก่อนที่จะมีการผลิต แต่เราจะเรียกใช้คิวรีกับข้อมูลที่ใช้งานจริงบางครั้งเพียงเพราะปัญหาเกี่ยวข้องกับข้อมูลและยากที่จะทำซ้ำ
Milner

+1 และการซิงค์อาจยุ่งยาก ในหลายกรณีคุณจะต้องทำสิ่งต่าง ๆ เป็นส่วนหนึ่งของ Prod-> ทดสอบการกดเช่นที่อยู่อีเมลและชื่อสครับ ฯลฯ เพื่อหลีกเลี่ยงการส่งอีเมลโดยไม่ตั้งใจ "Dear Rich Bastard"
JasonBirch

11

คุณไม่ต้องการที่จะพัฒนากับข้อมูลการผลิตบนเซิร์ฟเวอร์การผลิตของคุณ มีเหตุผลมากมายสองสามข้อ

  1. การพัฒนาทำให้กล่องผลิตของคุณช้าลงและสร้างช่องโหว่ จะเกิดอะไรขึ้นถ้าคุณปล่อยให้คอมพิวเตอร์ของคุณถูกปลดล็อคและเดินออกไป
  2. หากคุณทำผิดคนที่เข้าชมเว็บไซต์ของคุณสามารถดูได้
  3. หากคุณอัปเดตข้อมูลใด ๆ ภายในธุรกรรมในฐานข้อมูลของคุณและคุณไม่ได้กระทำทันทีหรือการทำธุรกรรมใช้เวลาสักครู่จนจบคุณจะล็อคการทำงานของตารางทั้งหมดที่เกี่ยวข้องและอาจทำให้หมดเวลาได้ .
  4. ระบบฐานข้อมูลบางระบบโดยเฉพาะ SQL Server จะล็อคตารางในบางครั้งในคำสั่ง SELECT เพียงอย่างเดียว! ซึ่งหมายความว่าคุณสามารถให้เวลาผู้คนหรือหน้าข้อผิดพลาดบนไซต์ของคุณโดยไม่ได้ตั้งใจ

ฉันจะไม่พัฒนางานบนกล่องสดถ้าเป็นไปได้ ทางออกที่ดีที่สุดของคุณคือการสำรองข้อมูลของฐานข้อมูลและเพจและทำงานกับการคัดลอกจากนั้นจึงผลักดันการอัพเดตของคุณ เครื่องมือหนึ่งที่ช่วยฉันได้มากคือ SyncToy ของ Msft


7

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


3

หากคุณไม่ขับโดยไม่คาดเข็มขัดนิรภัยอย่าพัฒนาข้อมูลการผลิต แค่เรื่องความปลอดภัย


3

หากคุณมีข้อมูลการผลิตอยู่ก็เหมาะสมที่จะใช้สำหรับการทดสอบ แต่ใช้ฐานข้อมูลการทดสอบแยกต่างหากพร้อมสำเนาของข้อมูลนั้น ไม่เช่นนั้นจะมีหลายสิ่งที่ใช้ได้กับบันทึกการทดสอบ "blabla" ของคุณ แต่ไม่เหมาะกับสถานการณ์จริง

และสำหรับการพัฒนาข้อมูลการผลิตสด - จดจำกฎของเมอร์ฟี "สิ่งใดก็ตามที่ผิดพลาดได้จะผิดพลาด" และมันง่ายมากที่จะทำผิดพลาดเพียงเล็กน้อยด้วยผลที่ไม่ดี

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