ชุดย่อยขั้นต่ำของการปฏิบัติที่ดีที่สุด / เป็นที่รู้จักในการพัฒนาซอฟต์แวร์สำหรับโปรแกรมเมอร์เดี่ยวคืออะไร? [ปิด]


16

ฉันเป็นโปรแกรมเมอร์ที่โดดเดี่ยวในงานของฉันมานานแล้ว ปกติฉันจะอ่านบทความและโพสต์เกี่ยวกับ

  • ระบบควบคุมเวอร์ชัน
  • บูรณาการ / จัดส่งอย่างต่อเนื่อง
  • วิธีการพัฒนา: Scrum, Waterfall, V-Model, Agile, XP, ฯลฯ
  • การจัดการโครงการซอฟต์แวร์

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

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

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


คุณมีการเปิดตัวจำนวนเท่าใดในวิดิโอที่คุณต้องทำการแก้ไขข้อบกพร่อง?

คำตอบ:


17

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

อย่างไรก็ตามหากฉันอยู่ในตำแหน่งของคุณฉันจะบังคับใช้สิ่งต่อไปนี้:

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

+2 สำหรับ Agile และ Project Management อย่างไรก็ตามสำหรับคุณสมบัติทดลองฉันมักจะแยกภาพเสมือนจริง (ซึ่งจะเทียบเท่ากับการแตกแขนง) และในที่สุดก็เปิดอินสแตนซ์อื่นของสภาพแวดล้อมของฉัน ขอบคุณสำหรับคำตอบที่ดีของคุณ
user869097

16

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

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


1
นั่นไม่ได้เป็นประโยชน์เพียงอย่างเดียว ประโยชน์หลักอย่างหนึ่งคือสามารถสร้างซอฟต์แวร์รุ่นก่อนหน้าขึ้นมาใหม่ได้ และมีประโยชน์เมื่อพยายามสร้างปัญหาขึ้นใหม่และ / หรือพิจารณาว่าเมื่อใดที่มีปัญหาเกิดขึ้น
Marjan Venema

2
บวก 1 เพราะมันช่วยให้สมองของฉันเมาค้างหลายต่อหลายครั้ง
Nicholas Smith

1
นอกจากนี้สาขา หลายครั้งที่ฉันมีสถานการณ์เช่นนี้ที่ฉันเริ่มต้นการเปลี่ยนแปลงที่ไม่หยุดยั้งและได้รับโทรศัพท์เพื่อปล่อยกราฟิกที่ถูกแทนที่หรือสิ่งอื่น ๆ ด้วยสาขามันง่ายมากที่จะทำเพียงเปลี่ยนไปที่สาขาหลักของฉันและสร้างซอฟต์แวร์ ปราศจากมัน? ฉันจะดึงผมออกมาจนเสร็จสิ้นการเปลี่ยนแปลงที่ผิดเพี้ยนหรือเปลี่ยนกลับเพื่อให้สามารถปล่อยผมได้อย่างมั่นคง
Tamás Szelei

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

1
@ user869097 ส่วนหนึ่งของความตั้งใจของเว็บไซต์ SE คือคำถามและคำตอบมีประโยชน์สำหรับมากกว่าผู้ถามคำถามดั้งเดิม ในขณะที่ความต้องการที่ผิดปกติของคุณอาจทำให้การควบคุมเวอร์ชันทำไม่ได้ (และฉันต้องบอกว่าฉันไม่มั่นใจอย่างสมบูรณ์เพราะวิธีการแตกแขนงของคุณไม่อนุญาตให้มีการรวม) ผู้พัฒนาส่วนใหญ่ที่ไม่ได้ใช้การควบคุมเวอร์ชันควรเป็น
Peter Taylor

6

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

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


2

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


2

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

สำหรับวิธีการ - ฉันขอแนะนำโปรแกรมเมอร์อย่างชัดเจน โดยทั่วไปแล้วจะให้ผลลัพธ์ที่ยอดเยี่ยมในทีมขนาดเล็กเนื่องจากไม่มีค่าใช้จ่ายเป็นศูนย์และไม่ต้องคำนึงถึงว่ากลุ่ม J2EE เปิดใช้งานเฟรมเวิร์กคอนเทนเนอร์คอนเทนเนอร์แอปพลิเคชันเว็บเซอร์วิสสำหรับ CMS ที่ใช้บทบาท JSVได้อย่างไร

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