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

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

10
โปรแกรมเมอร์ Python พบปัญหาช่องว่างไม่สะดวกหรือไม่? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา โปรแกรมเมอร์จำนวนมากเมื่อพบ Python เป็นครั้งแรกจะถูกเลื่อนออกทันทีโดยความสำคัญของช่องว่าง ฉันเคยได้ยินเหตุผลหลายประการว่าเรื่องนี้ไม่สะดวก แต่ฉันไม่เคยได้ยินเรื่องร้องเรียนจากโปรแกรมเมอร์ Python แน่นอนว่าฉันไม่ได้พบโปรแกรมเมอร์ Python มากมายเพราะฉันได้ใช้เวลาทำงานในโลก Java ดังนั้นคำถามของฉันสำหรับพวกคุณที่เข้าร่วมในโครงการ Python ขนาดใหญ่ (มากกว่า 3 เดือนโดยที่ Python เป็นภาษาหลักที่ใช้): คุณพบปัญหาช่องว่างที่ไม่สะดวกและน่ารำคาญอย่างต่อเนื่องหรือไม่ หรือมันไม่ใช่ปัญหาเมื่อคุณได้รับกระแส? ฉันไม่ได้ถามคำถามเพราะฉันเพื่อหรือต่อต้านหลามหรือเพื่อหรือต่อต้านการใช้ช่องว่าง ฉันชอบ Python แต่ฉันไม่เคยใช้มันเพื่ออะไรที่ยิ่งใหญ่ โปรดอย่าให้การคาดเดาหากคุณไม่ได้ใช้ Python

7
เทคนิคการแยกวิเคราะห์ XML
ฉันพบว่า XML ค่อนข้างยุ่งยากในการประมวลผลเสมอ ฉันไม่ได้พูดเกี่ยวกับการใช้งานตัวแยกวิเคราะห์ XML: ฉันกำลังพูดถึงการใช้ตัวแยกวิเคราะห์ที่ใช้กระแสอยู่เช่น SAX parser ซึ่งประมวลผลโหนด XML โดยโหนด ใช่มันง่ายมากที่จะเรียนรู้ API ต่างๆสำหรับ parsers เหล่านี้ แต่เมื่อใดก็ตามที่ฉันดูโค้ดที่ประมวลผล XML ฉันมักจะพบว่ามันค่อนข้างซับซ้อน ปัญหาที่สำคัญดูเหมือนว่าเอกสาร XML จะถูกแยกออกเป็นส่วน ๆ อย่างมีเหตุผลและแต่ละประเภทข้อมูลและคุณลักษณะมักจะแยกออกจากข้อมูลจริงบางครั้งโดยการซ้อนหลายระดับ ดังนั้นเมื่อประมวลผลโหนดเฉพาะใด ๆ เป็นรายบุคคลจำเป็นต้องมีสถานะพิเศษจำนวนมากเพื่อกำหนดว่าเราอยู่ที่ไหนและต้องทำอะไรต่อไป ตัวอย่างเช่นให้ข้อมูลโค้ดจากเอกสาร XML ทั่วไป: <book> <title>Blah blah</title> <author>Blah blah</author> <price>15 USD</price> </book> ... ฉันจะทราบได้อย่างไรเมื่อพบโหนดข้อความที่มีชื่อหนังสือ สมมติว่าเรามีตัวแยกวิเคราะห์ XML ง่ายซึ่งทำหน้าที่เหมือน iterator ให้เราโหนดถัดไปในเอกสาร XML XMLParser.getNextNode()โทรทุกครั้งที่เรา ฉันพบว่าตัวเองเขียนโค้ดอย่างหลีกเลี่ยงไม่ได้: boolean insideBookNode …

7
การเขียนโปรแกรมที่มีโครงสร้างกับการเขียนโปรแกรม OO
ฉันกำลังนำเสนอที่แสดงความแตกต่างระหว่างการเขียนโปรแกรมเชิงโครงสร้างและเชิงวัตถุและฉันต้องการแสดงให้เห็นว่าทำไมผู้คนต้องการ OOP ด้วยตัวอย่างที่การใช้แนวคิด OOP จะทำให้การเข้ารหัสง่ายขึ้นมากเพื่อให้ผู้ชมรู้สึกว่าต้องการ OOP ความคิดใด ๆ ??

6
เหตุใดการเชื่อมโยงจึงไม่ใช่คุณลักษณะดั้งเดิมในภาษาส่วนใหญ่
IMHO ผูกตัวแปรกับตัวแปรอื่นหรือการแสดงออกเป็นสถานการณ์ที่พบบ่อยมากในวิชาคณิตศาสตร์ ในความเป็นจริงในตอนแรกนักเรียนหลายคนคิดว่าผู้ดำเนินการที่ได้รับมอบหมาย (=) มีความผูกพันบางอย่าง แต่ในภาษาส่วนใหญ่การเชื่อมโยงไม่ได้รับการสนับสนุนเป็นคุณลักษณะดั้งเดิม ในบางภาษาเช่น C # รองรับการเชื่อมโยงในบางกรณีโดยมีเงื่อนไขบางประการเป็นจริง แต่ IMHO ที่ใช้สิ่งนี้เป็นคุณสมบัติดั้งเดิมนั้นง่ายเหมือนการเปลี่ยนรหัสต่อไปนี้ - int a,b,sum; sum := a + b; a = 10; b = 20; a++; สำหรับสิ่งนี้- int a,b,sum; a = 10; sum = a + b; b = 20; sum = a + b; a++; sum = …

6
ความแตกต่างระหว่างเว็บไซต์และเว็บแอปพลิเคชันคืออะไร
คุณแยกความแตกต่างของเว็บแอปพลิเคชันจากเว็บไซต์อย่างไร เป็นภาษา / แพลตฟอร์มไม่เชื่อเรื่องพระเจ้า

1
ตัวอย่างความเป็นไปได้ของหน่วยความจำทรานแซคชันของซอฟต์แวร์
หนึ่งในข้อได้เปรียบที่สำคัญของหน่วยความจำทรานแซคชันของซอฟต์แวร์ที่ได้รับการกล่าวถึงเสมอคือความสามารถในการประกอบและโมดูล ชิ้นส่วนที่แตกต่างกันสามารถนำมารวมกันเพื่อผลิตส่วนประกอบที่มีขนาดใหญ่ขึ้น ในโปรแกรมล็อคตามนี้มักจะไม่เป็นกรณี ฉันกำลังมองหาตัวอย่างง่ายๆที่แสดงถึงสิ่งนี้ด้วยรหัสจริง ฉันต้องการตัวอย่างใน Clojure แต่ Haskell ก็ดีเหมือนกัน คะแนนโบนัสหากตัวอย่างแสดงรหัสล็อคที่ไม่สามารถเขียนได้ง่าย
11 haskell  clojure  stm 

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

6
คุณเห็นการใช้งานสำหรับ“ การเขียนโปรแกรมสเปรดชีต” หรือไม่? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา เมื่อไม่นานมานี้ฉันสะดุดกับแนวคิดการใช้สเปรดชีต (ฉันหมายถึงเซลล์และสูตรที่ไม่ใช่รหัสมาโคร) เป็นวิธีการระบุตรรกะการเขียนโปรแกรม ความคิดคือ: สร้างสเปรดชีตที่มีโฟลว์การคำนวณที่กำหนดไว้อย่างชัดเจน (ซึ่งบางครั้งก็เหมาะกับกระบวนทัศน์ "dataflow" ของสเปรดชีตแทนที่จะเป็นรูปแบบการเขียนโปรแกรมเชิงวัตถุหรือเชิงกระบวนวิธี) กำหนดเซลล์อินพุต กำหนดเซลล์เอาท์พุท รวบรวมสิ่งทั้งหมดเป็นคลาสที่ปฏิบัติการได้แบบสแตนด์อโลน (หรือฟังก์ชัน, โพรซีเดอร์, ... ) ใช้ในรหัสปกติภายในโครงการซอฟต์แวร์ที่กว้างขึ้น ใช้สเปรดชีตเป็นซอร์สโค้ดที่จะคงอยู่ตลอดเวลา แนวคิดคือการใช้เทคนิคนี้สำหรับปัญหาที่พอดีกับตัวแบบจริง ๆ และสิ่งนี้จะนำไปสู่รหัสที่มีเอกสารที่เป็นธรรมชาติและบำรุงรักษาง่าย ฉันสนใจที่จะรู้ว่าคุณมีประสบการณ์ในการใช้เทคนิคนี้หรือไม่และเพื่ออะไร แอปพลิเคชันตัวอย่างที่อยู่ในใจของฉันคือเครื่องคำนวณภาษีประกันภัยซึ่งโดยทั่วไปจะร่างสร้างและตรวจสอบโดยนักคณิตศาสตร์บนแผ่นงาน Excel และรหัสต่อมาเท่านั้น (เป็นกระบวนการที่เจ็บปวด) ในตรรกะการเขียนโปรแกรมที่ยากต่อการบำรุงรักษา

6
หมายเลขเวอร์ชั่นก่อนหน้าทำงานอย่างไรสำหรับผลิตภัณฑ์ใหม่
ตอนนี้ฉันกำลังเขียนแอปพลิเคชันเดสก์ท็อปขนาดเล็กสำหรับเพื่อน แต่ฉันกำลังทำมันเป็นประสบการณ์การเรียนรู้ด้วยตนเองเป็นหลัก ด้วยจิตวิญญาณของการได้รับการศึกษาและทำสิ่งที่ถูกต้องฉันต้องการมีหมายเลขรุ่นสำหรับแอปนี้ การวิจัยของฉันทำให้เกิดผลลัพธ์ที่เกี่ยวข้องเหล่านี้ คุณใช้ "แผนการตั้งชื่อเวอร์ชัน" อะไร คุณทำเวอร์ชันไฟล์อย่างไร (หมายเลขเวอร์ชัน) โครงการแยกที่หมายเลขเวอร์ชันของฉันเริ่มต้นที่ไหน แต่ไม่มีพวกเขาที่ระบุหมายเลขของอัลฟ่า, เบตา, ผู้สมัครอิสระ, & c ข้อตกลงสำหรับหมายเลขรุ่นต่ำกว่า 1.0 คืออะไร ฉันรู้ว่าพวกเขาสามารถไปบางครั้ง; ตัวอย่างเช่น PuTTY มีมานานอย่างน้อยหนึ่งทศวรรษและยังคงเป็นรุ่นเบต้า 0.60 เท่านั้น
11 naming 

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

6
ฉันรู้วิธีการโปรแกรมและวิธีการเรียนรู้วิธีการเขียนโปรแกรม แต่คุณเรียนรู้วิธีการสร้างระบบได้อย่างถูกต้องที่ไหน? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว มีหลายสิ่งที่ต้องพิจารณาเมื่อสร้างระบบลองยกตัวอย่างเช่นระบบที่ทำงานบนเว็บที่ผู้ใช้ลงชื่อเข้าใช้และโต้ตอบซึ่งกันและกันการสร้างและแก้ไขเนื้อหา ตอนนี้ฉันต้องคิดเกี่ยวกับความปลอดภัยการตรวจสอบ (ฉันไม่คิดว่าฉันแน่ใจ 100% ว่าอะไรที่เกี่ยวข้อง), "ทำให้แน่ใจว่าผู้ใช้ไม่ได้ก้าวเท้ากัน" (คำนี้?) ป้องกันข้อผิดพลาดในหลาย ๆ กรณีทำให้แน่ใจว่าข้อมูลฐานข้อมูลไม่เป็นปัญหาผ่านสถานการณ์ที่ไม่คาดคิด ... ทุกสิ่งเหล่านี้ฉันไม่รู้ว่าจะเรียนที่ไหนหรืออย่างไรมีหนังสือเกี่ยวกับเรื่องแบบนี้หรือไม่? อย่างที่ฉันบอกว่าดูเหมือนว่าจะมีความแตกต่างอย่างมากระหว่างการเขียนโค้ดและการเขียนรหัสที่ถูกต้องรู้ว่าฉันหมายถึงอะไร? ฉันรู้สึกว่างานเขียนโปรแกรมในปัจจุบันของฉันขาดสิ่งที่อธิบายไว้มากและฉันสามารถเห็นปัญหาที่เกิดขึ้นในภายหลัง แล้วปัญหาก็ยากที่จะแก้เพราะข้อมูลมีอยู่และผู้คนใช้มัน ดังนั้นทุกคนสามารถชี้ให้ฉันเห็นหนังสือหรือทรัพยากรหรือชุดย่อยที่เหมาะสมของการเขียนโปรแกรม (?) สำหรับการเรียนรู้ประเภทนี้ PS: อย่าลังเลที่จะแก้ไขแท็กของฉันฉันไม่รู้ว่าฉันกำลังพูดถึงอะไร แก้ไข: ฉันถือว่าตัวอย่างบางส่วนที่ฉันเขียนนำไปใช้กับระบบประเภทอื่นเช่นกันฉันก็ไม่รู้ตัวอย่างที่ดีอื่น ๆ เพราะฉันมีส่วนเกี่ยวข้องกับงานเว็บเป็นส่วนใหญ่

10
จุดของคุณสมบัติคืออะไร?
นี่คือข้อโต้แย้งบางประการสำหรับคุณสมบัติและข้อโต้แย้งของฉัน: ใช้งานง่ายกว่าการเขียนวิธี getter และ setter คู่ของ Getter และ setter เป็นกลิ่นของโค้ด การทำให้ง่ายต่อการเขียนสิ่งเหล่านี้ก็เหมือนกับการทำให้ล้มเหลวในการทดสอบคณิตศาสตร์โดยใช้แบบฟอร์ม Scantron และเติมใน 'C's ทั้งหมด วัตถุที่มีเพียงสถานะสำหรับการคงอยู่ไม่ควรใช้ getters / setters และควรสร้างวัตถุที่ไม่เปลี่ยนรูปในเวลาที่มีอยู่ สิ่งที่สำคัญสำหรับผู้บริโภคของวัตถุคือสิ่งที่มันทำไม่ได้เป็นอย่างไร พฤติกรรมของมันคือสิ่งที่มันทำ; สถานะของมันเป็นอย่างไร หากคุณพบว่าตัวเองสนใจเกี่ยวกับสถานะของวัตถุ (ยกเว้นการคงอยู่แม้ว่าสิ่งนี้จะทำลาย OO) คุณก็ไม่ได้ทำ OOP และสูญเสียข้อดีของมัน พวกเขาให้ข้อบ่งชี้ประสิทธิภาพอย่างคร่าว ๆ กับผู้บริโภค นี่คือสิ่งที่สามารถเปลี่ยนแปลงได้ในอนาคตสำหรับอสังหาริมทรัพย์ใด ๆ ก็ตาม สมมติว่าในรีลีส 1.0 การเข้าถึง PropertyX จะส่งคืนฟิลด์ ในรีลีส 1.5 หากฟิลด์เป็นโมฆะ PropertyX จะใช้รูปแบบวัตถุ Null เพื่อสร้างวัตถุ null ใหม่ ในรุ่น …

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

6
วิธีการใช้ประโยชน์สูงสุดจากความเป็นอิสระในสถานที่ตั้ง ... สิ่งจูงใจอันดับ 1 ของฉันสำหรับการทำงานเป็นนักพัฒนาซอฟต์แวร์ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน8 ปีที่ผ่านมา สำหรับฉันความงามขั้นสูงสุดในการทำงานในฐานะนักพัฒนาคือความจริงที่ได้รับ CV ที่ดีคุณกำลังจะหางานใหม่ทุกที่ทุกเวลา ดังนั้นฉันอยากจะถามว่ามีคนที่นี่เป็นประสบการณ์ในการทำงานในขณะเดินทางหรือเปล่า หรือเปลี่ยนงานจากมหานครสู่มหานครทุก ๆ หกเดือน ตัวอย่างเช่นฉันได้ตรวจสอบวิธีเดินทางไปบราซิล แต่ดูเหมือนว่าการทำงานเป็นพนักงานในบราซิลจะไม่มีทางเลือก b / c ต้องใช้เวลา / เงิน / ความพยายามมากในการขอวีซ่าและการอนุญาตที่เหมาะสม ทางออกที่ใช้ได้จริงเพียงอย่างเดียวคือเพื่ออิสระและการเดินทางที่เป็นธรรมในขณะที่ทำงานให้เสร็จไม่ว่าคุณจะอยู่ที่ใด ฉันพนันได้เลยว่ามีพวกไอทีอยู่มากมายและที่นี่ที่รู้ว่าฉันกำลังพูดอะไรอยู่ ฉันรอคอยที่จะคิดและเรื่องราวที่น่าสนใจ แก้ไขสำหรับ BOUNTY: ฉันไม่ได้ขัดจังหวะในภูมิปัญญาทั่วไปมากนัก แต่เป็นเรื่องราวที่เป็นรูปธรรมของประสบการณ์ส่วนตัวที่พูดถึงเรื่องจากผู้ที่สามารถเกี่ยวข้องกับคำถามของฉันและมีประสบการณ์ส่วนตัวที่จะแบ่งปัน ฉันไม่ได้ขอความคิดเห็นและเรื่องราวเกี่ยวกับธรรมชาติในระดับที่สอง แก้ไขสำหรับทุกคน (คำถามคอนกรีต): คุณทำงานที่ไหนในขณะเดินทาง? (สำนักงานร่วมกันหรือไม่ห้องสมุด? cafés) คุณนอนที่ไหน? ฉันคิดว่าโรงแรมค่อนข้างแพง (โฮสเทลกำลังท่อง?) แก้ไข ฉันยอมรับคำตอบของแอนดี้ว่า "คำตอบ" ส่วนใหญ่คือ b / …

4
ไปไกลแค่ไหนกับการทดสอบหน่วย
คำถามที่ถามมาหลายครั้งก่อน แต่มีการพัฒนาเอียง twds mvc เฉพาะ ฉันเป็นเด็กที่ดีมากและได้เขียนโค้ดแอ็คชั่นคอนโทรลเลอร์ทั้งหมดของฉันด้วยการทดสอบหน่วยที่เกี่ยวข้องซึ่งยอดเยี่ยมมาก (ถ้าซ้ำ ๆ [อ่านมาก ๆ ] ในบางครั้ง) ตามจริงแล้วฉันได้สร้างเทมเพลต T4 เล็ก ๆ น้อย ๆ เพื่อเขียนกระดูกเปลือยส่วนใหญ่ของการทดสอบหน่วยเริ่มต้นจากนั้นปรับแต่งตามความเหมาะสมตามการใช้งาน ฉันจะยอมรับว่าไม่แน่ใจว่าจะจัดการกับการทดสอบในมุมมองที่มีบางส่วนได้อย่างไร - แต่นั่นเป็นเรื่องราวสำหรับคำถามอื่น ตอนนี้ส่วนที่ยากสำหรับฉันที่จะตัดสินใจก็คือความครอบคลุมที่ลึกแค่ไหนในชั้นบริการของฉัน สาเหตุที่วิธีการบริการบางอย่างของฉัน (ดีขึ้นหรือแย่ลง) ดำเนินการกับคำสั่ง linq ที่หลากหลายซึ่งให้ข้อมูลที่รอบคอบกับตรรกะที่ตามมาภายในวิธีการนั้น ฉันรู้ว่าฉันสามารถ (ควร ??) ทำลายวิธีการเหล่านี้ลงไปเท่านั้นเรียกตรรกะที่จำเป็นสำหรับแต่ละคำสั่ง linq แล้วใช้พวกเขาภายในวิธีการ อย่างไรก็ตามในหลาย ๆ กรณีไม่มีการใช้งานซ้ำของฟังก์ชัน 'linq' และดังนั้นจึงรู้สึกว่าการทำเช่นนี้จะทำให้รหัสออกมาในระดับที่ไกลเกินไป สิ่งที่ฉันถามคือด้วยตรรกะที่ซับซ้อนที่เกิดขึ้นในวิธีการมันเป็น 'ดีพอ' ที่จะมีวิธีการทดสอบที่เพียงแค่อ้างถึงผลลัพธ์ที่ต้องการและ / หรือข้อผิดพลาดที่คาดหวังหรือควรจะทุกบรรทัดตรรกะพร้อมกันและทดสอบด้วย วิธีที่ฉันเห็นการทำการทดสอบอย่างถูกต้องจากนั้นเมธอดตรรกะ (ทีละบรรทัด) ควรได้รับความครอบคลุมบางประเภทเช่นกัน อย่างไรก็ตาม (ในความคิดเห็นที่ไร้เดียงสาของฉัน) อาจนำไปสู่วัฏจักรที่ไม่สิ้นสุดของการพยายามทดสอบและวิธีการที่นำมาใช้อย่างใกล้ชิด …
11 c#  .net  asp.net-mvc 

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