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

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

9
ภาษาที่พิมพ์แบบคงที่รองรับประเภทจุดตัดสำหรับค่าที่ส่งคืนของฟังก์ชันหรือไม่
หมายเหตุเริ่มต้น: คำถามนี้ถูกปิดหลังจากการแก้ไขหลายครั้งเพราะฉันไม่มีคำศัพท์ที่เหมาะสมในการระบุสิ่งที่ฉันกำลังมองหาอย่างถูกต้อง Sam Tobin-Hochstadt จากนั้นโพสต์ความคิดเห็นซึ่งทำให้ฉันรู้ว่ามันคืออะไร: ภาษาการเขียนโปรแกรมที่สนับสนุนประเภทจุดตัดสำหรับค่าส่งคืนของฟังก์ชัน ตอนนี้คำถามได้ถูกเปิดอีกครั้งฉันตัดสินใจที่จะปรับปรุงโดยการเขียนใหม่อีกครั้ง (หวังว่า) จะแม่นยำยิ่งขึ้น ดังนั้นคำตอบและความคิดเห็นบางอย่างด้านล่างอาจไม่เหมาะสมอีกต่อไปเพราะอ้างถึงการแก้ไขก่อนหน้า (โปรดดูประวัติการแก้ไขคำถามในกรณีเช่นนี้) มีภาษาการเขียนโปรแกรมที่ได้รับความนิยมและคงที่หรือไม่ (เช่น Haskell, Java ทั่วไป, C #, F # และอื่น ๆ ) ที่รองรับประเภทจุดตัดสำหรับค่าส่งคืนฟังก์ชันหรือไม่ ถ้าเป็นเช่นนั้นจะทำอะไรและอย่างไร (ถ้าฉันซื่อสัตย์ฉันชอบที่จะเห็นใครบางคนสาธิตวิธีการแยกประเภทในภาษาหลักเช่น C # หรือ Java) ฉันจะให้ตัวอย่างรวดเร็วของประเภทจุดตัดที่อาจมีลักษณะโดยใช้บาง pseudocode คล้ายกับ C #: interface IX { … } interface IY { … } interface IB { … } …

4
เหตุใด C ++ มาตรฐานจึงไม่ใช้เทมเพลตนิพจน์
เป็นความเข้าใจของฉันหรือไม่ว่าเทมเพลตนิพจน์เป็นเทคนิคถูกค้นพบอย่างมีนัยสำคัญก่อนมาตรฐาน C ++ ดั้งเดิมในปี 1998 เหตุใดพวกเขาจึงไม่ใช้เพื่อปรับปรุงประสิทธิภาพของคลาสมาตรฐานเช่นstd::stringและสตรีม
17 c++  history 

5
นามสกุลไฟล์แบบยาว: ทำไมไม่
ฉันจบแอพสำหรับ iPad และนามสกุลไฟล์ (ส่วนใหญ่จะใช้เพื่อให้ Mail และ Dropbox รู้ว่าโปรแกรมเปิดไฟล์) มีความยาว 12 ตัวอักษร tax2010ส่วนขยายเพียงชื่อไฟล์ที่เป็นทุกที่ใกล้เป็นเวลานาน เหตุใดจึงมีการเปลี่ยนแปลงเล็กน้อยในหัวข้อนี้และฉันสามารถคาดหวังปัญหาใดได้บ้างโดยใช้ส่วนขยายชื่อไฟล์แบบยาวสำหรับแอปของฉัน ไฟล์เหล่านี้จะถูกส่งไปคัดลอกและใช้ร่วมกัน* ในการทดสอบทั้งหมดมันทำงานได้อย่างสมบูรณ์แบบ *ฉันหวังว่า

4
ฉีดพึ่งพาและ Singleton พวกเขาทั้งสองแนวคิดที่แตกต่างกันอย่างสิ้นเชิง?
ฉันเคยได้ยินเกี่ยวกับการใช้การฉีดขึ้นเหนือ Singleton สำหรับเพื่อนร่วมงานของฉัน ฉันยังไม่สามารถบอกได้ว่ามันเป็นสองรูปแบบมุมฉากซึ่งสามารถแทนที่ด้วยอีกรูปแบบหนึ่งได้หรือไม่? หรือ DI เป็นวิธีที่ทำให้รูปแบบซิงเกิลทดสอบได้หรือไม่? โปรดดูข้อมูลโค้ดต่อไปนี้ IMathFace obj = Singleton.Instance; SingletonConsumer singConsumer = new SingletonConsumer(obj); singConsumer.ConsumerAdd(10,20); ยอมรับพารามิเตอร์ของชนิดSingletonConsumer IMathFaceแทนที่จะเข้าถึงคลาส singleton ภายในSingletonConsumerจะได้รับอินสแตนซ์ singleton ที่ส่งโดยผู้เรียก นี่เป็นตัวอย่างที่ดีของการบริโภคคลาสซิงเกิลผ่านการฉีดแบบพึ่งพาหรือไม่

3
ในตอนท้ายของเชือกของฉัน [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันเป็นผู้รับเหมาของ บริษัท ใหญ่ ปัจจุบันมีผู้พัฒนาสามรายในโครงการ ปัญหาคือนักพัฒนาอีก 2 คนไม่เข้าใจ โดย "it" ฉันหมายถึงสิ่งต่อไปนี้: พวกเขาไม่เข้าใจแนวทางปฏิบัติที่ดีที่สุดสำหรับเทคโนโลยีที่เราใช้ หลังจาก 6 เดือนของฉันและคนอื่น ๆ ให้ตัวอย่างพวกเขามีรูปแบบการต่อต้านที่น่ากลัวถูกนำมาใช้ พวกเขาคือ "คัดลอกและวาง" โปรแกรมเมอร์ที่ผลิตรหัสสปาเก็ตตี้เป็นหลัก พวกเขาทำลายสิ่งต่าง ๆตลอดเวลาดำเนินการเปลี่ยนแปลง แต่ไม่ได้ทำการทดสอบควันพื้นฐานเพื่อดูว่าทั้งหมดนั้นดีหรือไม่ พวกเขาปฏิเสธ / ไม่ค่อยขอรหัสรีวิว พวกเขาปฏิเสธ / ไม่ค่อยทำสิ่งพื้นฐานเช่นการจัดรูปแบบรหัส ไม่มีเอกสารสำหรับคลาสใด ๆ (jsdocs) กลัวที่จะลบรหัสที่ไม่ได้ทำอะไรเลย ปล่อยให้บล็อกรหัสความคิดเห็นทุกที่แม้ว่าเราจะมีการควบคุมเวอร์ชัน ฉันพบว่าตัวเองเริ่มหงุดหงิดมากขึ้นเมื่อฉันจัดรูปแบบโค้ดอื่นแก้ไขข้อผิดพลาดค้นพบฟังก์ชันที่ใช้งานไม่ได้และสร้าง abstractions เพื่อลบสปาเก็ตตี้ ฉันไม่รู้จะทำยังไง ฉันพยายามไม่หงุดหงิด แต่มันก็เป็นระเบียบ …
17 bad-code 

2
ทำไมโอเปอเรเตอร์การแข่งขันอัจฉริยะของ Perl 5 จึงถือว่าเสีย [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันเห็นความคิดเห็นจำนวนหนึ่งทั่วทั้งเว็บตัวดำเนินการจับคู่แบบอัจฉริยะของ Perl เสียแล้ว ฉันรู้ว่าเดิมเป็นส่วนหนึ่งของ Perl 6 จากนั้นถูกนำมาใช้ใน Perl 5.10 จากสเป็ครุ่นเก่าและได้รับการแก้ไขแล้วใน 5.10.1 เพื่อให้ตรงกับสเป็ค Perl 6 ปัจจุบัน ปัญหาได้รับการแก้ไขแล้วใน 5.10.1+ หรือมีปัญหาอื่น ๆ เกี่ยวกับตัวดำเนินการ smart-match ที่ทำให้เกิดปัญหาในทางปฏิบัติหรือไม่ ปัญหาคืออะไร มีรุ่นที่ยังปรับปรุงเพิ่มเติม (อาจจะ Perl 6,) ที่แก้ไขปัญหาหรือไม่ แก้ไข:เพื่อความกระจ่างแจ้งฉันไม่ได้ถามเกี่ยวกับข้อบกพร่อง แต่เป็นการแสดงความคิดเห็นว่าพฤติกรรมที่ตั้งใจไว้ของ~~ไม่ดี
17 perl 

5
อัลกอริทึมในการกำหนดเส้นทางที่เร็วที่สุด?
สมมติว่าเราไปจาก 1 ถึง 5 เส้นทางที่สั้นที่สุดจะเป็น 1-4-3-5 (รวม: 60 กม.) เราสามารถใช้อัลกอริทึมของ Dijkstraเพื่อทำสิ่งนั้น ตอนนี้ปัญหาคือเส้นทางที่สั้นที่สุดไม่ใช่เส้นทางที่เร็วที่สุดเสมอไปเนื่องจากการจราจรติดขัดหรือปัจจัยอื่น ๆ ตัวอย่างเช่น: เป็นที่ทราบกันว่า 1-2 มีการจราจรติดขัดบ่อยดังนั้นควรหลีกเลี่ยง ทันใดนั้นอุบัติเหตุทางรถยนต์ก็เกิดขึ้นในช่วง 4-3 ดังนั้นจึงควรหลีกเลี่ยงด้วย ฯลฯ ... ดังนั้นอาจเป็นไปได้ว่าเราสามารถเร่งความเร็วบนเส้นทาง 1-4-5 เนื่องจากไม่มีการจราจรติดขัด / อุบัติเหตุดังนั้นจะมาที่ 5 เร็วขึ้น นั่นเป็นแนวคิดทั่วไปและฉันยังไม่ได้คิดถึงรายละเอียดเพิ่มเติม มีอัลกอริทึมในการแก้ปัญหานี้หรือไม่?
17 graph  dijkstra 

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

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

5
ระบบควบคุมเวอร์ชันใดที่สามารถจัดการทุกด้านได้? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ไม่กี่เดือนที่ผ่านมาฉันขุดลงในการโค่นล้มและ GIT และรู้สึกผิดหวัง พวกเขาจัดการ SOURCE CODE ได้ดี แต่ไม่ใช่ด้านอื่น ๆ ตัวอย่างเช่นเว็บไซต์ภายใต้การควบคุมเวอร์ชันจำเป็นต้องจัดการการเป็นเจ้าของไฟล์ / ไดเรกทอรีการเข้าถึงการอ่านและเขียนไฟล์ / ไดเรกทอรีรายการควบคุมการเข้าถึงการประทับเวลาเนื้อหาฐานข้อมูล และลิงก์ภายนอก มีระบบควบคุมเวอร์ชันที่สามารถทำการพลิกกลับได้อย่างสมบูรณ์แบบเมื่อทำการโหลดจากการสำรองข้อมูลรายเดือนหรือไม่?

4
คุณควรเปลี่ยนมาใช้รุ่นบิลด์เมื่อไหร่
หนึ่งในแนวทางปฏิบัติที่กำหนดไว้ในการจัดส่งอย่างต่อเนื่องของ Jez Humble คือคุณควรสร้างแพ็คเกจหนึ่งและจากนั้นปล่อยให้แต่ละสภาพแวดล้อมที่คุณปรับใช้เพื่อให้การนำไปใช้งานและสิ่งประดิษฐ์ได้รับการทดสอบหลายครั้งก่อนที่จะทำการผลิต ฉันสนับสนุนแนวคิดนี้อย่างเต็มที่ ในทางกลับกันการสร้างโหมดดีบักที่ให้การติดตามสแต็กกับหมายเลขบรรทัดมีประโยชน์อย่างมากในสภาพแวดล้อมการทดสอบเช่นเดียวกับความสามารถในการดีบักแบบรีโมท แต่คุณต้องการส่งบิลด์ให้กับการผลิต ดังนั้นสำหรับผู้ที่ปฏิบัติตามหลักการแรกคุณจะสลับจากการดีบั๊กเป็นรีลีสบิลด์ในจุดใด เป็นก่อนการปรับใช้ครั้งแรกกับสภาพแวดล้อมการทดสอบการหาค่าใช้จ่ายของโหมดการดีบักที่เสียไปนั้นคุ้มค่าที่จะจ่ายเพื่อให้แน่ใจว่าคุณกำลังทดสอบผู้สมัครรุ่นจริงก่อนใครหรือไม่? หรือคุณจะสร้างอีกครั้งในขั้นตอนการโปรโมตโดยคิดว่าคุณจะเชื่อถือกระบวนการสร้างทับซอฟต์แวร์หรือไม่ หรือคุณเพียงแค่ขันมันทั้งหมดและปรับใช้เวอร์ชันการดีบักเพื่อการผลิต? หมายเหตุ: ฉันรู้ว่านี่ใช้ไม่ได้กับภาษาที่แปลความจริงเพราะโดยปกติแล้วคุณสามารถปัดสวิตช์ในการตั้งค่าแทนการทำในเวลาบิลด์

2
บทคัดย่อยกเว้นชนิดซุปเปอร์
หากการขว้างปาSystem.Exceptionถือว่าแย่มากทำไมไม่Exceptionทำabstractในตอนแรก? ด้วยวิธีนี้มันเป็นไปไม่ได้ที่จะโทร: throw new Exception("Error occurred."); สิ่งนี้จะบังคับใช้การยกเว้นที่ได้รับเพื่อให้รายละเอียดเพิ่มเติมเกี่ยวกับข้อผิดพลาดที่เกิดขึ้น ตัวอย่างเช่นเมื่อฉันต้องการให้ลำดับชั้นข้อยกเว้นที่กำหนดเองสำหรับห้องสมุดฉันมักจะประกาศคลาสฐานนามธรรมสำหรับข้อยกเว้นของฉัน: public abstract class CustomExceptionBase : Exception { /* some stuff here */ } แล้วมีข้อยกเว้นบางอย่างที่มีจุดประสงค์เฉพาะเจาะจงมากขึ้น: public class DerivedCustomException : CustomExceptionBase { /* some more specific stuff here */ } จากนั้นเมื่อเรียกเมธอดไลบรารี่ใด ๆ เราสามารถลอง / แทร็กบล็อคทั่วไปเพื่อดักจับข้อผิดพลาดที่มาจากไลบรารีโดยตรง: try { /* library calls here */ } catch …

5
การใช้ Vim เมื่อเข้ารหัสแอปพลิเคชันขนาดใหญ่
ฉันเริ่มเรียนรู้เป็นกลุ่มและทำตามคำแนะนำที่ให้ไว้ใน stackexchange ฉันเริ่มใช้มันในบางโครงการของเล่นและฉันก็เจ๋งกับมัน แต่ฉันเริ่มสงสัยว่าคุณจะมีประสิทธิผลได้อย่างไรโดยไม่ต้องเปิดไฟล์อื่น ๆ ตลอดเวลาเพียงแค่รู้ว่าชื่อคลาสนั้นเป็นเช่นไรแมโครที่รวมอยู่ในไฟล์อื่น ฯลฯ เป็นต้น อะไรคือคำแนะนำทั่วไปที่คุณสามารถให้ได้

2
DDD-Lite เป็นภาษารูปแบบสำหรับการฉีดแบบพึ่งพาหรือไม่
ฉันสะดุดกับคำพูดของเกร็กยัง7 เหตุผลที่โครงการ DDD ล้มเหลวซึ่งเขาพูดถึงบางสิ่งที่เขาเรียกว่า DDD-Lite เวลา 7:20 โดยสรุปเขากล่าวโดยทั่วไปว่าบางคนใช้ DDD เป็นภาษารูปแบบ (เอนทิตี, ที่เก็บ, อ็อบเจ็กต์ค่า, การบริการและอื่น ๆ ) โดยไม่ต้องทำสิ่งอื่นใดที่เกี่ยวข้องกับ DDD เขาอ้างถึงโดเมนแบบจำลอง 60% ขึ้นไปใน. Net คือ DDD-Lite เขาคิดว่า DDD-Lite นั้นกำลังสร้างภาษาเกี่ยวกับการฉีดพึ่งพาซึ่งเป็นสิ่งที่คุณไม่จำเป็นต้องทำ เขาบอกว่าทำ DDD ทั้งหมดหรือทำสิ่งที่ง่ายกว่า ไม่อย่างนั้นเขาก็อ้างว่าคน ๆ หนึ่งกำลังนำผลงานทั้งหมดนี้มาสร้างนามธรรมที่ดี แต่ไม่มีผลประโยชน์ที่แท้จริง ฉันต้องยอมรับว่าฉันไม่รู้จัก DDD มากเท่าที่ฉันต้องการและยังไม่ได้ลองใช้ ฉันยังไม่ได้อ่านหนังสือของ Eric Evan เช่นกัน ฉันกำลังมากขึ้นที่สนใจในการพึ่งพาการฉีดและหลายหนังสือหลายเล่มและบล็อกในแง่นี้การใช้งานภายใต้แนวความคิดและการอ้างอิงจากเอริคอีแวนส์หนังสือ DDD นี่คือที่ฉันได้สัมผัสกับแนวคิด DDD หนังสือที่ฉันอ่านมาเล่มนี้ประกอบด้วย: การพึ่งพาการฉีดใน. NET Microsoft .Net: …

8
ฉันจะทำ TDD บนอุปกรณ์ฝังตัวได้อย่างไร
ฉันไม่ได้ใหม่กับการเขียนโปรแกรมและฉันได้ทำงานกับระดับต่ำ C และ ASM ใน AVR แต่ฉันไม่สามารถไปรอบ ๆ โครงการ C ขนาดใหญ่ที่ฝังตัวได้ ด้วยความเสื่อมของปรัชญารูดี้ของ TDD / BDD ฉันไม่สามารถเข้าใจได้ว่าผู้คนเขียนและทดสอบโค้ดเช่นนี้อย่างไร ฉันไม่ได้บอกว่ามันเป็นรหัสที่ไม่ดีฉันไม่เข้าใจว่ามันจะทำงานได้อย่างไร ฉันอยากจะเขียนโปรแกรมระดับล่างให้มากขึ้น แต่ฉันไม่รู้ว่าจะทำอย่างไรกับสิ่งนี้เพราะมันดูเหมือนความคิดที่แตกต่างไปจากเดิมอย่างสิ้นเชิงที่ฉันคุ้นเคย ฉันไม่มีปัญหาในการทำความเข้าใจตัวบ่งชี้ทางคณิตศาสตร์หรือการจัดสรรหน่วยความจำทำงานอย่างไร แต่เมื่อฉันเห็นว่าโค้ด C / C ++ ที่ซับซ้อนมีลักษณะอย่างไรเมื่อเทียบกับ Ruby ดูเหมือนว่ายากมาก ตั้งแต่ฉันสั่งบอร์ด Arduino มาเองฉันชอบที่จะเพิ่มระดับ C ที่ต่ำลงและเข้าใจวิธีการทำสิ่งต่าง ๆ ได้อย่างถูกต้อง แต่ดูเหมือนว่าไม่มีกฎของภาษาระดับสูงมาใช้ เป็นไปได้ไหมที่จะทำ TDD บนอุปกรณ์ฝังตัวหรือเมื่อพัฒนาไดรเวอร์หรือสิ่งต่าง ๆ เช่น bootloader แบบกำหนดเองเป็นต้น

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