วิศวกรรมซอฟต์แวร์

ถาม - ตอบสำหรับมืออาชีพนักวิชาการและนักเรียนที่ทำงานในวงจรการพัฒนาระบบ

2
ควรใช้ทรัพยากรที่ซ้อนอยู่ใน RESTful API เมื่อใด
ฉันมีสองแหล่งข้อมูล: ผู้ใช้และลิงก์ ผู้ใช้สามารถมีหลายลิงค์ที่เกี่ยวข้อง ฉันได้ออกแบบ RESTful API ของฉันเพื่อให้คุณสามารถเข้าถึงลิงก์ที่เกี่ยวข้องกับผู้ใช้ได้ที่ URI ต่อไปนี้: /users/:id/links อย่างไรก็ตามฉันจำเป็นต้องมี URI เสมอสำหรับลิงก์ - บางครั้งฉันอาจต้องการลิงก์ทั้งหมดโดยไม่คำนึงถึงผู้ใช้ สำหรับสิ่งนี้ฉันมี: /links เสียงนี้ใช้ได้ไหม? มี URI สองตัวสำหรับลิงก์หรือไม่ ฉันสงสัยว่าฉันควรเข้าถึงลิงก์สำหรับผู้ใช้ที่มี URI หรือไม่เช่น: /links/user/:id หรือ /links/?user=:id ด้วยวิธีนี้ฉันมีแหล่งข้อมูลเพียงแหล่งเดียวสำหรับลิงก์
16 api  rest  api-design 

4
กลยุทธ์ในการติดตามการเปลี่ยนแปลงภาษา (Python)
การเขียนโค้ดที่จะยังคงทำงานเป็นปีนับจากนี้ การเปลี่ยนแปลงภาษาการเขียนโปรแกรม ห้องสมุดเปลี่ยนไป รหัสบางส่วนจาก 5, 10 หรือแม้กระทั่ง 20 ปีที่ผ่านมาอาจยังคงทำงานและให้ผลลัพธ์ที่คาดหวังในขณะที่บางรหัสจาก 2 ปีอาจล้มเหลวด้วยข้อผิดพลาดทางไวยากรณ์ นี่เป็นส่วนหนึ่งที่หลีกเลี่ยงไม่ได้เนื่องจากภาษามีวิวัฒนาการ นักพัฒนามีความรับผิดชอบในการรักษารหัสของพวกเขา แต่บางครั้งความเสถียรเป็นข้อกำหนดที่สำคัญในรหัสการผลิตและรหัสควรทำงานเป็นเวลา 10 ปีโดยไม่จำเป็นต้องให้ใครซักคนผ่านรหัสทุกปีเพื่อปรับเปลี่ยนให้เหมาะกับการเปลี่ยนแปลงภาษา หรือฉันอาจมีสคริปต์ขนาดเล็กเช่นการวิเคราะห์ข้อมูลทางวิทยาศาสตร์ว่าฉันต้องกลับมายังหลังจากไม่ได้สัมผัสเป็นเวลาหลายปี ตัวอย่างเช่นที่สำนักงานอุตุนิยมวิทยามีรหัส Fortran จำนวนมากที่ใช้งานได้แม้ในส่วนที่ไม่จำเป็นความเร็วและความเสถียรของรหัสเป็นหนึ่งในเหตุผล ผม' เคยได้ยินว่ากลัวความไม่มั่นคงเป็นหนึ่งในวัตถุที่พวกเขามีต่อการย้ายไปยัง Python (นอกเหนือจากความเฉื่อยของภาษาแน่นอนมันเป็นไปได้สำหรับรหัสใหม่ที่ไม่ขึ้นอยู่กับรหัสเก่า) แน่นอนว่ากลยุทธ์หนึ่งสำหรับรหัสที่เสถียรคือการหยุดระบบปฏิบัติการทั้งหมด แต่นั่นเป็นไปไม่ได้เสมอไป ฉันใช้ Python เป็นตัวอย่าง แต่ปัญหาไม่ได้ จำกัด เฉพาะ Python โดยเฉพาะ เอกสารเกี่ยวกับปัญหาความเข้ากันได้ของ Python ในกรณีของ Python มีเอกสารหลายฉบับที่สรุปนโยบายสำหรับการเปลี่ยนแปลงย้อนหลังที่เข้ากันไม่ได้ PEP-5 ตามPEP 5 : ต้องมีช่วงเวลาการเปลี่ยนแปลงอย่างน้อยหนึ่งปีระหว่างการเปิดตัว Python และการปล่อยของเวอร์ชันที่เข้ากันไม่ได้ย้อนหลัง ผู้ใช้จะมีเวลาอย่างน้อยหนึ่งปีในการทดสอบโปรแกรมของพวกเขาและโยกย้ายพวกเขาจากการใช้โครงสร้างที่เลิกใช้แล้วไปยังตัวเลือกอื่น โดยส่วนตัวแล้วฉันคิดว่าหนึ่งปีนั้นค่อนข้างสั้น หมายความว่าฉันอาจเขียนโค้ดและ 1 …
16 python 

4
เวิร์กโฟลว์: การใช้รูปแบบเอกสารไบนารีใน Git โดยไม่ล็อค (ย้ายจากการโค่นล้ม)
เราเป็นที่ปรึกษาด้านซอฟต์แวร์ที่มีโครงการมากมายสำหรับลูกค้าที่แตกต่างกัน เราใช้การโค่นล้มแบบดั้งเดิม แต่ขณะนี้กำลังพิจารณาที่จะย้ายไป Git ส่วนสำคัญของเอกสารที่เราผลิตนั้นจะถูกแบ่งปันกับลูกค้าของเรา (ความต้องการ, การออกแบบระดับโลก, รายละเอียดการทดสอบ, ฯลฯ ) และเราใช้ MS Office เพื่อผลิตสิ่งเหล่านี้ ในการโค่นล้มเราสามารถใช้คุณสมบัติ "ล็อค" เพื่อให้แน่ใจว่าไม่มีใครแก้ไขเอกสารเดียวกันในเวลาเดียวกัน ใน Git คุณไม่สามารถทำเช่นนั้นได้เนื่องจากลักษณะการกระจายของมัน Git ไม่มีการล็อค ล็อคเป็นมากกว่ากลไกการสื่อสารเพียงเล็กน้อย แต่มันมีประสิทธิภาพมาก ปัจจุบันรหัสของเราและเอกสารที่ต้องพบกับลูกค้ามักอยู่ในโฟลเดอร์ย่อยที่แตกต่างกันของที่เก็บ svn ที่แตกต่างกัน เมื่อย้ายไปคอมไพล์คุณอยากแนะนำอะไรให้เราทำ? ฉันเห็นชุดตัวเลือก: เราย้ายที่เก็บ svn ไปที่ git 1-on-1 แทนที่จะใช้การล็อกไฟล์ Office เราทำในสิ่งที่คน git แนะนำและพยายามเปลี่ยนเวิร์กโฟลว์ของเราเพื่อแก้ไข สิ่งนี้อาจทำงานได้ในสาขาในการแก้ไขเอกสารใด ๆ และรวมเข้ากับการตรวจสอบ วิธีนี้แบ่งออกเป็นเช่นแผ่นงาน Excel ที่มีข้อมูลการจัดการโครงการ พวกเขาแก้ไขได้อย่างง่ายดายโดยสมาชิกในทีม (และเราขอแนะนำให้ดำเนินการนี้) แต่ไม่ต้องผ่านกระบวนการตรวจสอบอย่างเป็นทางการ เราใช้ git …
16 git  svn  dvcs  excel  word 

2
แนวคิด SQL เหล่านี้สำหรับผู้เริ่มต้น, ระดับกลาง, หรือนักพัฒนาขั้นสูงหรือไม่? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันได้เรียนรู้ SQL เมื่อเร็ว ๆ นี้และฝึกฝนกับ MySQL / Postgres และ Oracle DB ในไม่ช้า ฉันยังค้นหาเว็บเพื่อศึกษา 'แผนที่ถนน' ของฐานข้อมูล แต่หาไม่เจอโชคไม่ดี ฉันต้องการที่จะเข้าใจว่าที่ไหนและเพราะเหตุใดแนวคิดของฐานข้อมูลที่เฉพาะเจาะจงจึงแตกต่างกันไปตั้งแต่ระดับเริ่มต้นไปจนถึงระดับกลางและระดับสูง ฉันคิดถึงฐานข้อมูลเชิงสัมพันธ์เป็นส่วนใหญ่ โปรดอธิบายวิธีการจัดวางทักษะที่แสดงด้านล่างเพื่อความก้าวหน้าของ Beginner -> Intermediate -> Advanced สำหรับนักพัฒนาระดับใดที่ควรรู้จักพวกเขา: ตรงไหน อัปเดตไวยากรณ์ ร่วม แก้ไขและสร้างคำสั่ง ตารางชั่วคราว เคอร์เซอร์ ดัชนี กุญแจต่างประเทศ ข้อ จำกัด การทำธุรกรรม subqueries จุดหมุน ฟังก์ชันการรวม …

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

3
แสดงการกระทำ (คำกริยา) ใน REST URI
ฉันมีการพิมพ์เพื่อดำเนินการกับเอกสารลูกค้าของฉัน ฉันต้องการการดำเนินการมาตรฐานอื่น ๆ ที่จะดำเนินการเช่นกันเช่นเพิ่มอัปเดตลบ ดังนั้นฉันมีดังต่อไปนี้: สำหรับการสร้างลูกค้าใหม่: URI = / customer / {id} ให้พิมพ์ = POST, Methodname = CreateCustomer () สำหรับการอัพเดต: URI: / customer / {id} ให้พิมพ์ = PUT, method = UpdateCstomer () สำหรับลบลูกค้า: URI = / customer / {id} ให้พิมพ์ = DELETE, Methodname = DeleteCustomer () สำหรับมุมมอง: URI: / customer …
16 rest 

3
Agile เป็นตัวแปรของ RAD หรือไม่?
Wikipedia บอกว่า Agile เป็น "RAD" ประเภทหนึ่งซึ่งฉันเดาว่าไม่ถูกต้อง จากสิ่งที่ฉันรู้ Agile ได้รับการพัฒนาเนื่องจาก RAD เองนั้นไม่เพียงพอใน 90'S (เข้มงวดเกินไปสำหรับการเปลี่ยนแปลง) หรือฉันผิด (หมายเหตุ: เห็นได้ชัดว่าบทความ Wikipedia เกี่ยวกับการพัฒนาซอฟต์แวร์ Agileได้รับการปรับปรุงในระหว่างนั้นเพียงแค่ระบุว่าRADเป็นผู้บุกเบิกของ Agile ไม่ใช่เป็น superset) การอ้างอิงจากหนังสือ Radical Project Management (Thomsett) ".. แฟชั่นใหม่ของการพัฒนาเช่น RAD, Agile, Object oriented ... " ผู้สอบบัญชีระบบข้อมูลรับรอง CISA: .. ตระหนักถึงซอฟต์แวร์ตัวเลือกสองตัว วิธีการ: การพัฒนาแอพพลิเคชั่นที่คล่องตัวและรวดเร็ว การจัดการแบบว่องไวสำหรับซอฟต์แวร์: วิธีการแบบว่องไวส่วนใหญ่มาจากวิธี RAD ที่มีน้ำหนักเบา แนวทางปฏิบัติที่ดีที่สุดในการประเมินซอฟต์แวร์: วิธีการหลักของ sw dev สามารถสรุปได้ดังนี้: …

2
ฉันจะให้เครดิตผู้แต่งซอฟท์แวร์ภายใต้ลิขสิทธิ์ของ MIT ได้อย่างไร?
ฉันได้แก้ไขซอร์สโค้ดของโครงการลิขสิทธิ์ MIT และฉันได้เพิ่มคลาสใหม่ลงไปด้วย โปรดแก้ไขฉันหากฉันผิด แต่ฉันคิดว่าการเพิ่มประกาศลิขสิทธิ์ของฉันไว้เหนือใบอนุญาตและถูกต้องตามกฎหมาย แต่ฉันจะอธิบายคุณลักษณะการมีส่วนร่วมของผู้เขียนคนก่อนหน้าได้อย่างไร ฉันควรใช้ไฟล์แยกต่างหาก นอกจากนี้ยังมีไฟล์ HTML บางไฟล์ที่ไม่มีใบอนุญาตหรือประกาศลิขสิทธิ์ในไฟล์ที่ฉันแก้ไขด้วย ฉันต้องจัดการกับพวกเขาต่างกันหรือไม่? คำถามของฉันแตกต่างจากคำถามนี้เมื่อฉันได้แก้ไขไฟล์บางส่วนของโครงการที่ฉันกำลังขยาย ปรับปรุง แม้ว่าข้อเสนอแนะในการลบประกาศเกี่ยวกับลิขสิทธิ์จะฟังดูแปลก แต่สิ่งที่ฉันนึกไว้เมื่อแรกโพสต์นี้คือผู้เขียนไม่ควรรับผิดชอบหากฉันเพิ่มสิ่งที่เป็นอันตรายต่อรหัสของพวกเขา นี่ไม่ควรเป็นปัญหาเนื่องจากใบอนุญาต MIT รวมถึงการปฏิเสธความรับผิดชอบ

7
ฉันควรเข้ารหัสข้อมูลในฐานข้อมูลหรือไม่
ฉันมีลูกค้าซึ่งฉันจะทำแอปพลิเคชันเว็บเกี่ยวกับการดูแลผู้ป่วยการจัดการผู้ป่วยให้คำปรึกษาประวัติปฏิทินทุกอย่างเกี่ยวกับเรื่องนั้น ปัญหาคือว่านี่เป็นข้อมูลที่ละเอียดอ่อนประวัติผู้ป่วยและอื่น ๆ ลูกค้ายืนยันในการเข้ารหัสข้อมูลในระดับฐานข้อมูล แต่ฉันคิดว่านี่จะทำให้ประสิทธิภาพของเว็บแอปลดลง (แต่บางทีฉันไม่ควรกังวลเกี่ยวกับเรื่องนี้) ฉันได้อ่านกฎหมายเกี่ยวกับการปกป้องข้อมูลเกี่ยวกับปัญหาสุขภาพ (โปรตุเกส) แต่ไม่เฉพาะเจาะจงมากเกี่ยวกับเรื่องนี้ (ฉันเพิ่งถามพวกเขาเกี่ยวกับเรื่องนี้ฉันรอการตอบสนองของพวกเขา) ฉันได้อ่านลิงค์ต่อไปนี้แล้วแล้ว แต่คำถามของฉันแตกต่างกันฉันควรเข้ารหัสข้อมูลในฐานข้อมูลหรือไม่ ปัญหาหนึ่งที่ฉันคาดการณ์ไว้ในการเข้ารหัสข้อมูลคือฉันต้องการรหัสนี่อาจเป็นรหัสผ่านของผู้ใช้ แต่เราทุกคนรู้ว่ารหัสผ่านของผู้ใช้เป็นอย่างไร (12345 ฯลฯ ) และการสร้างรหัสที่ฉันต้องเก็บ มันอยู่ที่ไหนสักแห่งซึ่งหมายความว่าโปรแกรมเมอร์ DBA สิ่งที่สามารถเข้าถึงได้ความคิดใด ๆ เกี่ยวกับเรื่องนี้? การเพิ่มเกลือแบบสุ่มลงในรหัสผ่านผู้ใช้ก็ไม่ได้ช่วยแก้ปัญหาเพราะฉันสามารถเข้าถึงได้ตลอดเวลาและดังนั้นจึงถอดรหัสข้อมูล
16 php  mysql  encryption 

9
วิธีการส่งเสริมการใช้ซ้ำรหัสและเอกสารประกอบ? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ในฐานะผู้นำทีมนักพัฒนาประมาณ 10+ คนฉันต้องการส่งเสริมการใช้รหัสซ้ำ เราเขียนโค้ดจำนวนมาก - ส่วนมากซ้ำ ๆ ในช่วงไม่กี่ปีที่ผ่านมา ปัญหาในตอนนี้ก็คือรหัสเหล่านี้จำนวนมากซ้ำซ้อนกับรหัสอื่น ๆ หรือมีการเปลี่ยนแปลงเล็กน้อย ฉันได้เริ่มต้นการเคลื่อนไหว (อภิปราย) เกี่ยวกับวิธีการสร้างรหัสเป็นส่วนประกอบเพื่อให้พวกเขาสามารถนำกลับมาใช้สำหรับโครงการในอนาคตได้ แต่ปัญหาคือฉันกลัวนักพัฒนาใหม่หรือนักพัฒนาอื่น ๆ ที่ไม่รู้องค์ประกอบจะเพิ่งไปข้างหน้าและ เขียนสิ่งของตัวเอง อย่างไรก็ตามมีการเตือนผู้พัฒนาให้นำส่วนประกอบมาใช้ใหม่ / ปรับปรุงเอกสารประกอบ / สนับสนุนส่วนประกอบพื้นฐานแทนการทำซ้ำรหัสที่มีอยู่และปรับแต่งมันหรือเขียนเอง? วิธีทำให้ส่วนประกอบค้นพบได้ง่ายและใช้งานได้ง่ายเพื่อให้ทุกคนใช้งานได้? ฉันคิดว่านักพัฒนาซอฟต์แวร์ทุกคนรู้เกี่ยวกับประโยชน์ของส่วนประกอบที่สามารถนำกลับมาใช้ใหม่ได้และต้องการใช้มันเป็นเพียงแค่เราไม่รู้วิธีที่จะทำให้พวกมันค้นพบได้ นอกจากนี้ผู้พัฒนาเมื่อพวกเขากำลังเขียนโค้ดพวกเขารู้ว่าพวกเขาควรจะเขียนโค้ดที่สามารถใช้ซ้ำได้ แต่ขาดแรงจูงใจในการทำเช่นนั้น
16 code-reuse 

3
วิธีจัดการกับค่าเงินใน PHP และ MySql
ฉันได้รับรหัสมรดกจำนวนมากที่เขียนด้วย PHP บนฐานข้อมูล MySQL สิ่งที่ฉันสังเกตคือแอพพลิเคชั่นใช้doublesสำหรับจัดเก็บและจัดการข้อมูล ตอนนี้ฉันเจอโพสต์มากมายที่กล่าวถึงวิธีdoubleที่ไม่เหมาะสำหรับการดำเนินงานทางการเงินเนื่องจากข้อผิดพลาดในการปัดเศษ อย่างไรก็ตามฉันยังไม่ได้เจอวิธีแก้ปัญหาที่สมบูรณ์เกี่ยวกับวิธีจัดการค่าเงินในโค้ด PHP และเก็บไว้ในฐานข้อมูล MySQL มีวิธีปฏิบัติที่ดีที่สุดเมื่อต้องจัดการกับเงินใน PHP โดยเฉพาะหรือไม่? สิ่งที่ฉันกำลังมองหาคือ: ข้อมูลควรถูกเก็บไว้ในฐานข้อมูลอย่างไร? ประเภทคอลัมน์? ขนาด? ข้อมูลควรจะถูกจัดการอย่างไรในการบวกและการลบแบบปกติ การคูณหรือหาร? เมื่อใดที่ฉันควรปัดเศษค่า การปัดเศษเท่าไหร่ที่ยอมรับได้ถ้ามี? มีความแตกต่างระหว่างการจัดการกับค่าเงินขนาดใหญ่และค่าต่ำหรือไม่? หมายเหตุ: มากง่ายโค้ดตัวอย่างของวิธีการที่ฉันอาจพบค่าเงินในชีวิตประจำวัน (กังวลด้านความปลอดภัยต่าง ๆ ถูกละเลยทำให้เข้าใจง่ายแน่นอนในชีวิตจริงฉันไม่เคยจะใช้รหัสของฉันเช่นนี้.) $a= $_POST['price_in_dollars']; //-->(ex: 25.06) will be read as a string should it be cast to double? $b= $_POST['discount_rate'];//-->(ex: 0.35) value will always be …

5
การใช้คำสำคัญ“ การใช้” ในอินเตอร์เฟซ C #
เมื่อฉันใช้ C # เพื่อเขียนโค้ดบางส่วนและฉันกำหนดอินเทอร์เฟซโดยใช้ Visual Studio 2010 จะมีคำสั่ง "ใช้" จำนวนมาก (ดังแสดงในตัวอย่าง) using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace TestEngine.TestNameSpace { interface ITest1 { bool testMethod(int xyz); } } ฉันสงสัยว่าสิ่งเหล่านี้มีไว้เพื่ออะไรและหากจำเป็นจริงๆ ฉันจะออกไปได้ไหม? จำเป็นหรือไม่เมื่อฉันใช้ส่วนเหล่านั้นในคำอธิบายส่วนต่อประสานของฉัน

3
แบบแผนการตั้งชื่อสำหรับวัตถุล็อคเธรดเฉพาะ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว คำถามเล็ก ๆ น้อย ๆ แต่ฉันไม่สามารถหาเอกสารอย่างเป็นทางการหรือแม้กระทั่งบล็อกความคิดเห็น / การอภิปรายเกี่ยวกับมัน พูดง่ายๆ: เมื่อฉันมีวัตถุส่วนตัวซึ่งมีจุดประสงค์เพียงอย่างเดียวที่จะให้บริการส่วนตัวlockฉันจะตั้งชื่อวัตถุนั้นว่าอะไร class MyClass { private object LockingObject = new object(); void DoSomething() { lock(LockingObject) { //do something } } } เราควรตั้งชื่อLockingObjectอะไรที่นี่? นอกจากนี้ให้พิจารณาไม่ใช่แค่ชื่อของตัวแปร แต่จะมีลักษณะอย่างไรเมื่ออยู่ในโค้ดเมื่อล็อค ฉันเคยเห็นตัวอย่างหลายอย่าง แต่ดูเหมือนไม่มีคำแนะนำที่ชัดเจน การใช้งานมากมายSyncRoot(และรูปแบบเช่น_syncRoot) ตัวอย่างโค้ด: lock(SyncRoot) ,lock(_syncRoot) สิ่งนี้ดูเหมือนจะได้รับอิทธิพลจากSyncLockคำสั่งที่เทียบเท่าของ VB SyncRootคุณสมบัติที่มีอยู่ในคลาส ICollection บางส่วนและเป็นส่วนหนึ่งของรูปแบบการออกแบบ SyncRoot …

3
ดึงการเปลี่ยนแปลงจากต้นแบบไปยังสาขาที่ทำงานของฉันหรือไม่
เราสองคนกำลังทำงานกับบางสิ่งอยู่ เรากำลังใช้โครงสร้างสาขานี้ เจ้านาย dev-A dev-B เราทั้งคู่ทำงานแยกสาขา (dev-A, B) และเมื่อใดก็ตามที่เราทำเราส่งเสริมการเปลี่ยนแปลงของเราเป็นหลัก แต่ข้อเสียเปรียบของเรื่องนี้คือเราไม่สามารถเปลี่ยนแปลงสิ่งที่นักพัฒนาคนอื่นทำ ทุกอย่างมีอยู่ในทรีหลัก - แต่เราไม่สามารถรับอัปเดตล่าสุดที่นักพัฒนาคนอื่นทำ มีวิธีแก้ไขปัญหานี้หรือไม่หรือเราควรจะเปลี่ยนโครงสร้างสาขาของเรา (ต่อคุณสมบัติ)?
16 git 

3
การตรวจสอบรหัสที่ใช้ความเห็นโค้ดเป็นความคิดที่ดีหรือไม่
ปัจจัยพื้นฐาน ทีมใช้ DVCS IDE รองรับการแยกวิเคราะห์ความคิดเห็น (เช่นสิ่งที่ต้องทำและอื่น ๆ ) เครื่องมือเช่น CodeCollaborator มีราคาแพงสำหรับงบประมาณ เครื่องมือเช่น gerrit นั้นซับซ้อนเกินไปสำหรับการติดตั้งหรือไม่สามารถใช้งานได้ ขั้นตอนการทำงาน ผู้เขียนเผยแพร่บางแห่งในสาขาฟีเจอร์ repo กลาง ผู้ตรวจทานดึงข้อมูลและเริ่มตรวจสอบ ในกรณีที่ผู้ตรวจสอบคำถาม / ปัญหาสร้างความคิดเห็นด้วยป้ายกำกับพิเศษเช่น "REV" ป้ายกำกับดังกล่าวต้องไม่อยู่ในรหัสการผลิต - เฉพาะในขั้นตอนการตรวจสอบ: $somevar = 123; // REV Why do echo this here? echo $somevar; เมื่อผู้ตรวจทานโพสต์ความคิดเห็นเสร็จ - เพียงแค่คอมเม้นต์ด้วยข้อความ "ความคิดเห็น" ที่งี่เง่าและดันกลับมา ผู้เขียนดึงฟีเจอร์แบรนช์กลับมาและตอบความคิดเห็นในลักษณะเดียวกันหรือปรับปรุงโค้ดแล้วดันกลับ เมื่อความคิดเห็น "REV" หายไปเราสามารถคิดได้ว่าการตรวจทานเสร็จสิ้นแล้ว ผู้เขียนจะทำการย่อกิ่งก้านสาขาที่มีลักษณะโต้ตอบ, กำจัดมันเพื่อลบ "ความคิดเห็น" …

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