รหัสแรกเทียบกับฐานข้อมูลก่อน


77

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

ฉันกำลังคิดที่จะพลิกเวิร์กโฟลว์ของฉันบนหัวและสร้าง UI และคลาสโมเดลข้อมูลเป็นครั้งแรกด้วยความหวังว่าการทำงานที่ออกมาจะทำให้ฉันชัดเจนว่าสคีมาฐานข้อมูลของฉันจะเป็นอย่างไรในที่สุด นี่เป็นความคิดที่ดีหรือไม่? ฉันกังวลว่าฉันจะจบลงด้วย UI และยังไม่ทราบวิธีการจัดทำฐานข้อมูล

หากใครอยากรู้ฉันกำลังใช้ SQL Server เป็นแบ็กเอนด์และ MS Access เป็นแอพพลิเคชั่นส่วนหน้า (การเข้าถึงไม่ใช่ตัวเลือกของฉันเช่นกันดังนั้นโปรดอย่าเกลียดมันแย่เกินไป)



6
@gnat: นั่นแตกต่างอย่างสิ้นเชิง
Robert Harvey

1
หากสิ่งนี้ได้รับการปิดเป็นซ้ำมันควรจะซ้ำกับคำถามนี้ คำตอบและคำถามมีความสอดคล้องกับสิ่งที่ฉันถาม
RubberDuck

1
@Mawg มันเป็นโครงการทำงาน ฉันได้ผลักดันให้มากที่สุดเท่าที่จะทำได้เกี่ยวกับข้อเรียกร้องที่กำหนด งานต้องเริ่มจากสิ่งนี้และไม่มีอะไรที่ฉันสามารถทำได้
RubberDuck

4
ผิดพลาดงานใหม่? ฉันรู้ว่าฉันจะ แต่ในฐานะนักอิสระอิสระ 30 ปีฉันพบว่ามันง่ายที่จะเดินออกไปก่อนที่มันจะกระทบแฟน ๆ (บางคนที่คุณไม่สามารถช่วยได้) แต่ฉันรู้ว่ามันไม่ง่ายเลยสำหรับทุกคนอยู่ถ้าคุณต้อง (ไม่มีนายจ้างเทียบเคียง ในพื้นที่ ฯลฯ ) แต่อย่าอยู่ถ้ามันเริ่มส่งผลกระทบต่อคุณ
Mawg

คำตอบ:


85

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

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

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

TL; DR: ฐานข้อมูลขึ้นอยู่กับธุรกิจ - ถูกกำหนดโดยพวกเขา คุณไม่จำเป็นต้องใช้ข้อมูลเว้นแต่ว่าคุณมีกระบวนการที่ทำงานกับมัน (รายงานเป็นกระบวนการ) ใช้กระบวนการก่อนแล้วคุณจะพบข้อมูลที่ต้องการ ทำแบบจำลองข้อมูลเป็นอันดับแรกและคุณสามารถนับจำนวนข้อสันนิษฐานที่ผิดพลาดเมื่อคุณทำแบบจำลองเป็นครั้งแรก

หัวข้อเล็ก ๆ น้อย ๆ แต่มีความสำคัญมาก: ขั้นตอนการทำงานที่ฉันอธิบายมักใช้พร้อมกับการปฏิบัติที่สำคัญเช่น "สิ่งที่ง่ายที่สุดที่อาจเป็นไปได้" การพัฒนาโดยใช้การทดสอบและการมุ่งเน้นที่การแยกสถาปัตยกรรมของคุณออกจากรายละเอียด ไปในทางของคุณ (คำใบ้: ฐานข้อมูล) เกี่ยวกับสุดท้ายพูดคุยนี้สรุปความคิดค่อนข้างดี


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

6
และเพียงเพื่อใส่ชื่อในนั้น: การปฏิบัติเหล่านี้ทั้งหมด (เนื้อหา) การปฏิบัติที่สำคัญในการพัฒนาเปรียว (การพัฒนาที่เพิ่มขึ้นเป็นสิ่งที่ง่ายที่สุดที่สามารถทำงานทดสอบขับเคลื่อนต้องการของผู้ใช้ครั้งแรก ... )
sleske

8
ฉันอยากกลับมาและขอบคุณอีกครั้ง ฉันมีระดับกลางทั้งหมดของฉันทำงานโดยไม่มีฐานข้อมูลและตอนนี้ฉันมีความเข้าใจที่ดีเกี่ยวกับวิธีการเก็บข้อมูล ฉันไม่สามารถขอบคุณได้มากพอ ฉันจะโหวตอีกครั้งถ้าทำได้
RubberDuck

12
หากคุณจับความต้องการทั้งหมดอย่างแท้จริงด้วยวิธีการแบบรหัสแรกของคุณและคุณแสดงความต้องการทั้งหมดเหล่านั้นในฐานข้อมูลสุดท้ายของคุณอย่างแท้จริงฉันสามารถเห็นด้วยกับคำตอบนี้ แต่ฉันได้เห็นหลายโครงการหลายโครงการที่ความพึงพอใจในการรับบางสิ่งบางอย่าง "ทำงาน" ส่งผลให้เกิดทัศนคติที่ว่า "ถ้ามันทำงานอยู่ฐานข้อมูลจะต้องดีพอ" แม้ว่ามันจะเป็นการออกแบบฐานข้อมูลHORRIBLEกับปัญหาประสิทธิภาพที่หลีกเลี่ยงไม่ได้ ต่อมา นอกจากนี้คนจำนวนมากดูเหมือนจะคิดว่าถ้ารหัสกำลังตรวจสอบข้อมูลคุณไม่จำเป็นต้องมีข้อ จำกัด การตรวจสอบหรือข้อ จำกัด ของคีย์ต่างประเทศ ที่คุณทำ
Ross Presser

2
มีความเป็นไปได้ที่จะกล่าวถึงในวิดีโอ - น่าเสียดายที่ฉันไม่สามารถเข้าถึงได้ในตอนนี้ - แต่ข้อดีอีกอย่างของวิธีการที่เพิ่มขึ้นก็คือเมื่อทำอย่างถูกต้องแล้ว "หน้าจอนี้ดูเหมือนว่ากำลังรวบรวมข้อมูลการติดต่อทั้งหมดที่คุณต้องการหรือไม่ฟิลด์ถูกจัดเรียงตามลำดับที่เหมาะสมกับเวิร์กโฟลว์ของคุณหรือไม่" ความสามารถในการถามคำถามเหล่านี้ด้วยการอ้างอิงบางอย่างที่เป็นรูปธรรมคือ IME เป็นวิธีเดียวที่จะได้รับข้อมูลที่คุณต้องการ
David

17

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

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

เมื่อคุณมีสิ่งที่คุณควรจะสามารถเริ่มต้นสร้างสิ่งที่คุณคิดว่าจะให้ผลลัพธ์ที่ดีที่สุดและรอส่วนที่เหลือของคุณสมบัติที่จะเข้ามา


ฉันเห็นด้วยอย่างสุดใจ แต่นั่นจะไม่เกิดขึ้นกับคนนี้ ขอบคุณสำหรับเวลาของคุณ
RubberDuck

9
หากคุณไม่มีเวลาทำถูกต้องคุณจะหาเวลาทำอะไรได้บ้าง
Walter Mitty

ใครพูดอะไรเกี่ยวกับการไม่ทำสิ่งที่ถูกต้อง @WalterMitty? โปรดดูลิงค์วิดีโอในคำตอบที่ยอมรับได้ ฐานข้อมูลเป็นรายละเอียดที่ไม่จำเป็นต้องมีอยู่เพื่อให้สามารถทำงานได้กับซอฟต์แวร์ 95%
RubberDuck

1
ฉันใช้ "นั่นจะไม่เกิดขึ้น" เพื่อหมายความว่าคุณกำลังจะดำเนินการโค้ดโดยไม่ต้องสงสัยแม้แต่ข้อมูลว่าผู้มีส่วนได้เสียต้องการข้อมูลใดจากระบบ ฉันคิดว่า James ให้คำแนะนำที่ดีแก่คุณในการทำการวิเคราะห์ระบบพื้นฐานโดยไม่ต้องติดหล่มในการวิเคราะห์อัมพาต
วอลเตอร์ Mitty

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

12

ประสบการณ์ของฉันมีดังนี้

  • ในโครงการส่วนใหญ่ที่ฉันทำไปเราออกแบบฐานข้อมูลก่อน
  • บ่อยครั้งที่ข้อมูลมีอยู่แล้วในสเปรดชีตฐานข้อมูลดั้งเดิมกระดาษ ฯลฯ ข้อมูลนั้นจะให้คำแนะนำเกี่ยวกับตารางที่คุณต้องการเก็บไว้
  • บ่อยครั้งที่มีการใช้กระบวนการอยู่แล้ว แต่ด้วยตนเองหรือใช้เครื่องมือที่แตกต่างกันหลายอย่างที่ไม่อัตโนมัติไม่ทำงานระหว่างกันและ / หรือไม่เป็นไปตามมาตรฐาน
  • เมื่อคุณมีโมเดลฐานข้อมูลแบบกึ่งผู้ใหญ่แล้วคุณสามารถเริ่มต้นออกแบบแบบฟอร์มต้นแบบหน้าต่าง ฯลฯ ซึ่งอ่านและเขียนไปยังฐานข้อมูลนั้นได้
  • เมื่อคุณดำเนินการต่อการเปลี่ยนแปลงบางอย่างจะจำเป็นเพื่อรองรับสิ่งที่ไม่ได้พิจารณาในตอนแรก

ยังจำได้:

  • มันไม่ได้เป็นโลกของแอปเดียวอีกต่อไป <-> แอพของคุณอาจจะต้องอ่านหรือเขียนข้อมูลจากฐานข้อมูลมากกว่าหนึ่งฐานหรือโซลูชันของคุณอาจประกอบด้วยแอปมากกว่าหนึ่งแอปโดยใช้ฐานข้อมูลเดียวกัน

สรุป: ฉันแนะนำให้คุณออกแบบฐานข้อมูลก่อน


สิ่งเหล่านี้ล้วนเป็นเรื่องจริงและในความเป็นจริงสิ่งนี้จะแทนที่ "ไม่ใช่กระบวนการ" และสเปรดชีต แต่ฉันไม่เห็นว่านี่เป็นคำตอบสำหรับคำถามของฉันได้อย่างไร คุณช่วยอธิบายได้ไหม?
RubberDuck

1
@RubberDuck ฉันได้เพิ่มความกระจ่างในตอนท้ายของคำตอบของฉัน
Tulains Córdova

11

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

แต่จากนั้นฉันก็คิดอีกเล็กน้อยและฉันก็ตระหนักว่าสิ่งที่เราทำจริง ๆ ในโครงการขนาดใหญ่ที่ประสบความสำเร็จมากขึ้นคือ "ข้อกำหนดก่อน"

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


ตรงนี้เป็นวิธีที่ฉันทำงาน ข้อกำหนดก่อนใช่ ฉันหวังว่าฉันจะสามารถดึงความต้องการบางอย่างออกมาจากใครบางคนได้ในขณะนี้
RubberDuck

ความต้องการแรก แต่คุณไม่ควรรอจนกว่าจะมีความต้องการที่สมบูรณ์ (พวกเขาไม่เคยมี) เริ่มต้นทันทีที่คุณมีพอที่จะมีความคิดว่าเป้าหมายของแอปพลิเคชันคืออะไรจากนั้นรับเพิ่มเติมเมื่อคุณต้องการ
sleske

@sleske - นักวิเคราะห์ที่ดีควรทำความเข้าใจกับความต้องการ "แบบไดนามิก" (เช่นคลุมเครือและเปลี่ยนแปลงได้) และสร้างความยืดหยุ่นในการออกแบบเพื่อรับมือกับผู้ใช้อย่างง่ายดาย
James Anderson

1
@JamesAnderson: ที่จริงแล้วฉันเป็นแฟนตัวยงของหลักการพัฒนาที่คล่องตัวซึ่งโดยปกติคุณจะออกแบบเฉพาะสิ่งที่คุณต้องการในตอนนี้เว้นแต่คุณจะรู้ว่าคุณไม่สามารถเปลี่ยนการออกแบบในภายหลังได้ แต่ฉันเริ่มที่จะไปปิดหัวข้อ ...
sleske

8

ตั้งแต่นี้ดูเหมือนว่าของเหลว / ไม่ได้ระบุดังนั้นฉันจะทำส่วนหน้า GUI แรก - ที่ดูเหมือนว่าคุณต้องการได้รับการตอบสนองการสนับสนุนเวลาและข้อเสนอแนะจากผู้มีส่วนได้เสียใช่ไหม? พวกเขาไม่สนใจเกี่ยวกับตารางปกติที่ยอดเยี่ยมของคุณและข้อ จำกัด ของคีย์ต่างประเทศและการลบแบบเรียงซ้อน แต่ GUI สุดเจ๋งที่มีสีมันวาวมากมาย - นั่นคือสิ่งที่สำคัญที่สุด!

สำหรับ "ฐานข้อมูล" แบ็กเอนด์เริ่มต้นให้ใช้สิ่งที่ง่ายมากบางทีอาจเป็นเพียงคีย์ / ค่าที่เก็บไว้ในไฟล์ ฉันไม่คุ้นเคยกับ MS Access ดังนั้นไม่ทราบว่าแบ็กเอนด์ "ที่เบาที่สุด" จะเป็นอย่างไร (ตาราง spreadsheed?) ไม่ว่าอะไรจะเร็วและสกปรกวางแผนที่จะทิ้งมันไป

หากทำได้ให้ใช้รูปลักษณ์และความรู้สึกตลก ๆใน GUI เพื่อทำให้ชัดเจนว่าเป็นแบบตัวอย่าง หากทั้งหมดอื่นล้มเหลวใช้บัตรดัชนี

บางทีผู้มีส่วนได้ส่วนเสียของคุณอาจเป็นผู้เชี่ยวชาญ DB - ซึ่งเป็นกรณีของฉันในบางครั้ง! - ในกรณีนี้ให้ออกแบบ DB บางส่วน


3
+1 สำหรับ "โค้ดแรก" หรือ "ฐานข้อมูลแรก" แต่ "ไม่ใช่ฟังก์ชัน gui-prototype แรก" (aka "การสร้างต้นแบบอย่างรวดเร็ว") เนื่องจากในกรณีที่ไม่มีข้อกำหนดต้นแบบ gui จะช่วยชี้แจงข้อกำหนดกับผู้ใช้ปลายทาง
k3b

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

@Mawg ใช่น่าเสียดายที่เป็นอันตราย หนึ่งตัวเลือก (ใน Java อย่างน้อย) คือการใช้ "รูปลักษณ์และความรู้สึก" แปลก ๆ เพื่อทำให้ชัดเจนว่านี่คือต้นแบบ
user949300

หากคุณไม่รู้ว่าคุณกำลังจะไปที่ไหนรหัสใดจะพาคุณไปที่นั่น

-1

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

ตัวอย่างเช่นคุณอาจมีบุคคลดังนั้นคุณจึงมีรหัสประจำตัวของ PK ส่วนที่เหลือของแอตทริบิวต์ไม่เป็นที่รู้จักดังนั้นเพียงแค่เริ่มต้นด้วยตารางบุคคลที่มี PK Person Id และคอลัมน์อื่นที่จะเก็บ Blob ซึ่งเป็นข้อมูลบุคคลทั้งหมด

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

การค้นหาอาจล่าช้าเนื่องจากคุณไม่สามารถสืบค้น BLOB เพื่อให้แบบจำลองมีเสถียรภาพเริ่มเก็บข้อมูลของคุณที่จะต้องค้นหาในคอลัมน์เชิงสัมพันธ์

โดยทั่วไปคุณเริ่มต้นด้วยตัวแบบตารางและย้ายไปที่เชิงสัมพันธ์เมื่อโครงการดำเนินไป

หรือทำข้อกำหนดก่อนที่งานใด ๆ จะเริ่มขึ้นเพื่อที่จะสามารถพัฒนาแบบจำลองเชิงสัมพันธ์ได้ในขั้นต้น


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

1
มีความแตกต่างระหว่างการคงอยู่และการทำให้เป็นมาตรฐาน คำถามที่มีเพียงคุณเท่านั้นที่สามารถตอบได้คือฉันต้องยืนกรานเท่านั้นหรือคงอยู่และทำให้เป็นปกติ ตัวแบบข้อมูลเป็นตัวแบบถ้าไม่มีข้อกำหนดมันก็ยากที่จะทำแบบจำลองที่สัมพันธ์กัน
Jon Raynor

-2

โดยทั่วไปฉันคิดว่ารหัสมาหลังจากข้อมูลเพราะรหัสกำลังจะจัดการข้อมูล

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


3
นี้ไม่ได้ดูเหมือนจะนำเสนออะไรที่สำคัญกว่าจุดทำและอธิบายในก่อน 5 คำตอบ
ริ้น

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