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

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

3
การเยาะเย้ยแนะนำการจัดการในรหัสการผลิต
สมมติว่ามีอินเทอร์เฟซ IReader การนำไปใช้ของตัวอ่าน IReader อินเตอร์เฟส ReaderImplementation และคลาส ReaderConsumer ที่ใช้และประมวลผลข้อมูลจากเครื่องอ่าน public interface IReader { object Read() } การดำเนินงาน public class ReaderImplementation { ... public object Read() { ... } } ผู้บริโภค: public class ReaderConsumer() { public string location // constructor public ReaderConsumer() { ... } // read some data public object …

4
ดึงค่าโดยไม่ต้องตรวจสอบเป็นโมฆะใน Java
หลายครั้งที่ฉันตรวจสอบตัวเองเป็นโมฆะเมื่อดึงค่าจากลำดับชั้นข้อมูลบางอย่างเพื่อหลีกเลี่ยง NullPointerExceptions ซึ่งฉันพบว่ามีแนวโน้มที่จะเกิดข้อผิดพลาดและต้องมีสำเร็จรูปจำนวนมาก ฉันได้เขียนกิจวัตรที่ง่ายมากซึ่งทำให้ฉันสามารถข้ามการตรวจสอบค่าว่างเมื่อดึงวัตถุ ... public final class NoNPE { public static <T> T get(NoNPEInterface<T> in) { try { return in.get(); } catch (NullPointerException e) { return null; } } public interface NoNPEInterface<T> { T get(); } } ฉันใช้มันแบบนี้ ... Room room = NoNPE.get(() -> country.getTown().getHouses().get(0).getLivingRoom()); ด้านบนทำให้ฉันได้รับวัตถุห้องหรือโมฆะโดยไม่ต้องตรวจสอบระดับผู้ปกครองทั้งหมด คุณคิดอย่างไรกับข้างต้น? ฉันกำลังสร้างรูปแบบที่มีปัญหาหรือไม่? มีวิธีที่ดีกว่านี้ในความคิดของคุณ?
15 java  null 

5
ฟังก์ชั่นเล็ก ๆ เทียบกับการรักษาหน้าที่การใช้งานในฟังก์ชั่นเดียวกัน
ฉันมีคลาสที่ตั้งค่าอาร์เรย์ของโหนดและเชื่อมต่อกับแต่ละอื่น ๆ ในโครงสร้างคล้ายกราฟ เป็นการดีที่สุดที่จะ: คงฟังก์ชันการทำงานเพื่อเริ่มต้นและเชื่อมต่อโหนดในฟังก์ชันเดียว มีฟังก์ชั่นการเริ่มต้นและการเชื่อมต่อในฟังก์ชั่นที่แตกต่างกันสองฟังก์ชั่น (และมีลำดับที่ต้องพึ่งพาซึ่งต้องเรียกใช้ฟังก์ชั่น - แม้ว่าโปรดทราบว่าฟังก์ชั่นเหล่านี้เป็นแบบส่วนตัว) วิธีที่ 1: (แย่ในฟังก์ชั่นหนึ่งที่ทำสองสิ่ง แต่มันเก็บหน้าที่การทำงานที่พึ่งพากันไว้ด้วยกัน - โหนดไม่ควรเชื่อมต่อโดยไม่ต้องเริ่มต้นก่อน) init() { setupNodes() } private func setupNodes() { // 1. Create array of nodes // 2. Go through array, connecting each node to its neighbors // according to some predefined constants } วิธีที่ 2: (ในแง่ที่ดีกว่าว่าเป็นการจัดทำเอกสารด้วยตนเอง …

3
การแชร์วัตถุ DTO ระหว่างไมโครไซต์
TL; DR - การใช้ไลบรารี POJO ร่วมกันระหว่างบริการต่าง ๆ เป็นเรื่องปกติไหม โดยทั่วไปเราต้องการให้การแบ่งปันระหว่างบริการ จำกัด อย่างเข้มงวดเป็นไม่ถ้าเป็นไปได้ มีการถกเถียงกันบ้างหรือไม่ว่าบริการที่ใช้ข้อมูลร่วมกันนั้นควรจัดให้มีห้องสมุดลูกค้าให้ลูกค้าใช้หรือไม่ โดยทั่วไปแล้ว client-lib นั้นเป็นทางเลือกสำหรับลูกค้าของบริการที่จะใช้และสามารถใช้งาน API ได้อย่างไรก็ตามพวกเขาจะโปรดใช้ว่าจะใช้ client-lib หรือใช้ภาษาอื่นและใช้ลักษณะทั่วไปของไลบรารีและเช่นนั้น ในกรณีของฉัน - ฉันพิจารณาบริการที่สร้างวัตถุของข้อมูล สมมติว่าวัตถุนี้เป็นสัตว์เลี้ยง มันไม่ใช่เอนทิตีของฐานข้อมูล แต่เป็น POJO ที่แสดงถึงข้อมูลพื้นฐานโดยนัย POJO นี้เป็นสิ่งที่ API ได้กำหนดไว้ สมมติว่า: สัตว์เลี้ยง - อายุ, น้ำหนัก, ชื่อ, เจ้าของ, ที่อยู่, สปีชี่ ฯลฯ บริการ 1 - PetKeeper: มันจะสร้างสัตว์เลี้ยงด้วยเหตุผลใดก็ตามและเก็บข้อมูลทั้งหมดไว้และต้องอ้างอิงบริการนี้เพื่อรับสัตว์เลี้ยงหรือทำการดัดแปลงสัตว์เลี้ยงให้พูดการเปลี่ยนชื่อหรือการเปลี่ยนที่อยู่จะต้องทำผ่าน การเรียก API ไปยังบริการนี้ บริการ …

3
Redux ใช้รูปแบบวัตถุของพระเจ้าที่ถูกสุขอนามัยหรือไม่?
ในขณะที่เรียนรู้เกี่ยวกับ Redux รูปแบบพระเจ้า - วัตถุ (หรือรูปแบบต่อต้าน) มาถึงใจของฉัน - ทั้งคู่มีวัตถุขนาดใหญ่เพียงชิ้นเดียวที่เก็บข้อมูลแอปและวิธีการต่าง ๆ เพื่อจัดการกับมัน แต่ Redux ได้วางข้อ จำกัด บางอย่างเช่นการทำให้ Object ไม่เปลี่ยนรูปแบบและฟังก์ชั่นล้วนๆนั้นยังคงรักษาลายเซ็นที่เข้มงวด ดังนั้นคำถามที่เกิดขึ้นคือ Redux ใช้วัตถุพระเจ้ารุ่นที่ถูกสุขลักษณะหรือไม่? หรือมีบางอย่างที่เกี่ยวข้องกับ Javascript ที่ไม่ได้เป็น OOP ที่คลาสสิกพิมพ์ดีดอย่างมาก?
15 redux 

4
size_t หรือ int สำหรับส่วนข้อมูลดัชนี ฯลฯ
ใน C ++, size_t(หรืออย่างถูกต้องมากขึ้นT::size_typeซึ่งเป็น "มักจะ" size_t; เช่นunsignedประเภท) จะใช้เป็นค่าตอบแทนสำหรับsize()อาร์กิวเมนต์เพื่อoperator[]ฯลฯ (ดูstd::vector, et. al.) ในทางตรงกันข้ามภาษา. NET ใช้int(และเลือกlong) เพื่อจุดประสงค์เดียวกัน ในความเป็นจริงที่สอดคล้องกับ CLS ภาษาไม่จำเป็นต้องสนับสนุนประเภทที่ไม่ได้ลงชื่อ เนื่องจาก. NET นั้นใหม่กว่า C ++ มีบางสิ่งที่บอกฉันว่าอาจมีปัญหาในการใช้งานunsigned intแม้กระทั่งสิ่งที่ "ไม่สามารถ" เป็นลบได้เช่นดัชนีอาร์เรย์หรือความยาว C ++ เป็น "วัตถุทางประวัติศาสตร์" สำหรับความเข้ากันได้แบบย้อนหลังหรือไม่? หรือมีการแลกเปลี่ยนการออกแบบที่แท้จริงและสำคัญระหว่างสองแนวทาง เหตุใดเรื่องนี้ อืม ... ฉันควรใช้อะไรกับคลาสหลายมิติใหม่ใน C ++; size_tหรือint? struct Foo final // e.g., image, matrix, etc. { typedef …
15 c#  c++  array 

6
Microservices อัตโนมัติคิวเหตุการณ์และการค้นหาบริการ
ฉันได้อ่านเกี่ยวกับบริการไมโครเมื่อไม่นานมานี้และนี่คือข้อสรุปบางอย่างที่ฉันได้รับ (โปรดแก้ไขฉันหากฉันผิดที่จุดใด) สถาปัตยกรรมบริการไมโครเป็นไปด้วยดีกับการออกแบบที่ขับเคลื่อนด้วยโดเมน โดยทั่วไปแล้วหนึ่ง MS หมายถึงบริบทที่มีขอบเขตหนึ่ง ถ้า micro-service Aต้องการฟังก์ชันที่อยู่ใน micro-service BโมเดลของฉันอาจผิดและAและB ควรเป็น micro-service / BC หนึ่งอัน การสื่อสารแบบซิงโครนัสระหว่างบริการไมโคร (คำขอ HTTP โดยตรง) ไม่ดีทำให้ขัดต่อวัตถุประสงค์ของบริการไมโครและแนะนำการมีเพศสัมพันธ์ระหว่างส่วนประกอบ การสื่อสารแบบอะซิงโครนัสระหว่างบริการเป็นที่ต้องการ บริการควรเผยแพร่กิจกรรมไปยังคิวข้อความเพื่อให้บริการอื่น ๆ สามารถสมัครและประมวลผลส่วนหนึ่งของเหตุการณ์หรือใช้เพื่อทำซ้ำส่วนของข้อมูลที่จำเป็นสำหรับบริบทของพวกเขา วิธีนี้บริการสามารถดำเนินการตามคำขอแม้บริการอื่น ๆ จะหยุดทำงานซึ่งไม่ได้เกิดขึ้นในการสื่อสารแบบซิงโครนัส ถ้า micro-service Aเผยแพร่เหตุการณ์, micro-service Bสมัครสมาชิกกับเหตุการณ์นั้นและสร้างเหตุการณ์ใหม่เป็นผลลัพธ์, micro-service Aไม่ควรเป็นการประมวลผลเหตุการณ์ที่สร้างขึ้นใหม่, ซึ่งจะเป็นการอ้างอิงแบบวงกลม ในกรณีนี้เราควรแนะนำบริการไมโครที่สามหรือรวมAและBเข้ากับบริการไมโครAB บริการไมโครเป็นจริงคำที่ทำให้เข้าใจผิด เราควรพยายามเพื่อบริบทขนาดเล็ก แต่ไม่จำเป็นต้องเป็นกรณี คำไม่ควรเป็น "บริการไมโคร" แต่ " ใหญ่พอที่จะทำงานบริการ " บริการไมโครช่วยให้เราสามารถแนะนำฟังก์ชั่นใหม่ได้อย่างง่ายดายและไม่ต้องกลัวว่าเราจะทำลายทั้งระบบ มันสามารถทำได้โดยการแนะนำบริการใหม่หรือ refactoring หนึ่งในที่มีอยู่ …

7
ข้อเสียของการใช้ foreign key แบบ nullable แทนการสร้างตาราง intersection
ว่าฉันมีแผนภาพ ER ต่อไปนี้: ตอนนี้ถ้าฉันแสดงถึงความสัมพันธ์โดยใช้ foreign key ของSchoolin StudentฉันสามารถมีNULLค่าได้(เนื่องจาก a Student ไม่จำเป็นต้องเป็นของ a School) ตัวอย่างเช่น: ดังนั้นวิธีที่ถูกต้อง (ขึ้นอยู่กับสิ่งที่ฉันได้อ่าน) คือการสร้างตารางสี่แยกเพื่อเป็นตัวแทนของความสัมพันธ์ตัวอย่างเช่น วิธีนี้ไม่มีค่าสามารถจะนำเสนอในตารางNULLSchool_has_Student แต่อะไรคือข้อเสียของการใช้ foreign key แบบ nullable แทนการสร้างตาราง intersection? แก้ไข: ฉันเลือก ( school_id, student_id) เป็นคีย์หลักสำหรับSchool_has_Studentตารางโดยไม่ตั้งใจซึ่งทำให้ความสัมพันธ์แบบนี้มีมากหลายต่อหลายคน คีย์หลักที่ถูกต้องควรเป็นstudent_id:

1
std :: vector <bool> มาได้อย่างไร
ทุกวันนี้นักพัฒนา C ++ ทุกคนยอมรับว่าstd::vector&lt;bool&gt;มันเป็นความผิดพลาดเพราะมันไม่ใช่การหลอกลวงและกรณีการใช้งานของมันนั้นทับซ้อนกับสิ่งเหล่านั้นstd::bitsetอยู่ดี คะแนนเป็นมาตรฐานได้อย่างไร มันเป็นความขัดแย้งในเวลา? อะไรคือข้อโต้แย้งหลักที่สนับสนุน?
15 c++  history  stl 

6
การจัดเรียงหน่วยความจำมีความสำคัญแค่ไหน? มันยังคงเป็นเรื่องสำคัญหรือไม่
จากช่วงเวลานี้ฉันได้ค้นหาและอ่านมากเกี่ยวกับการจัดตำแหน่งหน่วยความจำวิธีการทำงานและวิธีการใช้งาน บทความที่เกี่ยวข้องมากที่สุดที่ฉันได้พบในขณะนี้คือคนนี้ แต่ถึงอย่างนั้นฉันก็ยังมีคำถามบางอย่างเกี่ยวกับเรื่องนี้: ออกจากระบบฝังตัวเรามักจะมีหน่วยความจำขนาดใหญ่ในคอมพิวเตอร์ของเราที่ทำให้การจัดการหน่วยความจำน้อยลงมากฉันทำการปรับให้เหมาะสม แต่ตอนนี้มันเป็นสิ่งที่สามารถสร้างความแตกต่างได้ถ้าเราเปรียบเทียบโปรแกรมเดียวกันกับหรือ ไม่มีหน่วยความจำที่จัดเรียงใหม่และจัดตำแหน่ง? การจัดตำแหน่งหน่วยความจำมีข้อดีอื่น ๆ หรือไม่? ฉันอ่านบางแห่งว่า CPU ทำงานได้ดีขึ้น / เร็วขึ้นด้วยหน่วยความจำที่จัดเรียงเพราะใช้คำสั่งในการประมวลผลน้อยกว่า (หากคุณมีลิงค์สำหรับบทความ / เกณฑ์มาตรฐานเกี่ยวกับเรื่องนี้?) ในกรณีนี้ มีข้อดีมากกว่าสองอย่างนี้ไหม? ในลิงค์บทความที่บทที่ 5 ผู้เขียนพูดว่า: ระวัง: ใน C ++ คลาสที่ดูเหมือนว่า structs อาจผิดกฎนี้! (ไม่ว่าพวกเขาจะทำหรือไม่ขึ้นอยู่กับว่าคลาสพื้นฐานและฟังก์ชั่นสมาชิกเสมือนมีการใช้งานอย่างไรและแตกต่างกันตามคอมไพเลอร์) บทความส่วนใหญ่พูดคุยเกี่ยวกับโครงสร้าง แต่การประกาศตัวแปรท้องถิ่นได้รับผลกระทบจากความต้องการนี้เช่นกัน? คุณเคยคิดบ้างไหมว่าการจัดเรียงหน่วยความจำทำงานอย่างไรใน C ++ เนื่องจากดูเหมือนว่าจะมีความแตกต่างบ้างไหม? คำถามเดิมนี้มีคำว่า "การจัดตำแหน่ง" แต่ไม่ได้ให้คำตอบสำหรับคำถามข้างต้น

3
วิธีจัดการกับคอมพิวเตอร์ที่เร็วขึ้นในวิดีโอเกมไคลเอนต์ / เซิร์ฟเวอร์แบบเรียลไทม์
ฉันกำลังสร้างเกมออนไลน์ครั้งแรกโดยใช้ socket.io และฉันต้องการให้เป็นเกมแบบผู้เล่นหลายคนแบบเรียลไทม์เช่น agar.io หรือ diep.io แต่ฉันพบปัญหาในการพยายามหาวิธีที่จะทำให้คอมพิวเตอร์ทั้งหมดทำงานด้วยความเร็วเดียวกัน ฉันมีสามแนวคิดสำหรับแบบจำลอง แต่ไม่มีแนวคิดใดที่ถูกต้องและฉันสงสัยว่าวิดีโอเกมปกติทำได้อย่างไร (คุณสามารถข้ามอ่านความคิดของฉันพวกเขาเพียงให้วิธีการดูปัญหาที่ฉันมี) เซิร์ฟเวอร์อนุญาตให้ไคลเอนต์ทำงานด้วยตนเองและส่งต่อการอัปเดตไปยังเซิร์ฟเวอร์ซึ่งจะส่งต่อไปยังไคลเอนต์ที่เหลือ นี่เป็นปัญหาที่คอมพิวเตอร์บางเครื่องทำงานได้เร็วกว่าเครื่องอื่น ๆ ทำให้พวกเขาอัปเดตเร็วขึ้นและเคลื่อนที่ข้ามหน้าจอเร็วขึ้น ให้เซิร์ฟเวอร์แจ้งให้ลูกค้าทราบเมื่อมีการอัปเดต ฉันสามารถรอจนกว่าลูกค้าคนสุดท้ายจะตอบสนอง (เป็นความคิดที่แย่มากในกรณีที่คนคนหนึ่งมีคอมพิวเตอร์ช้า) รอจนกว่าลูกค้าคนแรกจะตอบสนอง (อีกครั้งรอการสื่อสารก่อนแต่ละเฟรม) หรือเพียงแค่ส่งพวกเขาให้เร็วที่สุด ดูเหมือนว่าจะพบปัญหาเดียวกันกับหมายเลข 1) ที่จุดเริ่มต้นของเกมให้เซิร์ฟเวอร์บอกกับลูกค้าถึงวิธีการอัปเดตอย่างรวดเร็ว นี่หมายความว่าลูกค้าจะต้องรับผิดชอบในการ จำกัด การเคลื่อนไหวในช่วงเวลานั้น ตัวอย่างเช่นหากมีคนจัดการกดปุ่มสองครั้งภายในช่วงเวลานั้นก็จะส่งเหตุการณ์กดปุ่มเพียงปุ่มเดียว นี่เป็นปัญหาที่การดำเนินการบางอย่างอาจถูกเพิกเฉย (เช่นการกดปุ่มสองครั้ง) และการโต้ตอบจะขึ้นอยู่กับนาฬิกาของลูกค้าซึ่งอาจไม่ตรงกับนาฬิกาของเซิร์ฟเวอร์ เซิร์ฟเวอร์จะต้องติดตามลูกค้าแต่ละรายและตรวจสอบให้แน่ใจว่ามีการส่งการอัปเดตในเวลาที่ถูกต้อง ฉันได้ทำการค้นคว้าแล้ว แต่บทความที่ฉันอ่านดูเหมือนจะไม่เจาะจงว่าจะทำอย่างไรถ้าลูกค้าส่งการอัพเดตเร็วกว่าไคลเอนต์อื่น ๆ ในกรณีของฉันฉันกำลังติดต่อกับคนที่มีความเร็วแป้นพิมพ์เร็วกว่า (คอมพิวเตอร์จะส่งการอัปเดตแป้นพิมพ์มากกว่าคอมพิวเตอร์เครื่องอื่น) โปรแกรมเมอร์มักจะจัดการกับเรื่องนี้อย่างไร

3
ทำไมผู้สร้าง Ruby จึงเลือกใช้แนวคิดของ Symbols
tl; dr: จะมีคำจำกัดความเกี่ยวกับสัญลักษณ์ของผู้ไม่เชื่อเรื่องภาษาและมีเหตุผลที่จะใช้มันในภาษาอื่น ๆ หรือไม่? ดังนั้นทำไมผู้สร้าง Ruby จึงใช้แนวคิดsymbolsในภาษา ฉันถามสิ่งนี้จากมุมมองของโปรแกรมเมอร์ที่ไม่ใช่ทับทิม ฉันได้เรียนรู้จำนวนมากภาษาอื่น ๆ symbolsและพบว่าในไม่มีของพวกเขาจำเป็นที่จะต้องระบุถ้าผมจัดการหรือไม่กับสิ่งที่โทรทับทิม คำถามหลักคือแนวคิดของsymbolsRuby มีอยู่ในการแสดงหรือไม่หรือเป็นเพียงบางสิ่งที่จำเป็นเนื่องจากวิธีการเขียนภาษา? โปรแกรมใน Ruby จะเบาลงและ / หรือเร็วกว่าสมมติว่า Python หรือ Javascript เป็นคู่กันหรือไม่ ถ้าเป็นเช่นนั้นมันจะเป็นเพราะsymbolsอะไร? เนื่องจากหนึ่งในความตั้งใจของรูบี้คือการอ่านและเขียนสำหรับมนุษย์ได้ง่ายผู้สร้างมันไม่สามารถปลดเปลื้องกระบวนการเข้ารหัสโดยใช้การปรับปรุงเหล่านั้นในล่ามเอง (เพราะอาจเป็นภาษาอื่น) ดูเหมือนว่าทุกคนต้องการที่จะรู้ว่าอะไรsymbolsคืออะไรและใช้งานอย่างไรและทำไมพวกเขาถึงอยู่ที่นั่นในตอนแรก

3
ทำไม: nth-child () ใน CSS เริ่มต้นจาก 1 แทนที่จะเป็น 0
ทำไม: nth-child () วนซ้ำจากหนึ่งแทนที่จะเป็นศูนย์ ดังที่แสดงในตัวอย่างนี้ เหตุใดจึงเลือกองค์ประกอบแรกและไม่ใช่องค์ประกอบที่สองเมื่อ p :nth-child(1)
15 html  css  web-design 

6
วิธีปฏิบัติที่ดีที่สุดในการ จำกัด 80 ตัวอักษรในขณะที่เขียนซอร์สโค้ดได้อย่างไร
ดังนั้นอย่างที่คุณรู้ว่ามีวิธีปฏิบัติที่ดีที่สุดว่า จำกัด แถวของซอร์สโค้ดไม่เกิน 80 อักขระ นี่คือ 2 ลิงค์: เพราะเหตุใด 80 อักขระจึงถูกจำกัดความกว้างของมาตรฐานสำหรับความกว้างของรหัส ขีด จำกัด 80 อักขระยังคงมีความเกี่ยวข้องในช่วงเวลาของจอภาพแบบจอกว้างหรือไม่ และฉันมั่นใจว่าคุณสามารถทำได้ดีขึ้นหากคุณค้นหาแนวปฏิบัติที่ดีที่สุดนี้ แต่ฉันพบว่ามันยากมากนี่คือตัวอย่าง: public class MyClass { public void myMethod() { final Map&lt;String, List&lt;MyInterfaceHere&gt;&gt; myReference ดังนั้นคุณเยื้องแต่ละชั้นเรียนและแต่ละวิธีและแต่ละคำสั่ง และฉันอยู่ที่คอลัมน์ 60 ในตอนท้ายของ 'e' สุดท้ายที่ฉันมีใน 'myReference' ฉันมีช่องว่างเหลืออีก 20 ช่องเรียกว่าตัวสร้างและกำหนดวัตถุให้กับการอ้างอิงที่ฉันมี ฉันหมายความว่านี่ดูดีกว่าจริงๆ: public class MyClass { public void myMethod() { final Map&lt;String, …

3
กลยุทธ์การแยก Git สำหรับโค้ดที่ยังไม่เผยแพร่ซึ่งใช้งานมานาน
ที่ทีมของเรานอกเหนือจากงานแต่ละหน่วย (เรื่อง) เรามีธีมการทำงานที่ยาวนานขึ้น (Epics) เรื่องราวหลากหลายทำให้มหากาพย์ ตามเนื้อผ้าเรามีฟีเจอร์กิ่งไม้สำหรับแต่ละเรื่องและรวมเหล่านั้นเข้ากับมาสเตอร์เมื่อพวกเขาผ่าน QA อย่างไรก็ตามเราต้องการเริ่มระงับการเผยแพร่เรื่องราวที่เสร็จสมบูรณ์ใน Epic จนกว่า Epic จะถือเป็น "คุณลักษณะเสร็จสมบูรณ์" เราจะปล่อยฟีเจอร์เหล่านี้เป็นการผลิตเมื่อปิด Epic ทั้งหมดแล้วเท่านั้น นอกจากนี้เรามีเซิร์ฟเวอร์ที่สร้างขึ้นทุกคืน - เราต้องการให้เรื่องราวทั้งหมดที่ปิด (รวมถึงส่วนที่เป็นส่วนหนึ่งของ Epics ที่ไม่สมบูรณ์) ถูกนำไปใช้กับเซิร์ฟเวอร์รายคืนนี้โดยอัตโนมัติ มีคำแนะนำใด ๆ เกี่ยวกับวิธีจัดการ repo ของเราเพื่อให้บรรลุเป้าหมายนี้หรือไม่? ฉันคิดว่าจะแนะนำ "สาขาที่ยิ่งใหญ่" ซึ่งเราจะรวมเรื่องที่ปิดไปยังสาขาที่เกี่ยวข้องแทนการเป็นอาจารย์โดยตรง แต่ข้อกังวลของฉันคือ: ฉันกังวลเกี่ยวกับความขัดแย้งที่อาจเกิดขึ้นหากสาขามหากาพย์เปิดให้บริการเป็นเวลานาน งานสร้างยามค่ำคืนจะต้องรวมสาขาของมหากาพย์ทั้งหมดไว้ในสาขา "สร้างยามค่ำคืน" อีกครั้งอาจเกิดความขัดแย้งผสานและสิ่งนี้จะต้องทำโดยอัตโนมัติ

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