คำถามติดแท็ก comparison

คำถามเกี่ยวกับการเปรียบเทียบข้อมูลและวิธีที่มีประสิทธิภาพในการทำให้สำเร็จ

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

1
สำรวจกรอบงานเว็บของ Haskell [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา มีเฟรมเวิร์กเว็บจำนวนมากสำหรับ Haskell เช่นHappstack , SnapและYesodและอาจมีอีกไม่กี่อย่าง พวกเขาต่างกันในด้านใดบ้าง? ตัวอย่างเช่น: คุณสมบัติ (เช่นเซิร์ฟเวอร์เท่านั้นหรือสคริปต์ไคลเอนต์รองรับฐานข้อมูลประเภทต่างๆได้ง่าย) ครบกําหนด (เช่นความมั่นคงคุณภาพเอกสาร) ความสามารถในการปรับขยาย (เช่นประสิทธิภาพการทำงานที่เป็นนามธรรม) เป้าหมายหลัก นอกจากนี้ตัวอย่างของไซต์จริง / เว็บแอพที่ใช้เฟรมเวิร์กเหล่านี้คืออะไร ขอบคุณมาก.

12
รหัสแฟนซีสั้นที่แสดงความคิดเห็นกับรหัสที่เข้าใจง่ายอีกต่อไปที่ไม่ใส่โค้ดซึ่งเป็นที่ต้องการ?
บางครั้งอัลกอริทึมสามารถเขียนได้สองวิธี: วิธีที่สั้นและแฟนซี หรือ วิธีที่ยาวและง่ายต่อการเข้าใจ ยกตัวอย่างเช่นที่นี่เป็นอีกต่อไปวิธีที่ง่ายของการคัดลอกสตริงsourceไปdestใน C: *dest = *source; while (*source != '\0') { source++; dest++; *dest = *source; } (true); และนี่เป็นวิธีที่สั้นและแฟนซี // Copy string source to dest while (*dest++ = *source++); ฉันเคยได้ยินและอ่านเสมอว่าควรหลีกเลี่ยงรหัสแฟนซีและฉันมักจะเห็นด้วย แต่ถ้าเราคำนึงถึงความคิดเห็นล่ะสมมติว่าในตัวอย่างข้างต้นเรามีโค้ดที่ไม่มีโค้ดที่เข้าใจง่ายยาวกว่าและเข้าใจง่ายกว่าและมีโค้ดที่สั้นและเข้าใจง่าย รหัสที่ไม่ใช่แฟนซียังคงเป็นที่ต้องการหรือไม่ แก้ไข:หลายคนมีความคิดเห็นเกี่ยวกับชื่อตัวแปรดังนั้นฉันได้แก้ไขโค้ดตัวอย่างเพื่อไม่ให้เป็นปัจจัยเมื่อเลือกมากกว่าอีก ฉันพยายามลบการบ้านสองครั้งในตัวอย่างแรก แต่นั่นทำให้รหัสไม่สามารถอ่านได้ บางทีนี่อาจไม่ใช่ตัวอย่างที่ดีที่สุดเพราะหลายคนพบว่าโค้ด 'แฟนซี' สามารถอ่านและเข้าใจได้ง่ายกว่าโค้ดที่ยาวกว่า แนวคิดก็คือมีรหัสที่ยาวขึ้นหนึ่งรหัสซึ่งง่ายต่อการเข้าใจมากกว่ารหัสสั้น ๆ แต่ซับซ้อน EDIT2:นี่เป็นตัวอย่างใหม่ที่ฉันได้จากSO : ความคิดเห็นเวอร์ชั่นแฟนซี: //direct formula for …

1
การเปรียบเทียบจำนวนเต็มทำงานอย่างไรภายใน
เช่นเมื่อเปรียบเทียบจำนวนเต็มสองจำนวนดังนี้ในภาษา C-like: if (3 > 2) { // do something } การตัดสินว่า 3 นั้นมากกว่า 2 (จริง) หรือไม่ (เท็จ) ที่ทำขึ้นภายใน?

6
คอมไพเลอร์ของ Fortran สร้างโค้ดได้เร็วกว่าคอมไพเลอร์ C จริงๆหรือ
เมื่อฉันเรียนในมหาวิทยาลัยฉันมักจะได้ยินความคิดที่ว่าคอมไพเลอร์ของ Fortran ผลิตโค้ดได้เร็วกว่าคอมไพเลอร์ C สำหรับโปรแกรมที่เทียบเท่า เหตุผลสำคัญที่เป็นเช่นนี้: คอมไพเลอร์ Fortran ปล่อยออกมาโดยเฉลี่ย 1,1 หน่วยประมวลผลคำสั่งต่อบรรทัดของรหัสในขณะที่ C คอมไพเลอร์ส่งเฉลี่ย 1.6 คำสั่งโปรเซสเซอร์ต่อบรรทัดของรหัส - ฉันไม่จำตัวเลขที่แน่นอน แต่ แนวคิดก็คือคอมไพเลอร์ C ปล่อยรหัสเครื่องจักรออกมาอย่างเห็นได้ชัดมากขึ้นดังนั้นจึงผลิตโปรแกรมที่ช้ากว่า การเปรียบเทียบดังกล่าวมีความถูกต้องอย่างไร เราสามารถพูดได้ว่าคอมไพเลอร์ Fortran ผลิตโปรแกรมได้เร็วกว่าคอมไพเลอร์ C หรือในทางกลับกันและทำไมความแตกต่างนี้จึงมีอยู่?

4
Java กับ Linux คืออะไร. NET กับ Windows หรือไม่ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว Java กลายเป็นมาตรฐานอย่างแท้จริงจากการพัฒนาแอพพลิเคชั่น Linux ด้วยวิธีเดียวกัน. NET เป็นมาตรฐานสำหรับการพัฒนาแอพพลิเคชั่น Windows หรือไม่? ถ้าไม่ใช่เพราะอะไร
14 java  .net  comparison 

2
พยายามเข้าใจ 2N lnN เปรียบเทียบกับ quicksort
ฉันกำลังทำการวิเคราะห์ quicksort ในหนังสือ Algorithms ของ Sedgewick เขาสร้างความสัมพันธ์ที่เกิดซ้ำต่อไปนี้สำหรับจำนวนการเปรียบเทียบใน quicksort ขณะที่เรียงลำดับอาร์เรย์ของรายการ N ที่แตกต่างกัน ฉันมีช่วงเวลาที่ยากลำบากในการทำความเข้าใจสิ่งนี้ ... ฉันรู้ว่าต้องใช้ความน่าจะเป็น 1 / N สำหรับองค์ประกอบใด ๆ ที่จะกลายเป็นเดือยและถ้าหาก k กลายเป็นเดือยย่อยย่อยด้านซ้ายจะมีองค์ประกอบ k-1 และย่อยขวา อาร์เรย์จะมีองค์ประกอบ Nk 1. ค่าใช้จ่ายในการแบ่งพาร์ติชันกลายเป็น N + 1 อย่างไร ต้องใช้ N + 1 เปรียบเทียบกับการแบ่งพาร์ติชันหรือไม่ 2.Sedgewick กล่าวว่าสำหรับแต่ละค่าของ k ถ้าคุณบวกมันความน่าจะเป็นที่องค์ประกอบแบ่งเป็น k + ค่าใช้จ่ายสำหรับสองอาร์เรย์ย่อยที่คุณได้รับสมการข้างต้น ใครสามารถอธิบายสิ่งนี้เพื่อให้ผู้ที่มีความรู้ทางคณิตศาสตร์น้อยลง (ฉัน) สามารถเข้าใจได้? คุณจะหาคำที่สองในสมการได้อย่างไร คำนั้นหมายถึงอะไรกันแน่?

1
Scala เป็นภาษาสำหรับการเขียนโปรแกรมทั่วไป
ในบทความ“ การศึกษาเปรียบเทียบเปรียบเทียบเพิ่มเติมของการสนับสนุนภาษาสำหรับการเขียนโปรแกรมทั่วไป” โดย Garcia และคณะ มีการเปรียบเทียบคุณสมบัติภาษาโปรแกรมที่น่าสนใจสำหรับการเขียนโปรแกรมทั่วไป: ด้วยคำอธิบายสั้น ๆ ของคำศัพท์: ทุกคนสามารถทดสอบสกาล่าสนับสนุนการเขียนโปรแกรมทั่วไปภายในกรอบนี้ได้หรือไม่ คือเพิ่มคอลัมน์ในตารางแรกพร้อมคำอธิบายถ้าเป็นไปได้

3
NUnit สำหรับ C # เปรียบเทียบกับเครื่องมือทดสอบหน่วยที่รวมเข้ากับ Visual Studio อย่างไร
ฉันต้องทำงานเป็นทีมเพื่อพัฒนาแอปพลิเคชั่นเดสก์ท็อประดับกลางที่พัฒนาโดยใช้ C # .NET ก่อนหน้านี้ฉันยังไม่ได้ใช้การทดสอบหน่วยและการพัฒนาขับเคลื่อนทดสอบ ฉันทราบว่ามีเครื่องมือและกรอบงานมากมายสำหรับแอปพลิเคชันการทดสอบหน่วย C # ณ ตอนนี้ฉันได้รับทราบถึง Nunit และเครื่องมือทดสอบหน่วยที่รวมเข้ากับ Visual Studio ฉันอยากรู้ว่าทั้งสองเปรียบเทียบกันอย่างไร

2
อินเทอร์เฟซ IComparable ล้าสมัย /“ เป็นอันตราย” หรือไม่
IComparable ใช้งานได้ทางเดียวเท่านั้น สมมติว่าคุณมีEmployeeชั้นเรียน ในมุมมองหนึ่งคุณต้องการแสดงทั้งหมดEmployeesเรียงตามชื่อ - ในอีกมุมมองตามที่อยู่ คุณจะประสบความสำเร็จได้อย่างไร ไม่อยู่กับIComparableอย่างน้อยก็ไม่มีทางที่เป็นไปได้ IComparable มีเหตุผลในสถานที่ที่ไม่ถูกต้อง .Sort()อินเตอร์เฟซที่ถูกนำมาใช้โดยการเรียก ในมุมมองที่แสดงCustomerเรียงตามชื่อไม่มีรหัสเลยที่จะบอกว่ามันจะถูกเรียงลำดับอย่างไร ในทางกลับกันCustomerคลาสจะสมมติว่ามันจะถูกใช้อย่างไรในกรณีนี้มันจะถูกใช้ในรายการเรียงตามชื่อ IComparable มีการใช้งานโดยปริยาย ในการเปรียบเทียบกับทางเลือกมันเป็นเรื่องยากมากที่จะเห็นว่ามีการใช้ตรรกะการเปรียบเทียบหรือไม่ สมมติว่า IDE มาตรฐานของคุณและเริ่มจากCustomerชั้นเรียนฉันจะต้อง ค้นหาการอ้างอิงทั้งหมดถึง Customer ค้นหาการอ้างอิงเหล่านั้นที่ใช้ในรายการ ตรวจสอบว่ารายการเหล่านั้นเคย.Sort()เรียกพวกเขา มีอะไรที่แย่กว่านั้นถ้าคุณลบการIComparableใช้งานที่ยังคงใช้อยู่คุณจะไม่ได้รับข้อผิดพลาดหรือคำเตือน สิ่งเดียวที่คุณจะได้รับคือพฤติกรรมที่ไม่ถูกต้องในทุกสถานที่ที่คลุมเครือเกินกว่าที่คุณจะนึกถึง ปัญหาเหล่านี้รวมกันรวมถึงข้อกำหนดที่เปลี่ยนแปลง เหตุผลที่ฉันมาคิดเรื่องนี้ก็เพราะมันผิดสำหรับฉัน ฉันมีความสุขที่ใช้IComparableในใบสมัครของฉันเป็นเวลา 2 ปีแล้ว ตอนนี้ความต้องการเปลี่ยนแปลงและสิ่งที่ต้องเรียงลำดับใน 2 วิธีที่แตกต่างกัน สังเกตว่าไม่มีความสนุกที่ทำตามขั้นตอนที่อธิบายไว้ในส่วนก่อนหน้า คำถาม ปัญหาเหล่านี้ทำให้ฉันคิดว่าIComparableเป็นด้อยกว่าIComparerหรือ.OrderBy()จนถึงจุดที่ไม่เห็นกรณีการใช้งานที่ถูกต้องที่จะไม่ได้รับการบริการที่ดีขึ้นโดยทางเลือกที่ จะดีกว่าเสมอที่จะใช้IComparerหรือ LINQ หรือมีข้อดี / กรณีการใช้งานที่ฉันไม่เห็นที่นี่?
11 c#  sorting  comparison 

6
ฟีเจอร์ใน Eclipse ไม่พร้อมใช้งานใน Visual Studio [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน8 ปีที่ผ่านมา ฉันได้ทำการพัฒนาอย่างมากใน Java โดยใช้ Eclipse และตอนนี้ฉันได้เริ่มใช้ Visual Studio สำหรับการพัฒนา. NET จนถึงตอนนี้ฉันพบว่า IDEs สามารถทำสิ่งเดียวกันได้ แต่ต่างกัน ฟีเจอร์ใน Eclipse ไม่พร้อมใช้งานใน Visual Studio

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

4
การใช้โอเปอร์เรเตอร์ของ PHP ด้วยอาร์กิวเมนต์เพียงสองตัว
ฉันเพิ่งตรวจสอบบางส่วนของรหัสของฉันและสังเกตเห็นว่าในแบบที่ขาดสติฉันจะออกจากโครงสร้างดังต่อไปนี้: $guid = empty($subscription->guid) ? : $subscription->guid; ตอนนี้สิ่งนี้ไม่ได้ทำในสิ่งที่ควรจะเป็นและผิดแต่เนื่องจากคุณสมบัตินั้นถูกตั้งค่าเสมอตอนนี้มันทำงานได้ดีและไม่มีข้อผิดพลาดทางไวยากรณ์ตั้งแต่ 5.3 เนื่องจากการเปลี่ยนแปลงต่อไปนี้ : ตั้งแต่ PHP 5.3 เป็นไปได้ที่จะปล่อยให้ผู้ให้บริการรายกลางอยู่ Expression expr1?: expr3 ส่งคืน expr1 ถ้า expr1 หาค่าเป็น TRUE และ expr3 เป็นอย่างอื่น ฉันไม่ได้ตระหนักถึงการเปลี่ยนแปลงนี้และตอนนี้ฉันอยากรู้ว่าฉันควรจะใช้มันหรือไม่ นี่คือสิ่งที่ฉันขาดไปอย่างมากจากภาษาเช่นทับทิมที่คุณสามารถทำได้เช่นa = b || cเพื่อให้ได้บูลีน 'ของจริง' bหรือcมากกว่า อย่างไรก็ตามไวยากรณ์ที่พวกเขาเลือกสำหรับผู้ประกอบการที่ดูเหมือนจะเป็นเรื่องง่ายสำหรับฉัน ฉันควรจะใช้สิ่งนี้ในรหัสการผลิตหรือไม่? แน่นอนว่ามันทำให้ฉันประหลาดใจเมื่อฉันเห็นมันโดยบังเอิญ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.