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

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

2
Java มี JVM, C คืออะไร?
ฉันรู้ว่า C มีคอมไพเลอร์ แต่สิ่งที่กำหนดประสิทธิภาพการดำเนินการ? ตัวอย่างเช่นในบล็อก if else จะเกิดอะไรขึ้นหากโค้ดเพิ่งมี ifs ทั้งหมดแทน ifes elses จะเป็นตัวกำหนดว่า ifs ทั้งหมดจะถูกรันอย่างไร ใน Java มันจะเป็น JVM แต่ใน C สิ่งที่คอมไพเลอร์ประมวลผลคืออะไร?
15 java  c 

5
ถ้าอื่น ๆ - ตรรกะของรหัสซ้ำแล้วซ้ำอีก
เจ้านายของฉันให้โครงการฉันด้วยตรรกะเฉพาะ ฉันต้องพัฒนาเว็บเพจที่มีการนำทางผ่านหลาย ๆ กรณีจนกว่าเขา / เธอจะมาถึงผลิตภัณฑ์ นี่คือรูปแบบเส้นทางของการนำทางในไซต์: สำคัญ! ในหน้าผลิตภัณฑ์เนวิเกเตอร์สามารถเลือกตัวกรองที่ต้องการ ถ้า A เขา / เธอต้องผ่าน B (และแน่นอน C) หรือ C และถึงผลิตภัณฑ์ ถ้า B เขา / เธอจะต้องผ่าน C และเข้าถึงผลิตภัณฑ์ ถ้า C เขา / เธอเข้าถึงผลิตภัณฑ์โดยตรง แน่นอนว่าถ้าฉันเริ่มต้นจาก AI กำลังติดตามเส้นทางที่ยาวที่สุดและเมื่อฉันไปถึงผลิตภัณฑ์ฉันมีตัวกรองที่ใช้งานอยู่ 3 ตัว จนถึงตอนนี้ฉันพัฒนาโค้ดต่อไปนี้ซึ่งใช้งานได้ดี if filter_A if filter_B filter_C() .. else .. else filter_C .. else …

1
เมื่อใดควรใช้การเขียนโปรแกรมต้นแบบใน JavaScript
ฉันใช้เวลาพอสมควรในการพัฒนาวิดเจ็ตอย่างง่ายสำหรับโครงการด้วยวิธีต่อไปนี้: var project = project || {}; (function() { project.elements = { prop1: val1, prop2: val2 } project.method1 = function(val) { // Do this } project.method2 = function(val) { // Do that } project.init = function() { project.method1(project.elements.prop1) project.method2(project.elements.prop2) } })() project.init(); แต่ฉันได้เริ่มเปลี่ยนรูปแบบของฉันเป็นดังต่อไปนี้: function Project() { this.elements = { prop1: …

6
จุดประสงค์ของการวางแผนโป๊กเกอร์ในการวิ่งคืออะไร?
นักวิเคราะห์ธุรกิจและหัวหน้าโครงการของเราบอกเราถึงความต้องการของลูกค้าในเรื่อง การวางแผน Sprint ทุกครั้งเรา (ผู้พัฒนา) จะถูกขอให้เล่นการวางแผนโป๊กเกอร์ พวกเขาขอให้พวกเราทุกคนพิจารณา 'ความซับซ้อน' มากกว่า 'ความพยายาม' เราสับสนจริง ๆ และเรากำลังเสียเวลาในการประชุม นักพัฒนาคนหนึ่งตั้งคำถามว่า 'เราควรพิจารณาอะไรจริง ๆ มันเกี่ยวกับการเปลี่ยนรหัส / DDL ที่เราต้องทำในข้อกำหนดนี้ (ประมาณเวลา) หรือว่าเราเข้าใจข้อกำหนดหรือไม่? ' แต่พวกเขา (นักวิเคราะห์ธุรกิจและผู้นำโครงการ) หมายถึงอะไรโดย 'เข้าใจข้อกำหนด' และ 'ยกบัตร' นอกจากนี้เรายังมีการประชุมย่อยสำหรับทีมการต่อสู้แต่ละทีมซึ่งนักพัฒนาแต่ละคนจะให้เวลาโดยประมาณสำหรับงานที่กำหนดสำหรับแต่ละทีมการต่อสู้ ดังนั้นสิ่งที่พวกเขาพูดถึงในการวางแผนโป๊กเกอร์จริง ๆ ? ใครสามารถอธิบายสิ่งนี้โดยใช้ตัวอย่าง? พยายามแยกแยะสิ่งที่พวกเขาพูดถึงจริงๆเมื่อพวกเขาพูดว่า 'ความซับซ้อน' และ 'ความพยายาม'
15 agile  scrum  planning 

3
ข้อแตกต่างระหว่าง ref และ out ใน runtime คืออะไร?
C # จัดให้มีrefและoutคำหลักเพื่อสร้างอาร์กิวเมนต์ที่จะส่งผ่านโดยการอ้างอิง ความหมายของทั้งสองนั้นคล้ายกันมาก ข้อแตกต่างเพียงอย่างเดียวคือการเริ่มต้นของตัวแปร flaged: refต้องการตัวแปรที่จะเริ่มต้นก่อนที่จะส่งผ่านไปยังฟังก์ชั่นoutไม่ได้ outต้องการตัวแปรที่จะเริ่มต้นภายในฟังก์ชั่นrefไม่ได้ กรณีการใช้งานของคำหลักสองคำนี้ก็เกือบจะเหมือนกันและการใช้งานที่บ่อยเกินไปของพวกเขาคือฉันเชื่อว่ามีกลิ่นรหัส (แม้ว่าจะมีกรณีการใช้ที่ถูกต้องเช่นTryParseและTryGetValueรูปแบบ) ด้วยเหตุนี้ใครบางคนสามารถอธิบายได้ว่าทำไมมีเครื่องมือสองอย่างที่คล้ายกันมากใน C # สำหรับกรณีการใช้งานที่แคบมาก? นอกจากนี้ในMSDNมีการระบุว่าพวกเขามีพฤติกรรมการใช้งานที่แตกต่างกัน: แม้ว่าคีย์เวิร์ด ref และ out จะทำให้เกิดพฤติกรรมรันไทม์ที่แตกต่างกัน แต่ก็ไม่ได้พิจารณาว่าเป็นส่วนหนึ่งของลายเซ็นเมธอดในเวลารวบรวม พฤติกรรมรันไทม์ของพวกเขาแตกต่างกันอย่างไร ข้อสรุป คำตอบทั้งสองนั้นดูถูกต้องขอบคุณทั้งคู่ ฉันยอมรับjmorenoเพราะชัดเจนกว่า

3
ต้องใส่รายละเอียดเท่าไหร่ในการทำซ้ำครั้งแรกของโครงการ
ฉันเพิ่งเริ่มโครงการส่วนบุคคลใหม่ (Python) และฉันกำลังเขียนสิ่งที่เป็น "ร่างคร่าว ๆ " ของโปรแกรมจำนวนขั้นต่ำที่ต้องทำในสิ่งที่ฉันต้องการจะทำ ฉันยังไม่ได้ใส่ข้อผิดพลาด / การจัดการข้อยกเว้นอย่างกว้างขวางหรือองค์ประกอบ UI ความงาม (แม้ในกรณีที่ฉันรู้ว่าสิ่งเหล่านี้จะต้องใช้ในท้ายที่สุด) และเอกสารก็เพียงพอที่จะช่วยในอนาคตฉันเห็นสิ่งที่ฉันทำ มันขัดกับหลักการที่กำหนดไว้ในการออกแบบ / การจัดการโครงการเพื่อเริ่มหยาบ ฉันเป็นนักวิทยาศาสตร์ไม่ใช่โปรแกรมเมอร์ดังนั้นไม่ควรเร่งความเร็วในสิ่งเหล่านี้ ดังนั้นคำถามหลักคือมีฉันทามติที่ที่ควรมีจุดมุ่งหมายที่จะอยู่ระหว่างสองขั้วของ: เขียนโค้ดคุณภาพสูงอย่างละเอียดตั้งแต่เริ่มต้นพร้อมการจัดการข้อยกเว้นทั้งหมดและอย่างที่คุณรู้ว่าคุณจะต้องใช้ในที่สุด เขียนแบบร่างคร่าวๆที่ทำงานน้อยที่สุดตั้งแต่เริ่มต้นและเข้าไปเพื่อเติมในส่วนย่อยทั้งหมดในภายหลัง คำถามที่เกี่ยวข้อง: เมื่อไรที่จะเสียสละ "ความเรียบร้อย" ของการออกแบบเพื่อให้โครงการเสร็จ

2
จำเป็นต้องมีส่วนหัวลิขสิทธิ์ในไฟล์ต้นฉบับเมื่อใช้ Apache Software License 2.0 กับโครงการหรือไม่? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิด5 เดือนที่ผ่านมา การอ่านภาคผนวก Apache Software License 2.0ฉันไม่ชัดเจนว่าฉันต้องทำอะไรตอนนี้: ภาคผนวก: วิธีใช้ใบอนุญาต Apache กับงานของคุณ ในการใช้สิทธิ์ใช้งาน Apache กับงานของคุณให้แนบประกาศประกาศต่อไปนี้พร้อมฟิลด์ที่ใส่วงเล็บ "[]" แทนที่ด้วยข้อมูลที่คุณระบุเอง (ไม่รวมวงเล็บ!) ข้อความควรอยู่ในไวยากรณ์ความคิดเห็นที่เหมาะสมสำหรับรูปแบบไฟล์ นอกจากนี้เรายังแนะนำให้ใส่ชื่อไฟล์หรือคลาสและคำอธิบายวัตถุประสงค์ไว้ใน "หน้าที่พิมพ์" เช่นเดียวกับประกาศลิขสิทธิ์เพื่อระบุตัวตนได้ง่ายขึ้นภายในคลังข้อมูลของบุคคลที่สาม เพื่ออธิบายเพิ่มเติมอีกเล็กน้อย: ขณะนี้ฉันมีส่วนร่วมในโครงการโอเพ่นซอร์สบน GitHub ซึ่งมีการตัดสินใจอนุญาตใช้งานภายใต้ ASL2.0 ในการคอมมิชชันล่าสุดข้อความสิทธิ์การใช้งานถูกเพิ่มLICENSEเข้าไปในไดเรกทอรีราก ส่วนที่น่าสนใจคือตอนนี้จะต้องทำอะไรอีกเพื่อให้ได้สิทธิ์การใช้งานรหัสภายใต้ Apache Software License โดยเฉพาะอย่างยิ่ง: อะไรคือการพิจารณา "งาน" และจำเป็นต้องมีการแจ้งเตือนสำเร็จรูปให้กับไฟล์ต้นฉบับทุกไฟล์ในโครงการหรือไม่ ฉันคิดว่ามันควรจะเป็นไปได้ที่จะเพิ่มการแจ้งเตือนไปยังที่มีอยู่แล้วREADMEตามที่ฉันได้เห็นมันในโครงการโอเพนซอร์สอื่น ๆ บางสิ่งบางอย่างตาม: ใบอนุญาต: เว้นแต่จะระบุไว้อย่างชัดเจนไฟล์ทั้งหมดในที่เก็บนี้ได้รับอนุญาตภายใต้ Apache …

4
มีค่าใดในการเขียนการทดสอบหน่วยที่เป็นส่วนย่อยของการทดสอบอื่นหรือไม่?
เพื่อให้เป็นตัวอย่างที่ได้รับการประดิษฐ์ขึ้นมาสมมติว่าฉันต้องการทดสอบว่าฟังก์ชันคืนค่าตัวเลขสองค่าและค่าแรกมีค่าน้อยกว่าค่าที่สอง: def test_length(): result = my_function() assert len(result) == 2 def test_order() a, b = my_function() assert a < b ที่นี่ถ้าtest_lengthล้มเหลวก็test_orderจะล้มเหลวเช่นกัน มันเป็นวิธีปฏิบัติที่ดีที่สุดในการเขียนtest_lengthหรือข้ามมัน? แก้ไข: โปรดทราบว่าในสถานการณ์นี้การทดสอบทั้งสองส่วนใหญ่เป็นอิสระจากกันการทดสอบแต่ละครั้งสามารถแยกออกจากกันหรืออาจทำงานในลำดับกลับกันสิ่งนี้ไม่สำคัญ ดังนั้นไม่มีคำถามเก่า ๆ เหล่านี้เลย ฉันจะทดสอบการทำงานของฟังก์ชั่นที่ใช้ฟังก์ชั่นอื่น ๆ ในนั้นได้อย่างไร? ฉันจำเป็นต้องมีการทดสอบหน่วยหรือไม่ถ้าฉันมีการทดสอบการรวมระบบอยู่แล้ว? วิธีจัดโครงสร้างการทดสอบโดยที่การทดสอบครั้งหนึ่งเป็นการตั้งค่าการทดสอบอื่น? วิธีจัดการการพึ่งพาความสำเร็จระหว่างการทดสอบหน่วย เป็นคู่ที่ซ้ำกันของข้างต้น

2
วิธีที่ดีที่สุดในการสร้างรูปแบบการตอบสนองข้อผิดพลาด REST API และระบบรหัสข้อผิดพลาดคืออะไร?
การใช้งาน REST ของฉันจะส่งคืนข้อผิดพลาดใน JSON ด้วยโครงสร้างถัดไป: { "http_response":400, "dev_message":"There is a problem", "message_for_user":"Bad request", "some_internal_error_code":12345 } ฉันแนะนำให้สร้างโมเดลการตอบกลับพิเศษซึ่งฉันสามารถส่งผ่านค่าที่ต้องการสำหรับคุณสมบัติ (dev_message, message_for_user, some_internal_error_code) และส่งคืนได้ ในรหัสมันจะคล้ายกับสิ่งนี้: $responseModel = new MyResponseModel(400,"Something is bad", etc...); รุ่นนี้มีหน้าตาเป็นอย่างไร ฉันควรใช้วิธีการอย่างเช่น successResponse () โดยที่ฉันจะส่งผ่านเฉพาะข้อมูลตัวอักษรและรหัสจะเป็นค่าเริ่มต้น 200 รายการ ฉันติดอยู่กับเรื่องนี้ และนี่เป็นส่วนแรกของคำถามของฉัน: ฉันจำเป็นต้องใช้โมเดลนี้หรือไม่ เพราะตอนนี้ฉันเพิ่งกลับอาร์เรย์โดยตรงจากรหัส ส่วนที่สองเป็นเรื่องเกี่ยวกับระบบรหัสข้อผิดพลาด รหัสข้อผิดพลาดจะอธิบายไว้ในเอกสาร แต่ปัญหาที่ฉันพบอยู่ในรหัส วิธีที่ดีที่สุดในการจัดการรหัสข้อผิดพลาดคืออะไร? ฉันควรเขียนมันไว้ในโมเดลหรือไม่? หรือมันจะเป็นการดีกว่าถ้าจะสร้างบริการแยกต่างหากสำหรับจัดการสิ่งนี้ อัพเดท 1 ฉันใช้คลาสจำลองเพื่อการตอบสนอง มันเป็นคำตอบที่คล้ายกันของ Greg …
15 php  mvc  rest  api 

2
ทำให้เชื่องคลาส 'ฟังก์ชันยูทิลิตี้'
ใน codebase Java ของเราฉันเห็นรูปแบบต่อไปนี้: /** This is a stateless utility class that groups useful foo-related operations, often with side effects. */ public class FooUtil { public int foo(...) {...} public void bar(...) {...} } /** This class does applied foo-related things. */ class FooSomething { int DoBusinessWithFoo(FooUtil fooUtil, ...) { …

3
การเขียนโปรแกรมแบบไม่เน้นวัตถุในภาษาเชิงวัตถุ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา เมื่อเร็ว ๆ นี้ผมได้รับมอบหมายงานของการสร้างเครื่องคิดเลขที่มีฟังก์ชั่นการบวกลบคูณหารและพลังงานโดยใช้โปรแกรมเชิงวัตถุ ฉันทำภารกิจนี้สำเร็จ แต่หลังจากนั้นผมปรับผังโปรแกรมทั้งหมดโดยไม่ต้องใช้ Object Oriented เทคนิค / วิธีการ สิ่งที่ฉันสังเกตเห็นว่าความยาวรหัสของฉันลดลงอย่างมากและค่อนข้างเข้าใจได้ ดังนั้นคำถามของฉันที่นี่คือเมื่อฉันควรใช้การเขียนโปรแกรมเชิงวัตถุ? การสร้างโปรแกรมโดยไม่ใช้การวางแนววัตถุในภาษาเชิงวัตถุนั้นใช่ไหม กรุณาช่วยฉันออกจากที่นี่ PS: ฉันไม่ได้ขอให้ที่นี่เพื่อบอกข้อดีของการเขียนโปรแกรมเชิงวัตถุมากกว่าการเขียนโปรแกรมตามขั้นตอน

2
ใครคือผู้ถูกตำหนิสำหรับช่วงนี้ซึ่งอ้างอิงมาจากการอ้างอิงชั่วคราว
รหัสต่อไปนี้ดูไม่เป็นอันตรายเมื่อพบเห็นครั้งแรก ผู้ใช้ใช้ฟังก์ชันbar()เพื่อโต้ตอบกับฟังก์ชันไลบรารีบางอย่าง (ซึ่งอาจจะมีการทำงานถึงแม้จะเป็นเวลานานตั้งแต่bar()กลับอ้างอิงถึงค่าที่ไม่ใช่ชั่วคราวหรือคล้ายกัน.) Bแต่ตอนนี้มันเป็นเพียงการกลับตัวอย่างใหม่ของ Bอีกครั้งมีฟังก์ชั่นที่ผลตอบแทนอ้างอิงกับวัตถุชนิดa() iterateable Aผู้ใช้ต้องการสอบถามวัตถุนี้ซึ่งนำไปสู่ ​​segfault เนื่องจากBวัตถุชั่วคราวที่ส่งคืนโดยbar()ถูกทำลายก่อนที่จะเริ่มซ้ำ ฉันไม่แน่ใจว่าใคร (ห้องสมุดหรือผู้ใช้) ที่จะตำหนิสำหรับสิ่งนี้ ห้องสมุดทั้งหมดที่มีให้ชั้นเรียนดูสะอาดสำหรับฉันและแน่นอนว่าไม่ได้ทำอะไรที่แตกต่างกัน (การส่งคืนการอ้างอิงถึงสมาชิก, การคืนอินสแตนซ์สแต็ก, ... ) กว่าโค้ดอื่น ๆ ผู้ใช้ดูเหมือนจะไม่ทำอะไรผิดปกติเช่นกันเขาแค่ทำซ้ำวัตถุบางอย่างโดยไม่ทำอะไรเกี่ยวกับวัตถุนั้นตลอดชีวิต (คำถามที่เกี่ยวข้องอาจเป็น: หนึ่งควรสร้างกฎทั่วไปว่ารหัสไม่ควร "ช่วงตามสำหรับ - ซ้ำ" เหนือสิ่งที่ถูกดึงโดยมากกว่าหนึ่งสายที่ถูกล่ามโซ่ในส่วนหัววนเนื่องจากการโทรใด ๆ เหล่านี้อาจกลับ rvalue?) #include <algorithm> #include <iostream> // "Library code" struct A { A(): v{0,1,2} { std::cout << "A()" << std::endl; } ~A() { …
15 c++11 

9
อะไรคือข้อโต้แย้งเชิงข้อเท็จจริงที่ดีในการโน้มน้าวให้ผู้บริหารระดับสูงพิจารณาการเขียนโปรแกรมฟังก์ชั่น? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา มีตันของการขัดแย้ง "ทฤษฎี" ทำไมเขียนโปรแกรมการทำงานเป็นความคิดที่ดี (มากเกินไปเพื่อที่จะได้อยู่ในฐานะที่เป็นคำถามเปิดและถูกต้องเพื่อ) อย่างไรก็ตามส่วนใหญ่ของพวกเขาเป็นข้อโต้แย้งที่ทำจากทฤษฎี ("ความสง่างาม" ฯลฯ ... ) หรือมุ่งเป้าไปที่นักพัฒนา ปัญหาคือพวกเขาส่วนใหญ่ไร้ประโยชน์โดยสิ้นเชิงเมื่อเป้าหมายของคนหนึ่งคือการนำเสนอความคิดต่อผู้บริหารระดับสูงของ บริษัท ขนาดใหญ่บางคนไม่ได้เป็นนักพัฒนาและทุกคนก็สนใจเรื่องข้อโต้แย้งทางธุรกิจ : ต้นทุนการจัดการทุนมนุษย์ การส่งมอบผลิตภัณฑ์การบริการลูกค้าและรายได้ เช่นเดียวกับข้อเท็จจริงเชิงปริมาณเกี่ยวกับจุดทางทฤษฎีที่ไม่สามารถสำรองด้วยข้อเท็จจริง มีข้อโต้แย้งที่น่าสนใจที่จะนำเสนอเพื่อแก้ไขข้อกังวลทางธุรกิจเหล่านั้นเท่าที่จะพิจารณาการยอมรับการเขียนโปรแกรมฟังก์ชั่นเป็นแนวคิด (ไม่ใช่ภาษาใด ๆ ที่เฉพาะเจาะจง) กับการผสมผสานทั่วไปของขั้นตอน / OOP เช่น Java / C ++ / (Perl | Python) . โดยเฉพาะอย่างยิ่งฉันกำลังมองหาข้อโต้แย้งที่มีปริมาณและ / หรืออยู่บนพื้นฐานของการวิจัยหรือกรณีศึกษา เช่น "จากการอ้างอิงนี้อัตราข้อผิดพลาดของระบบมัลติเธรดใน Lisp / F # …

5
เหตุใดจึงมี * การประกาศ * ของข้อมูลและฟังก์ชั่นที่จำเป็นในภาษา C เมื่อคำจำกัดความถูกเขียนในตอนท้ายของซอร์สโค้ด?
พิจารณารหัส "C" ต่อไปนี้: #include<stdio.h> main() { printf("func:%d",Func_i()); } Func_i() { int i=3; return i; } Func_i()ถูกกำหนดในตอนท้ายของซอร์สโค้ดและไม่มีการประกาศให้ก่อนที่จะใช้main()มัน ในเวลามากเมื่อคอมไพเลอร์เห็นFunc_i()ในmain()มันออกมาของและพบว่าออกmain() Func_i()คอมไพเลอร์อย่างใดพบว่าค่าส่งกลับโดยและให้มันไปFunc_i() printf()ผมยังไม่ทราบว่าคอมไพเลอร์ไม่สามารถหาประเภทผลตอบแทนFunc_i()ของ มันโดยปกติจะใช้เวลา (คาดเดา?) ประเภทผลตอบแทนของการที่จะเป็นFunc_i() intนั่นคือถ้ารหัสfloat Func_i()นั้นคอมไพเลอร์จะให้ข้อผิดพลาด: ประเภทที่ขัดแย้งFunc_i()กัน จากการสนทนาข้างต้นเราจะเห็นว่า: Func_i()คอมไพเลอร์สามารถหาค่าที่ส่งกลับโดย หากคอมไพเลอร์สามารถค้นหาค่าที่ส่งคืนโดยFunc_i()ออกมาmain()และค้นหาซอร์สโค้ดเหตุใดจึงไม่พบประเภทของ Func_i () ซึ่งกล่าวถึง อย่างชัดเจน คอมไพเลอร์ต้องรู้ว่าFunc_i()เป็นประเภทลอย - นั่นเป็นสาเหตุที่ทำให้เกิดข้อผิดพลาดของประเภทที่ขัดแย้งกัน หากคอมไพเลอร์รู้ว่าFunc_iเป็นประเภทลอยตัวแล้วทำไมมันยังถือว่าFunc_i()เป็นประเภท int และให้ข้อผิดพลาดของประเภทที่ขัดแย้งกัน? ทำไมมันไม่ได้ทำให้มันกลายFunc_i()เป็นประเภทลอย ผมมีข้อสงสัยเช่นเดียวกันกับการประกาศตัวแปร พิจารณารหัส "C" ต่อไปนี้: #include<stdio.h> main() { /* [extern int Data_i;]--omitted …

4
การทดสอบพัฒนาขับเคลื่อนอย่างไร
ฉันมีประสบการณ์มากกว่า 2 ปีในการพัฒนาแอพพลิเคชั่น ในสองปีที่ผ่านมาแนวทางการพัฒนาของฉันมีดังต่อไปนี้ วิเคราะห์ข้อกำหนด Identity Core องค์ประกอบ / วัตถุฟังก์ชันที่จำเป็น, พฤติกรรม, กระบวนการและข้อ จำกัด สร้างคลาสความสัมพันธ์ระหว่างพวกเขาข้อ จำกัด เกี่ยวกับพฤติกรรมของวัตถุ & รัฐ สร้างฟังก์ชั่นการประมวลผลด้วยข้อ จำกัด พฤติกรรมตามความต้องการ ทดสอบแอปพลิเคชันด้วยตนเอง หากความต้องการเปลี่ยนแปลงแก้ไของค์ประกอบ / ฟังก์ชั่นให้ทดสอบโปรแกรมด้วยตนเอง เมื่อเร็ว ๆ นี้ฉันได้รับการแนะนำให้รู้จักกับ TDD และรู้สึกว่านี่เป็นวิธีที่ดีมากในการพัฒนาเนื่องจากโค้ดที่พัฒนาแล้วมีเหตุผลที่แข็งแกร่งที่มีอยู่ แต่ปัญหาของฉันคือฉันไม่สามารถสร้างการทดสอบก่อนได้ แต่ฉันจะระบุส่วนประกอบและเพียงแค่เขียนการทดสอบสำหรับพวกเขาก่อนที่ฉันจะเขียนส่วนประกอบจริง ๆ คำถามของฉันคือ ฉันทำถูกไหม? ถ้าไม่ใช่สิ่งที่ฉันต้องเปลี่ยนแน่นอน มีวิธีใดที่คุณสามารถระบุได้ว่าแบบทดสอบที่คุณเขียนนั้นเพียงพอหรือไม่ เป็นการดีหรือไม่ที่จะทดสอบการเขียนสำหรับฟังก์ชั่นที่ง่ายมากซึ่งอาจเทียบเท่ากับ 1 + 1 = 2 หรือเป็นเพียงภาพซ้อนทับ? มันเป็นการดีที่จะเปลี่ยนฟังก์ชั่นและตามการทดสอบว่ามีการเปลี่ยนแปลงข้อกำหนด?

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