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

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

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

6
วิธีสร้างแบบจำลองมากกว่า 'นามสกุล'?
ในประเทศที่พูดภาษาสเปนเราใช้นามสกุลมากกว่าหนึ่งเช่น: ชื่อ↘↙นามสกุล Pedro Arturo Rodríguez Loyola ชื่อกลาง↗↖ (?) ฉันกำลังพยายามสร้างแบบจำลองข้อมูลสำหรับชื่อผู้ป่วย ในประเทศของเราเป็นสิ่งสำคัญดังนั้นฉันจึงไม่สามารถละเลยนามสกุลที่สองได้ แต่ฉันต้องการสร้างแอปพลิเคชันที่เหมาะสมกับนักพัฒนาอื่น ๆ โดยเฉพาะจากประเทศที่ใช้ภาษาอังกฤษ ฉันสร้างคำถามที่คล้ายกันในภาษาอังกฤษ SEมีความเข้าใจเกี่ยวกับสาเหตุที่มีความสำคัญต่อทั้งสองค่า

5
คลาสบูลีนของ Java - ทำไมไม่ enum?
สำหรับฉันแล้วดูเหมือนว่าคลาสบูลีนเป็นตัวเลือกที่เหมาะสมที่สุดที่จะนำไปใช้เป็น enum การดูซอร์สโค้ดคลาสส่วนใหญ่เป็นวิธีสแตติกซึ่งสามารถย้ายได้ไม่เปลี่ยนแปลงไปเป็น enum ส่วนที่เหลือจะกลายเป็น enum ได้ง่ายกว่ามาก เปรียบเทียบต้นฉบับ (ความคิดเห็นและวิธีการแบบคงที่ออก): public final class Boolean implements java.io.Serializable, Comparable<Boolean> { public static final Boolean TRUE = new Boolean(true); public static final Boolean FALSE = new Boolean(false); private final boolean value; public Boolean(boolean value) { this.value = value; } public Boolean(String s) { this(toBoolean(s)); …
11 java  api  source-code 

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

3
การส่งอีเมลโดยไม่ต้องใช้เซิร์ฟเวอร์อีเมล
JavaMail ส่งอีเมลโดยใช้เซิร์ฟเวอร์อีเมลโดยทั่วไปผ่านอินเตอร์เฟส SMTP ของผู้ให้บริการอีเมล จำเป็นต้องใช้เซิร์ฟเวอร์อีเมลในการส่งอีเมลหรือไม่ ฉันมีเว็บไซต์ที่จะส่งอีเมลและถ้าเป็นไปได้ฉันต้องการส่งอีเมลโดยตรงจากรหัสเว็บไซต์โดยไม่ต้องใช้เซิร์ฟเวอร์อีเมล JavaMail FAQ บอกว่าจำเป็นต้องใช้เซิร์ฟเวอร์อีเมล มีวิธีการส่งอีเมลโดยไม่ใช้เซิร์ฟเวอร์อีเมลด้วย JavaMail หรือ API อื่นหรือไม่
11 java  email 

2
เหตุใด Apple จึงอนุญาตเฉพาะสำหรับ Static Frameworks บน iOS
เห็นได้ชัดว่า Apple มีความสามารถในการสร้างไลบรารี่ที่โหลดแบบไดนามิก (เรียกว่าเฟรมเวิร์ก) สำหรับ iOS เนื่องจากพวกมันมาพร้อมกับ XCode (เช่น UIKit) นักพัฒนาแอปมีความสามารถในการสร้างห้องสมุดแบบคงที่หรืออย่างดีที่สุดหลอก Xcode ให้คิดว่ามันกำลังโหลดเฟรมเวิร์กเมื่อมันโหลดไลบรารีแบบสแตติกจริง ๆ แล้วสิ่งนี้เรียกว่าการสร้างเฟรมปลอม แต่ไม่มีประโยชน์ในการโหลดแบบไดนามิก เหตุผลของ Apple ในการป้องกันเฟรมเวิร์กแบบไดนามิกจากนักพัฒนาแอพคืออะไร ดูเหมือนว่าจะช่วยลดความยุ่งยากในการใช้งานไลบรารีภายนอกเนื่องจากผู้พัฒนาไม่จำเป็นต้องพึ่งพาแฟล็กเกอร์ลิงค์ฟิงเกอร์หรือการพึ่งพาไลบรารีโอเพนซอร์ส ฉันเห็นเหตุผลทั่วไปคือความปลอดภัย เหตุใด Apple จึงอนุญาตบน OSX และไม่ใช่ iOS การรักษาความปลอดภัยไม่ใช่ข้อกำหนดที่มีเช่นกัน? แก้ไข: นี่ไม่เกี่ยวข้องกับ iOS 8 อีกต่อไป Apple ได้เพิ่มการรองรับเฟรมเวิร์กแบบไดนามิก

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

3
Kanban: วิธีเลือกขนาดของไอเท็มงาน
เริ่มต้นด้วย Kanban ฉันไม่แน่ใจเกี่ยวกับวิธีการทำงานของฉันอย่างละเอียด ในขณะที่คุณพบคำแนะนำที่เป็นรูปธรรมมากมายเกี่ยวกับวิธีเลือก WIP แต่บทเรียน Kanban ส่วนใหญ่ที่ฉันได้อ่านค่อนข้างคลุมเครือเกี่ยวกับขนาดของรายการงาน (= การ์ดบนกระดาน) สำหรับการวางแผนและการประมาณค่าที่คนมักจะแนะนำเพื่อให้ขนาดของขนาดเล็กรายการบอก 2-16 ชั่วโมง เช่นเดียวกันกับ Kanban หรือไม่ มีการแมป 1: 1 จากแผนของฉันไปยังกระดานเสมอหรือไม่? หากไม่มีแนวปฏิบัติที่ดีที่สุดหรือคำแนะนำทั่วไปปัจจัยใดบ้างที่จะมีผลต่อการเลือกรายการงานที่ละเอียด
11 kanban 

2
การผสมวิธีการซิงค์และ async มีประสิทธิภาพภายในวิธีการเดียวหรือไม่
โอเคฟังดูแปลก แต่รหัสนั้นง่ายมากและอธิบายสถานการณ์ได้ดี public virtual async Task RemoveFromRoleAsync(AzureTableUser user, string role) { AssertNotDisposed(); var roles = await GetRolesForUser(user); roles.Roles = RemoveRoles(roles.Roles, role); await Run(TableOperation.Replace(roles)); } (ฉันรู้ว่าฉันกำลังพูดถึงในบทคัดย่อด้านล่าง แต่ข้างต้นเป็นวิธีการที่เกิดขึ้นจริงจากสิ่งที่จะเป็นรหัสการผลิตจริงที่ทำในสิ่งที่ฉันถามเกี่ยวกับที่นี่และฉันสนใจในการตรวจสอบจริงของคุณ เพื่อความถูกต้องโปรดดูรูปแบบ async / await) ฉันพบรูปแบบนี้บ่อยขึ้นเรื่อย ๆ ในขณะที่ฉันกำลังใช้async/ awaitมากกว่า รูปแบบประกอบด้วยห่วงโซ่ของเหตุการณ์ต่อไปนี้: รอสายแรกที่ทำให้ฉันได้รับข้อมูลบางอย่างที่ฉันต้องทำ ทำงานกับข้อมูลนั้นพร้อมกัน รอสายสุดท้ายที่บันทึกงานที่อัปเดต โดยทั่วไปโค้ดบล็อกด้านบนเป็นวิธีที่ฉันใช้จัดการวิธีการเหล่านี้ ฉันawaitโทรครั้งแรกซึ่งฉันต้องทำเพราะมันเป็นแบบอะซิงโครนัส ต่อไปฉันทำงานที่ฉันต้องทำซึ่งไม่ใช่ IO หรือทรัพยากรถูกผูกไว้และไม่ใช่ async สุดท้ายผมบันทึกการทำงานของฉันซึ่งยังเป็นผู้asyncโทรเข้าและออกของสินค้าลัทธิผมawaitมัน แต่นี่เป็นวิธีที่มีประสิทธิภาพ / ถูกที่สุดในการจัดการรูปแบบนี้หรือไม่? ดูเหมือนว่าฉันจะสามารถข้ามawaitสายสุดท้ายได้ แต่จะเกิดอะไรขึ้นถ้ามันล้มเหลว …

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

1
ฉันจะเข้าใกล้โครงการ F # ที่ร้ายแรงโดยไม่มีความรู้ C # ได้อย่างไร
ดังนั้นโดยพื้นฐานแล้วโครงการที่ฉันต้องการทำคือบรรณาธิการ SVG ฉันต้องการใช้ WPF เพราะจากนั้นฉันสามารถใช้ประโยชน์จาก XAML สำหรับรูปแบบแอปพลิเคชันของฉัน (ผู้ออกแบบรายนั้นดีมาก) น่าเสียดายที่ฉันใช้กรอบงาน. NET เพียงไม่กี่เดือนและยังไม่คุ้นเคยกับชื่อคลาสส่วนใหญ่ เป้าหมายคือการใช้ F # เนื่องจากเป็นภาษาโปรแกรมที่ใช้งานได้และการเรียกซ้ำของ F # และการดำเนินการรายการที่ยอดเยี่ยมรวมกับ tuples จะทำงานได้ดีสำหรับสิ่งที่ฉันพยายามบรรลุ และเป้าหมายคือการใช้. NET เพราะห้องสมุดขนาดใหญ่ของคลาสที่มีอยู่และมีเอกสารพร้อมตัวอย่าง ฉันได้ดูคำถามนี้แล้ว /software/3129/is-there-a-canonical-book-on-f แต่คำตอบนั้นสำหรับ F # โดยทั่วไปและคิดว่าคุณรู้ C # อยู่แล้วซึ่งไม่เป็นประโยชน์สำหรับฉันโดยเฉพาะ . หนังสือยอดนิยมในฐานะคำตอบสำหรับคำถามที่อ้างถึงข้างต้นคือการเขียนโปรแกรมฟังก์ชั่นการใช้งานจริง: ด้วยตัวอย่างใน F # และ C # อย่างไรก็ตามรีวิว amazon ระดับ 3 ดาวในหนังสือเล่มนี้ในขณะที่ค่อนข้างรุนแรงและอาจพูดเกินจริงอย่างถูกต้องแสดงให้เห็นถึงปัญหาของฉัน หากคุณสนใจการเขียนโปรแกรมที่ใช้งานได้ แต่คุณไม่ใช่ C # ที่ต้องการเรียนรู้ …
11 wpf  f# 

3
ค่าคงที่ส่วนกลางทั่วทั้งไซต์ MVC
My MVC (.NET) มีค่าคงที่ตลอดทั้งไซต์เช่นหมายเลขโทรศัพท์ที่อยู่จริงที่อยู่อีเมล ฯลฯ ฉันต้องการเก็บค่านี้ไว้หนึ่งครั้งดังนั้นการปรับปรุงในอนาคตจะง่ายขึ้นเมื่อพวกเขาเปลี่ยนรายละเอียด เพื่อให้คำถามของฉันง่ายขึ้นฉันเน้นเฉพาะหมายเลขโทรศัพท์ คำถามของฉันอยู่ที่ไหนและวิธีเก็บหมายเลขนี้และปัญหาที่ฉันเผชิญกับการตัดสินใจของฉัน ในขณะนี้ฉันเลือกที่จะเก็บไว้ในไฟล์ Global.asax เป็นวิธีการคงที่เช่น public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { //logic } public static string GetPhoneNumber() { return "012345 678 910"; } } มันใช้งานได้ดีมากในคอนโทรลเลอร์ของฉันฉันสามารถเพิ่มการอ้างอิงไปยังวิธีนี้และกำหนดให้กับ ViewBag public ActionResult Contact() { ViewBag.Phone = MvcApplication.GetPhoneNumber(); } ตามเว็บไซต์จำนวนมากหมายเลขโทรศัพท์จะปรากฏที่ด้านบนของทุกหน้าและเช่นนี้การวางไว้ในนั้น_Layout.cshtmlเป็นตรรกะ ปัญหาที่ฉันมีคือไม่มีตัวควบคุม (ไม่ใช่ที่ฉันรู้) สำหรับ _Layout.cshtml และวิธีเดียวที่ฉันสามารถส่งค่าคือให้ตั้งค่า …
11 mvc 

10
การทดสอบ vs อย่าทำซ้ำตัวเอง (DRY)
ทำไมการทำซ้ำตัวเองด้วยการเขียนข้อสอบจึงได้รับการสนับสนุนอย่างมาก? ดูเหมือนว่าการทดสอบโดยทั่วไปจะแสดงสิ่งเดียวกันกับรหัสและด้วยเหตุนี้จึงเป็นการทำซ้ำ (ในแนวคิดไม่ใช่การใช้งาน) ของโค้ด เป้าหมายสูงสุดของ DRY จะไม่รวมการกำจัดรหัสการทดสอบทั้งหมดหรือไม่
11 testing  dry 

3
วิธีการจำลองวิธีด้วยวัตถุที่มีการเข้ารหัสยาก?
ฉันกำลังทำงานกับแอพพลิเคชั่นที่มีหลายเลเยอร์ ชั้นการเข้าถึงข้อมูลเพื่อดึงและบันทึกข้อมูลจากแหล่งข้อมูลตรรกะทางธุรกิจเพื่อจัดการข้อมูลส่วนติดต่อผู้ใช้เพื่อแสดงข้อมูลบนหน้าจอ ฉันยังทำการทดสอบหน่วยของชั้นตรรกะทางธุรกิจด้วย ข้อกำหนดเพียงอย่างเดียวคือการทดสอบการไหลของตรรกะเลเยอร์ธุรกิจ ดังนั้นฉันจึงใช้ Moq framework เพื่อจำลองชั้นการเข้าถึงข้อมูลและหน่วยทดสอบชั้นตรรกะทางธุรกิจด้วยหน่วย MS ฉันใช้การเขียนโปรแกรมอินเทอร์เฟซเพื่อทำให้การออกแบบลดลงมากที่สุดเพื่อให้การทดสอบหน่วยสามารถทำได้ ชั้นการเข้าถึงข้อมูลชั้นธุรกิจโทรผ่านส่วนต่อประสาน ฉันกำลังประสบปัญหาเมื่อฉันพยายามทดสอบหนึ่งในวิธีการตรรกะทางธุรกิจ วิธีการนั้นจะทำงานและสร้างวัตถุและส่งต่อไปยัง data access layer เมื่อฉันพยายามที่จะเยาะเย้ยวิธีการเข้าถึงข้อมูลเลเยอร์แล้วก็ไม่สามารถจำลองได้สำเร็จ ที่นี่ฉันพยายามสร้างรหัสตัวอย่างเพื่อแสดงปัญหาของฉัน รุ่น: public class Employee { public string Name { get; set; } } ชั้นการเข้าถึงข้อมูล: public interface IDal { string GetMessage(Employee emp); } public class Dal : IDal { public string GetMessage(Employee emp) …

2
เวิร์กโฟลว์ Git ที่ดีที่สุดสำหรับการทำงานกับโครงการโอเพ่นซอร์สที่มีการเปลี่ยนแปลงเฉพาะนายจ้างคืออะไร
ที่นายจ้างปัจจุบันของฉันเรากำลังใช้โครงการโอเพ่นซอร์สที่โฮสต์ใน Github เป็นส่วนประกอบของใบสมัครของเรา ฉันได้ทำงานในโครงการนี้เพื่อเพิ่มคุณสมบัติบางอย่างที่เราต้องการและรวมเข้ากับระบบการสร้างของเรา ผู้จัดการของฉันและฉันเห็นด้วยที่เราอยากจะส่งผลงานของเราในส่วนนี้มากพอ ๆ กับที่สมเหตุสมผลกับโครงการโอเพ่นซอร์ส คำถามของฉันคือสิ่งที่เวิร์กโฟลว์ / เทคนิคที่ดีที่สุดคือการรักษา Git ของฉันในแบบที่ฉันสามารถแยกสิ่งต่าง ๆ ที่เหมาะสมเพื่อเพิ่มกลับไปยังโครงการโอเพ่นซอร์ส - แก้ไขข้อผิดพลาดและคุณสมบัติใหม่ที่เพียงพอทั่วไป - จากสิ่งที่เฉพาะเจาะจงกับโครงการของเราเช่นสถานที่สร้างและค่าคงที่แอปพลิเคชัน สิ่งที่ฉันได้ทำไปคือการรักษาสาขา Git ส่วนตัวที่ฉันกระทำการเปลี่ยนแปลงทั้งหมดของฉันด้วยความละเอียดที่เหมาะสม จากนั้นฉันจะใช้cherry-pickเพื่อเพิ่มความมุ่งมั่นแบบโอเพ่นซอร์สที่จะส่งไปยังสาขาหลักและส่งกลับไปที่ Github ดูเหมือนว่าฉันควรใช้การผสานเพื่อทำสิ่งนี้เพื่อที่ฉันจะได้ไม่สร้างการผูกมัดแยกกับเนื้อหาที่เหมือนกัน แต่ฉันไม่แน่ใจว่าจะทำอย่างไรในขณะที่ไม่รวมข้อผูกพันเฉพาะ บริษัท และรักษาเวิร์กโฟลว์ที่เหมาะสม ตัวอย่างเช่นฉันสมมติว่าฉันสามารถกระทำสิ่งที่เปิดแหล่งที่มาบนข้อมูลหลักและสิ่งเฉพาะของ บริษัท ในสาขาส่วนตัวจากนั้นจึงรวมต้นแบบเข้ากับสาขานั้นตามความจำเป็นโดยปล่อยให้สาขาหลักชี้ไปที่การกระทำก่อนที่จะผสาน กระทำสิ่งที่โอเพนซอร์สสามารถทำได้อีกครั้งแล้วรวมอีกครั้ง สิ่งที่น่าแปลกใจเกี่ยวกับขั้นตอนการทำงานนี้คือฉันจะต้องตัดสินใจล่วงหน้าสำหรับทุกสิ่งที่ฉันทำซึ่งเป็นสาขาของมันทำงานในสิ่งที่ดูเหมือนว่าจะแล้วเสร็จจากนั้นจึงส่งและรวมก่อนทำการทดสอบ สิ่งหนึ่งที่ฉันชอบเกี่ยวกับ Git คือความง่ายในการทำสิ่งที่คุณต้องการเพื่อทำให้แอปพลิเคชันของคุณทำงานได้จากนั้นตัดสินใจในภายหลังว่าจะทำอย่างไรกับการเปลี่ยนแปลงของคุณ เท่าที่ฉันสามารถบอกได้ถ้าคุณอยู่ในสาขาและทำงานบางอย่างเสร็จแล้ว ฉันกำลังทำเวิร์กโฟลว์ที่สมเหตุสมผลสำหรับการมีส่วนร่วมในระยะยาวหรือไม่ ใครช่วยแนะนำเวิร์กโฟลว์อื่นที่อาจดีกว่าและทำไมมันถึงดีกว่า
11 git 

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