คำถามติดแท็ก language-agnostic

ใช้แท็กนี้สำหรับคำถามโปรแกรมที่เป็นอิสระจากภาษาการเขียนโปรแกรมเฉพาะใด ๆ

30
ชื่อที่ดีที่สุดสำหรับวิธี“ เพิ่ม” ที่ไม่กลายพันธุ์ในคอลเลกชันที่ไม่เปลี่ยนรูปแบบคืออะไร
ขออภัยสำหรับชื่อวาฟเฟิล - ถ้าฉันสามารถสร้างชื่อที่กระชับได้ฉันไม่ต้องถามคำถาม สมมติว่าฉันมีประเภทรายการที่ไม่เปลี่ยนรูป มันมีการดำเนินงานFoo(x)ที่ส่งกลับรายการที่ไม่เปลี่ยนรูปใหม่ที่มีข้อโต้แย้งที่ระบุว่าเป็นองค์ประกอบพิเศษในตอนท้าย ดังนั้นเพื่อสร้างรายการของสตริงที่มีค่า "Hello", "immutable", "world" คุณสามารถเขียน: var empty = new ImmutableList<string>(); var list1 = empty.Foo("Hello"); var list2 = list1.Foo("immutable"); var list3 = list2.Foo("word"); (นี่คือรหัส C # และฉันสนใจคำแนะนำ C # มากที่สุดหากคุณรู้สึกว่าภาษามีความสำคัญไม่ใช่คำถามทางภาษา แต่พื้นฐานของภาษาอาจมีความสำคัญ) สิ่งสำคัญคือรายการที่มีอยู่จะไม่เปลี่ยนแปลงโดยFooดังนั้นempty.Countจะยังคงกลับ 0 อีกวิธีหนึ่ง (สำนวนมากขึ้น) ของการบรรลุผลจะเป็น: var list = new ImmutableList<string>().Foo("Hello") .Foo("immutable") .Foo("word"); คำถามของฉันคืออะไรชื่อที่ดีที่สุดสำหรับ Foo คืออะไร? …

30
พารามิเตอร์มีจำนวนมากเกินไป [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ปิดให้บริการใน4 ปีที่แล้ว ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ กิจวัตรสามารถมีพารามิเตอร์ได้นั่นไม่ใช่ข่าวเลย คุณสามารถกำหนดพารามิเตอร์ได้มากเท่าที่คุณต้องการ แต่มีจำนวนมากเกินไปที่จะทำให้งานประจำของคุณยากที่จะเข้าใจและบำรุงรักษา แน่นอนคุณสามารถใช้ตัวแปรที่มีโครงสร้างเป็นวิธีแก้ไข: วางตัวแปรเหล่านั้นทั้งหมดไว้ในโครงสร้างเดียวและส่งผ่านไปยังรูทีน ในความเป็นจริงโดยใช้โครงสร้างที่จะลดความซับซ้อนของรายการพารามิเตอร์เป็นหนึ่งในเทคนิคที่อธิบายไว้โดยสตีฟ McConnell ในรหัสเสร็จสมบูรณ์ แต่ในขณะที่เขาพูดว่า: โปรแกรมเมอร์อย่างระมัดระวังหลีกเลี่ยงการรวมข้อมูลมากกว่าที่จำเป็นตามหลักเหตุผล ดังนั้นถ้ารูทีนของคุณมีพารามิเตอร์มากเกินไปหรือคุณใช้ struct เพื่อปิดบังรายการพารามิเตอร์ขนาดใหญ่คุณอาจทำอะไรผิดพลาด นั่นคือคุณไม่ได้มีเพศสัมพันธ์หลวม คำถามของฉันคือเมื่อใดที่ฉันสามารถพิจารณารายการพารามิเตอร์ที่ใหญ่เกินไป ฉันคิดว่าพารามิเตอร์มากกว่า 5 ตัวนั้นมากเกินไป คุณคิดอย่างไร?

5
ชื่อไฟล์? ชื่อเส้นทาง ชื่อฐาน? การตั้งชื่อมาตรฐานสำหรับชิ้นส่วนของเส้นทาง
ฉันยังคงปมอยู่เสมอเมื่อฉันจัดการพา ธ และชื่อไฟล์เพราะฉันไม่มีระบบตั้งชื่อทั่วไปที่ฉันใช้ ฉันจำเป็นต้องมีมาตรฐานการตั้งชื่อและติดกับมันและฉันต้องการที่จะชัดเจนและสอดคล้องกับคนอื่น ๆ ดังนั้นฉันเปิดขึ้นเพื่อเรียนรู้คำตอบที่ยอมรับ พิจารณาปัญหาของเล่นนี้: (ตัวอย่าง Windows แต่หวังว่าคำตอบควรเป็นแพลตฟอร์มอิสระ) คุณได้รับชื่อเต็มของโฟลเดอร์: C: \ users \ OddThinking \ Documents \ My Source คุณต้องการเดินโฟลเดอร์ภายใต้และรวบรวม. src ทั้งหมดไปยัง. obj ในบางจุดคุณกำลังดูสตริงต่อไปนี้ C:\users\OddThinking\Documents\My Source\Widget\foo.src ดังนั้นชื่อตัวระบุใดที่คุณจะใช้สำหรับส่วนต่างๆ A) foo B) foo.src C) src D) .src E) C:\users\OddThinking\Documents\My Source\ - i.e. the top of the tree. F) Widget\foo.src - …

30
การเรียกซ้ำหรือซ้ำซ้ำ
มีประสิทธิภาพหรือไม่หากเราใช้ลูปแทนการเรียกซ้ำหรือกลับกันในอัลกอริทึมที่ทั้งสองสามารถตอบสนองวัตถุประสงค์เดียวกันได้หรือไม่? เช่น: ตรวจสอบว่าสตริงที่กำหนดเป็น palindrome หรือไม่ ฉันได้เห็นโปรแกรมเมอร์จำนวนมากที่ใช้การเรียกซ้ำเป็นวิธีการแสดงเมื่ออัลกอริทึมการทำซ้ำง่าย ๆ สามารถพอดีกับการเรียกเก็บเงิน คอมไพเลอร์มีบทบาทสำคัญในการตัดสินใจว่าจะใช้หรือไม่?

30
กรณีการใช้งานจริงของผู้ประกอบการระดับบิต [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ กรณีการใช้งานจริงของผู้ประกอบการระดับบิตต่อไปนี้มีอะไรบ้าง และ แฮคเกอร์ ไม่ หรือ เลื่อนไปทางซ้าย / ขวา

20
เมื่อใดที่ฉันควรใช้ Debug.Assert ()
ฉันเป็นวิศวกรซอฟต์แวร์มืออาชีพมาประมาณหนึ่งปีแล้วหลังจากสำเร็จการศึกษาระดับปริญญาตรี ฉันรู้เกี่ยวกับการยืนยันในขณะที่ใน C ++ และ C แต่ไม่รู้ว่าพวกเขามีอยู่ใน C # และ. NET เลยจนกระทั่งเมื่อไม่นานมานี้ รหัสการผลิตของเราไม่มีการยืนยันใด ๆ และคำถามของฉันคือสิ่งนี้ ... ฉันควรเริ่มใช้ Asserts ในรหัสการผลิตของเราหรือไม่ และถ้าเป็นเช่นนั้นการใช้งานที่เหมาะสมที่สุดเมื่อใด มันจะทำให้รู้สึกมากกว่าที่จะทำ Debug.Assert(val != null); หรือ if ( val == null ) throw new exception();

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

9
มีความแตกต่างระหว่าง foreach และแผนที่หรือไม่?
ตกลงนี่เป็นคำถามเกี่ยวกับวิทยาศาสตร์คอมพิวเตอร์มากกว่าคำถามที่ใช้ภาษาใดภาษาหนึ่ง แต่มีความแตกต่างระหว่างการทำแผนที่และการดำเนินการ foreach หรือไม่? หรือพวกเขาเป็นชื่อที่แตกต่างกันสำหรับสิ่งเดียวกันหรือไม่

13
ฉันสามารถอ่านส่วนแฮชของ URL ในแอปพลิเคชันฝั่งเซิร์ฟเวอร์ของฉัน (PHP, Ruby, Python และอื่น ๆ ) ได้หรือไม่
สมมติว่า URL ของ: www.example.com/?val=1#part2 PHP สามารถอ่านตัวแปรคำขอval1โดยใช้อาร์เรย์ GET ค่าแฮชpart2สามารถอ่านได้ด้วยหรือไม่ หรือมากกว่าเบราว์เซอร์และ JavaScript เท่านั้นหรือไม่

30
อัลกอริทึมการวางระเบิด
ฉันมีn x mเมทริกซ์ที่ประกอบด้วยจำนวนเต็มไม่เป็นลบ ตัวอย่างเช่น: 2 3 4 7 1 1 5 2 6 2 4 3 4 2 1 2 1 2 4 1 3 1 3 4 1 2 1 4 3 2 6 9 1 6 4 "การทิ้งระเบิด" ลดจำนวนหนึ่งของเซลล์เป้าหมายและเพื่อนบ้านทั้งแปดของมันลงเหลือศูนย์ให้น้อยที่สุด x x x x X x x x x …

11
เกิดอะไรขึ้นเมื่อมีหน่วยความจำไม่เพียงพอที่จะโยน OutOfMemoryError
ฉันทราบว่าวัตถุทุกชิ้นต้องการหน่วยความจำฮีปและการอ้างอิงดั้งเดิมบนสแต็กทั้งหมดต้องใช้หน่วยความจำสแต็ก เมื่อฉันพยายามที่จะสร้างวัตถุบนกองและมีหน่วยความจำไม่เพียงพอที่จะทำเช่นนั้น JVM สร้างjava.lang.OutOfMemoryErrorบนกองและโยนมันมาให้ฉัน โดยปริยายนั่นหมายความว่ามีหน่วยความจำบางส่วนที่สงวนไว้โดย JVM เมื่อเริ่มต้น จะเกิดอะไรขึ้นเมื่อหน่วยความจำที่สงวนไว้นี้จะใช้ขึ้น (มันแน่นอนจะนำมาใช้ขึ้นอ่านการอภิปรายด้านล่าง) และ JVM ไม่ได้มีหน่วยความจำเพียงพอในกองเพื่อสร้างตัวอย่างของjava.lang.OutOfMemoryError ? มันแขวนไหม หรือเขาจะขว้างฉันnullตั้งแต่ไม่มีความทรงจำเกี่ยวกับnewตัวอย่างของ OOM? try { Object o = new Object(); // and operations which require memory (well.. that's like everything) } catch (java.lang.OutOfMemoryError e) { // JVM had insufficient memory to create an instance of java.lang.OutOfMemoryError to …

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

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

9
ซอฟต์แวร์ที่มีความเห็นคืออะไร?
ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันมักจะเห็นคนพูดว่าซอฟต์แวร์บางอย่าง "มีความเห็นมาก" หรือว่า Microsoft มีแนวโน้มที่จะเขียนกรอบงานที่ "ไม่แสดงความคิดเห็น" สิ่งนี้หมายความว่าอย่างไร

14
เรียงลำดับ Radix ในสถานที่
นี่คือข้อความยาว กรุณาทนกับฉัน ต้มคำถามก็คือ: มีอัลกอริทึมการเรียงลำดับ Radix แบบทำงานได้หรือไม่? เบื้องต้น ฉันมีสตริงความยาวคงที่ขนาดเล็กจำนวนมากที่ใช้เฉพาะตัวอักษร“ A”,“ C”,“ G” และ“ T” (ใช่คุณเดาได้แล้วว่า: DNA ) ที่ฉันต้องการเรียงลำดับ ในขณะที่ผมใช้std::sortซึ่งใช้introsortในการใช้งานร่วมกันทั้งหมดของSTL ใช้งานได้ค่อนข้างดี อย่างไรก็ตามฉันเชื่อมั่นว่าการเรียงตัวของ Radix ตรงกับปัญหาที่ฉันตั้งไว้อย่างสมบูรณ์แบบและควรทำงานได้ดีขึ้นมากในทางปฏิบัติ รายละเอียด ฉันได้ทดสอบสมมติฐานนี้ด้วยการใช้งานที่ไร้เดียงสามากและสำหรับอินพุตที่ค่อนข้างเล็ก (ตามลำดับ 10,000) นี่เป็นจริง (ดีอย่างน้อยก็เร็วกว่าสองเท่า) อย่างไรก็ตามรันไทม์จะลดลงอย่างมากเมื่อขนาดของปัญหาใหญ่ขึ้น ( N > 5,000,000) เหตุผลชัดเจน: การเรียง radix ต้องคัดลอกข้อมูลทั้งหมด (มากกว่าหนึ่งครั้งในการใช้งานไร้เดียงสาของฉันจริง) ซึ่งหมายความว่าฉันได้ใส่ ~ 4 GiB ลงในหน่วยความจำหลักซึ่งฆ่าได้อย่างชัดเจน แม้ว่ามันจะไม่เป็นเช่นนั้นก็ตามฉันก็ไม่สามารถใช้หน่วยความจำนี้ได้มากขนาดของปัญหาจะใหญ่ขึ้น ใช้เคส อัลกอริทึมนี้ควรทำงานกับความยาวสตริงใด ๆ ระหว่าง 2 ถึง …

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