การเขียนโปรแกรมขั้นสูงสำหรับนักพัฒนาคนเดียว [ปิด]


10

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

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

ฉันอยากรู้ว่าถ้าฉันขาดอะไรเป็นพิเศษที่อาจเหมาะกับการทำงานกับโครงการผู้พัฒนาเดียวหรือไม่

นอกจากนี้ในแง่นี้เนื่องจากความคิดของความเรียบง่ายและการพัฒนาที่ขับเคลื่อนด้วยการทดสอบจะดีกว่าหรือไม่ที่จะใช้แพลตฟอร์มที่มีคุณลักษณะหลากหลายและพร้อมทำหรือไม่?

หรือฉันควรทำงานตั้งแต่เริ่มต้นเพื่อหลีกเลี่ยงปัญหาที่นำเสนอด้วยกฎเช่นการปรับโครงสร้างใหม่อย่างต่อเนื่องและไม่เพิ่มฟังก์ชันการทำงานก่อน


5
Elsesite, บน c2.com (เว็บไซต์ที่สร้างขึ้นในช่วงต้นสำหรับการอภิปรายแนวคิด agile (และ XP โดยเฉพาะ)) - การเขียนโปรแกรมขั้นสูงสำหรับ One

นั่นเป็นทรัพยากรที่น่าอัศจรรย์ขอบคุณ ฉันชอบแนวคิดของ XP Pledge of Allegiance เป็นพิเศษ
Kody Manharth

ถ้าคุณอ่านอย่างละเอียดคุณจะพบชื่อเช่นรอนเจฟฟรีส์และเคนท์เบ็คแสดงความคิดเห็น ... และดีก็คือ วอร์ดวิกิพีเดีย

ดังนั้นมันจึงถูกเขียนขึ้นโดยผู้สร้างกระบวนทัศน์ที่ยอดเยี่ยม ยังไม่รู้ว่าฉันยังไม่ได้เจอกับมันอย่างไร ฉันใช้www.extremeprogramming.org
Kody Manharth

2
คำถามของคุณไม่มีคำถามเดียวที่บังคับสำหรับการพัฒนาซอฟต์แวร์ที่ประสบความสำเร็จ คำถามที่แท้จริงคือสิ่งที่คุณต้องการจริง ๆ ?
Robert Harvey

คำตอบ:


5

ในที่สุดการเขียนโปรแกรมมากเป็นเรื่องเกี่ยวกับชุดของการปฏิบัติและวิธีการที่นำไปสู่การปรับปรุงมูลค่าทางธุรกิจ ภาพประกอบที่ดีที่สุดของสิ่งนี้ที่ฉันได้พบมาจากhttp://c2.com/cgi/wiki?ExtremeProgrammingEnablingChart

การเปิดใช้งานการวางโปรแกรมขั้นสูง

ทุกอย่างเป็นสีน้ำเงินเป็นส่วนหนึ่งของแกนกลางของ XP

มีส่วนต่าง ๆ อยู่ด้านนอกซึ่งช่วยเปิดใช้งานสิ่งต่าง ๆ ภายในพื้นที่สีน้ำเงินและเป็นส่วนหนึ่งของ XP โดยรวม แต่ไม่สำคัญกับมัน โปรดทราบว่าฉันไม่ใช่ผู้ฝึกหัด XP โดยส่วนตัวและฉันได้อ่านคำติชมของผู้คนในระดับ "เกือบ" หลังจาก XP ที่ผู้คนหลายคนบอกว่าไม่ใช่ XP ให้ตั้งค่าลักษณะของ dogma ของ XP ไว้นิดหน่อยแล้วดูสิ่งที่เรามี

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

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

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

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

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

การอ่านที่เกี่ยวข้อง:

ฉันต้องการดึงใบเสนอราคาจากลิงค์แรกของ c2:

Damian Conway เชื่อว่าการเขียนโปรแกรมเอ็กซ์ตรีมนั้นเป็นชื่อเรียกผิดของ Perl ภาษาแสงสว่างและนักวิทยาศาสตร์ที่บ้า เนื่องจากเป็นการแสดงถึงแนวทางการเขียนโปรแกรมที่ดีหลายอย่างที่โปรแกรมเมอร์ได้รับการสอน แต่แทบจะไม่สนใจเขาจึงเชื่อว่าควรได้รับการขนานนามว่า Ultra Conservative Programming


ตรัสรู้เพื่อพูดน้อย ขณะนี้ฉันกำลังจัดการกับปัญหาในแง่ของ TDD ใน Flash โดยใช้ Starling ฉันใช้ FlexUnit และมันไม่มีความสามารถในการจัดการกับการทดสอบแบบกราฟิกเนื่องจากมันเป็นแบบหัวขาด ในกรณีเช่นนี้ควรมอบหมายการทดสอบเหล่านี้ให้กับการตรวจสอบด้วยตนเองหรือไม่ (เช่นการทดสอบโลโก้ที่อยู่กึ่งกลางหน้าจอ) นี่เป็นการพิจารณาการทดสอบการรวมหรือไม่ (เช่นโมดูลหน้าจอ Splash ทำงานร่วมกับโมดูลระยะของ Flash อย่างถูกต้องหรือไม่) ฉันควรใช้กรอบการจำลองเพื่อจำลองสถานการณ์ที่ต้องการหรือไม่ การทดสอบสามารถสร้างสิ่งที่ไม่มีตัวตนได้อย่างหมดจดหรือไม่?
Kody Manharth
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.