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

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

6
คำศัพท์ 24-bits
มีคำศัพท์สำหรับจำนวนเต็ม 24- บิต (3 ไบต์) หรือไม่? ฉันรู้ว่านับบิตที่ผิดปกติ (เช่น"nibble"หรือ"nybble"สำหรับ 4 บิต) มีชื่อและมี 24 บิตในทั้งวิดีโอและเทคโนโลยีเสียงเช่นเป็นเรื่องธรรมดามาก

8
วิศวกรรมย้อนกลับ: เป็นสิ่งที่ดีจริงๆ? [ปิด]
เป็นการยากที่จะบอกสิ่งที่ถูกถามที่นี่ คำถามนี้คลุมเครือคลุมเครือไม่สมบูรณ์กว้างเกินไปหรือโวหารและไม่สามารถตอบได้อย่างสมเหตุสมผลในรูปแบบปัจจุบัน สำหรับความช่วยเหลือในการทำความเข้าใจคำถามนี้เพื่อที่จะสามารถเปิด, ไปที่ศูนย์ช่วยเหลือ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันมีคำถามที่ไร้เดียงสา / มือใหม่: วิศวกรรมย้อนกลับดีอย่างไร ในฐานะโปรแกรมเมอร์ฉันควรเรียนรู้ศิลปะของวิศวกรรมย้อนกลับหรือไม่ โปรแกรมเมอร์ที่ได้รับผลประโยชน์มีประโยชน์อะไรบ้าง?

5
“ Web API” ใน ASP.Net MVC4 คืออะไร
ฉันรู้ว่าเว็บ API คืออะไร ฉันเขียน API ในหลายภาษา (รวมถึง MVC3) ฉันยังฝึกฝนอย่างดีใน ASP.Net ฉันเพิ่งค้นพบว่า MVC4 มี "Web API" และโดยไม่ต้องผ่านตัวอย่างวิดีโอฉันไม่สามารถหาคำอธิบายที่ดีว่ามันคืออะไร จากประสบการณ์ที่ผ่านมาของฉันเทคโนโลยีของ Microsoft (โดยเฉพาะ ASP.Net) มีแนวโน้มที่จะใช้แนวคิดที่เรียบง่ายและห่อหุ้มด้วยค่าโสหุ้ยที่ไร้ประโยชน์ซึ่งจะทำให้ทุกอย่าง "ง่ายขึ้น" มีใครช่วยอธิบายให้ฉันฟังว่า Web API ใน MVC4 เป็นอะไรกันแน่ ทำไมฉันต้องการมัน ทำไมฉันถึงเขียน API ของตัวเองไม่ได้?

2
WinRT สามารถใช้งานได้จริงในขอบเขตหรือไม่?
Microsoft (ส่วนใหญ่Herb Sutter ) แนะนำให้ใช้เมื่อใช้ WinRT กับ C ++ / CX เพื่อให้ WinRT อยู่ในขอบเขตของแอปพลิเคชันและเก็บแกนหลักของแอปพลิเคชันที่เขียนด้วย ISO C ++ มาตรฐาน ฉันกำลังเขียนแอปพลิเคชันที่ฉันต้องการออกจากระบบพกพาดังนั้นฟังก์ชั่นหลักของฉันจึงถูกเขียนด้วยมาตรฐาน C ++ และตอนนี้ฉันกำลังพยายามเขียนส่วนหน้าแบบเมโทรโดยใช้ C ++ / CX อย่างไรก็ตามฉันมีปัญหาเล็กน้อยเกี่ยวกับวิธีการนี้ ตัวอย่างเช่นถ้าผมต้องการที่จะผลักดันเวกเตอร์ของผู้ใช้กำหนด c ++ ประเภทเพื่อการควบคุม XAML ListView ผมต้องห่อของฉันประเภทที่ผู้ใช้กำหนดใน WinRT ประเภทเตะ / Vector^ค่าให้มันถูกเก็บไว้ใน ด้วยวิธีการนี้ทำให้ฉันต้องทิ้งคลาส C ++ ส่วนใหญ่ไว้กับคลาส WinRT อย่างหลีกเลี่ยงไม่ได้ นี่เป็นครั้งแรกที่ฉันพยายามเขียนแอปพลิเคชันเนทีฟแบบพกพาใน C ++ การใช้ WinRT เป็นไปตามขอบเขตเช่นนี้จริงหรือไม่? …
15 c++  portability  winrt 

4
การศึกษาว่าโปรแกรมเมอร์สามารถเข้าใจโค้ดในภาษาที่ไม่คุ้นเคยได้ดีเพียงใด [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา มีการศึกษาอย่างจริงจังหรือไม่ว่าโปรแกรมเมอร์ที่มีประสบการณ์และรู้ภาษา X สามารถเข้าใจโค้ดที่เขียนโดยโปรแกรมเมอร์ที่มีความสามารถโดยใช้ภาษา Y สำหรับภาษาที่มีการใช้กันอย่างแพร่หลายเช่น X และ Y หรือไม่? แน่นอนว่าโลกแห่งความเป็นจริงไม่ใช่เรื่องง่ายนักเนื่องจากโปรแกรมเมอร์รู้เพียงภาษาเดียว สิ่งที่เราอยากรู้คือ: ถ้าเราทำโครงการของเราพูด C # และสักวันหนึ่งนักฟิสิกส์บางคนที่รู้เพียงฟอร์แทรนและอัลกอลมองไปที่มันจะเหมาะสมกับพวกเขามากแค่ไหน? ส่วนทางคณิตศาสตร์ของมันอาจอ่านได้ดีสำหรับพวกเขาหากพวกเขาไม่สนใจสิ่งที่พวกเขาเป็นเครื่องหมายวรรคตอนแบบสุ่ม - ish หรือผู้เชี่ยวชาญ Python จะสามารถหาข้อบกพร่องในสคริปต์ Ruby ที่ฉลาดของฉันได้หรือไม่ อาจมีปัญหาจากระดับของซินแท็กซ์ผิวเผินไปจนถึงระดับของแนวคิดที่ยิ่งใหญ่เช่นวัตถุเทมเพลต metaprogramming การใช้งานและอื่น ๆ ฉันไม่ได้คาดหวังว่าผู้เขียนโปรแกรมคนหนึ่งจะเข้าใจทุกรายละเอียดทางไวยากรณ์ของรหัสใน "ภาษาต่างประเทศ" หรือตามศาสนาของแนวความคิดที่ยิ่งใหญ่ แต่สงสัยว่าพวกเขาจะได้รับการควบคุมหลักได้อย่างไร เมื่อสิ่งที่วาดบนหน้าจอและสิ่งที่กำหนดสีหรือขนาดของมันให้ตรวจสอบว่าหุ่นยนต์ที่ตั้งโปรแกรมให้ขับรถจะปิดเครื่องยนต์เมื่อทำเสร็จแล้วสิ่งต่างๆเหล่านั้น การศึกษาที่มีคุณภาพดีจะรวมถึงการวิจัยเชิงวิชาการที่ตีพิมพ์รายงานอย่างเป็นทางการจากกลุ่มอุตสาหกรรมหรือ บริษัท ซอฟต์แวร์รายใหญ่แม้ว่าฉันจะทำการสังเกตอย่างเป็นระบบโดยผู้นำที่มีประสบการณ์ในการประชุมเชิงปฏิบัติการและชั้นเรียนหรือแหล่งอื่น ๆ ไม่สนใจบล็อกสั้น ๆ ตัวอย่างกรณีเดียวหรือเกร็ดเล็กเกร็ดน้อย …

10
วิธีที่ดีที่สุดสำหรับการเขียนโปรแกรมหมากรุก? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันเป็นคนที่ชอบเล่นหมากรุกและเป็นโปรแกรมเมอร์ ฉันเพิ่งตัดสินใจเริ่มสร้างโปรแกรมหมากรุกโดยใช้หมากรุกและความรู้ด้านการเขียนโปรแกรมของฉัน ดังนั้นนี่คือคำถามของฉัน: ควรใช้ภาษาใด (ฉันคุ้นเคยกับ Java, C ++ และ Python) และวิธีการในขณะที่เขียนเอ็นจิ้นหมากรุก คำแนะนำเล็กน้อยจะได้รับการชื่นชมมาก แก้ไข: ดังนั้นฉันตัดสินใจที่จะทำมันใน JavaScript ฉันดาวน์โหลดChess UI นี้จาก github และตอนนี้ฉันก็พร้อมแล้ว! ขั้นตอนแรกของฉันคือการเขียนการเคลื่อนไหวทางกฎหมายสำหรับมัน ดังนั้นใครสามารถชี้ฉันในทิศทางที่ถูกต้องได้หรือไม่? (ฉันใหม่สำหรับ jQuery แต่มีประสบการณ์ในการเขียนโปรแกรมมาก) PS: ฉันไม่ได้พยายามสร้างเครื่องมือที่มีประสิทธิภาพมาก (ฉันรู้ว่ามันยากเกินไป) ฉันแค่อยากทำความคุ้นเคยกับกระบวนการและเรียนรู้เทคนิคใหม่ ๆ ตลอดทาง

6
จะค้นหาข้อมูลที่เกี่ยวข้องกับภาษาโปรแกรม Go ได้อย่างไร?
หากมีบางสิ่งที่จะฆ่าภาษาโกก็เป็นชื่อ ฉันพบว่ามันยากมากที่จะพบสิ่งใดในเว็บที่เกี่ยวข้องเพียงแค่ใช้ "ไป" ในแบบสอบถาม คำนี้ใช้บ่อยที่สุดในภาษาอังกฤษ ดังนั้นฉันเห็นทุกอย่างในผลลัพธ์ยกเว้นสิ่งที่เกี่ยวข้องกับ Go แม้แต่ Google ที่เป็นผู้สนับสนุนภาษาและมีชื่อเสียงในการติดตามสิ่งที่ฉันค้นหาไม่สามารถติดตามได้ว่าฉันเป็นโปรแกรมเมอร์จึงสนใจภาษาการเขียนโปรแกรมไม่ใช่ไวยากรณ์ภาษาอังกฤษ จะค้นหาข้อมูลที่เกี่ยวข้องกับภาษาการเขียนโปรแกรมได้อย่างไรโดยไม่รวมผลลัพธ์ที่เกี่ยวข้องกับไวยากรณ์ภาษาอังกฤษ ลองนึกภาพตัวอย่างเช่นโพสต์บล็อกที่มีคนกล่าวถึงการสังเกตของเขาเกี่ยวกับ Go เขาอาจจะไม่ใช้ประโยคที่ง่ายต่อการค้นหาเช่น "ใช้ภาษาเขียนโปรแกรม" บางทีอาจเป็นบางสิ่ง "มีสิ่งหนึ่งที่ฉันชอบเกี่ยวกับ Go"
15 search-engine  go 

4
ส่วนต่อประสานที่คล่องแคล่วมีความยืดหยุ่นมากกว่าคุณสมบัติและทำไม?
ในการสอนโค้ด EF 4.1 รหัสแรกจะได้รับรหัสต่อไปนี้: public class Department { public int DepartmentId { get; set; } [Required] public string Name { get; set; } public virtual ICollection<Collaborator> Collaborators { get; set; } } จากนั้นจะอธิบายว่าอินเทอร์เฟซที่คล่องแคล่วมีความยืดหยุ่นมากขึ้น: คำอธิบายประกอบข้อมูลนั้นใช้งานง่ายอย่างแน่นอน แต่ควรใช้วิธีการเขียนโปรแกรมที่ให้ความยืดหยุ่นมากกว่า ตัวอย่างของการใช้ส่วนต่อประสานที่คล่องแคล่วจะได้รับ: protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<Department>().Property(dp => dp.Name).IsRequired(); modelBuilder.Entity<Manager>().HasKey(ma => ma.ManagerCode); modelBuilder.Entity<Manager>().Property(ma => …
15 c#  coding-style 

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

8
มีรูปแบบการออกแบบยกเว้น MVC สำหรับเว็บหรือไม่
ฉันต้องการทราบว่ามีรูปแบบการออกแบบใด ๆ สำหรับเว็บนอกเหนือจาก MVC หรือไม่ ฉันรู้ว่ามีรูปแบบการออกแบบเป็น: Registry, Observer, Factory, ActiveRecord, ... และ MVC ชุดของรูปแบบการออกแบบอื่น ๆ และโครงสร้างโฟลเดอร์ มีรูปแบบการออกแบบเช่น MVC เป็นชุดรูปแบบการออกแบบอื่น ๆ หรือไม่? แก้ไข: ภาษาการเขียนโปรแกรมของฉันคือ PHP

1
Java Cryptography Extension
ฉันได้รับแจ้งว่าเพื่อรองรับการเข้ารหัส AES256 ภายในแอป Java ของฉันที่ฉันต้องการ JCE พร้อมไฟล์นโยบายการ จำกัด เขตอำนาจที่ไม่ จำกัด ฉันดาวน์โหลดสิ่งนี้จาก Oracle และคลายซิปและฉันเห็นเพียง 2 JARs: local_policy.jar; และ US_export_polic.jar ฉันแค่ต้องการยืนยันว่าฉันจะไม่พลาดอะไรที่นี่! ความเข้าใจของฉัน (หลังจากอ่านREADME.txt) คือฉันเพิ่งวางทั้งสองลงใน<JAVA_HOME>/lib/security/ไดเรกทอรีของฉันและพวกเขาควรจะติดตั้ง ด้วยชื่อของ JARs เหล่านี้ฉันต้องสมมติว่าไม่ใช่ Java Crypto API ที่ไม่สามารถจัดการ AES256 ได้ แต่จริงๆแล้วมันเป็นปัญหาทางกฎหมาย และโดยที่ JAR สองตัวนี้บอก JRE ว่า " ใช่เป็นที่ยอมรับตามกฎหมายในการใช้ crypto ระดับนี้ (AES256) " ฉันถูกต้องหรือผิดฐาน?

4
วิธีการเรียนรู้ Cloud Computing และข้อมูลขนาดใหญ่ที่บ้าน? [ปิด]
เป็นการยากที่จะบอกสิ่งที่ถูกถามที่นี่ คำถามนี้คลุมเครือคลุมเครือไม่สมบูรณ์กว้างเกินไปหรือโวหารและไม่สามารถตอบได้อย่างสมเหตุสมผลในรูปแบบปัจจุบัน สำหรับความช่วยเหลือในการทำความเข้าใจคำถามนี้เพื่อที่จะสามารถเปิด, ไปที่ศูนย์ช่วยเหลือ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันต้องการเรียนรู้ Cloud Computing และ Big Data ที่บ้าน เป็นไปได้หรือไม่ที่จะเรียนรู้เทคโนโลยีเหล่านี้บนพีซีที่บ้าน? เทคโนโลยีใดที่จะเรียนรู้ใน Cloud Computing เทคโนโลยีใดที่จะเรียนรู้ Big Data (Hadoop)

6
วิธีการออกแบบที่ดีเมื่อใช้วิธีการแบบเปรียว
ฉันใช้วิธีการแบบว่องไว (SCRUM) เป็นเวลาประมาณสามปีแล้วและฉันเห็นข้อดีบางประการโดยเฉพาะอย่างยิ่งในความคิดเห็นระยะสั้นในหลาย ๆ ระดับ (จากลูกค้าที่มีการเข้าถึงคุณลักษณะการใช้งานก่อนหน้านี้จากผู้ทดสอบที่สามารถทดสอบคุณลักษณะต่างๆ ในไม่ช้าพวกเขาจะถูกนำไปใช้งานจากนักพัฒนาซอฟต์แวร์รายอื่นที่สามารถให้ข้อเสนอแนะเกี่ยวกับโค้ดใหม่ผ่านการตรวจสอบและอื่น ๆ ) ในทางกลับกันฉันมีสองปัญหาที่เปิดอยู่สิ่งแรกที่ฉันจะพยายามอธิบายในคำถามนี้ ปัญหา: ความยากในการรับการออกแบบที่ดี ฉันพยายามทำการปรับโครงสร้างใหม่ทันทีที่รหัสเกิดความยุ่งเหยิงฉันเขียนการทดสอบหน่วยให้มากที่สุดเท่าที่จะทำได้ (ซึ่งจะช่วยป้องกันข้อผิดพลาดโดยทั่วไปและเมื่อทำการปรับโครงสร้างใหม่โดยเฉพาะ) ในอีกทางหนึ่งการพัฒนาฟีเจอร์ที่ซับซ้อนเพิ่มขึ้นทีละน้อยด้วยความมุ่งมั่นในชีวิตประจำวันและการคิดทบทวนโค้ดอย่างต่อเนื่องเมื่อมันไม่มีโครงสร้างไม่อนุญาตให้ฉันสร้างงานออกแบบที่ดีจริงๆ โมดูลที่ออกแบบมาอย่างดีเท่านั้นที่ฉันสามารถผลิตได้เมื่อไม่นานมานี้โดยใช้แนวทางที่แตกต่าง: ฉันวิเคราะห์ปัญหาสองสามวัน (ที่จริงแล้วฉันมีปัญหาที่เกิดขึ้นในใจของฉันเป็นเวลาสองสามเดือนก่อนที่ฉันจะ ) ร่างการออกแบบที่มีรายละเอียดค่อนข้างมากของชั้นเรียนที่เกี่ยวข้องทั้งหมดและความสัมพันธ์ของพวกเขาอีกสองสามวันและจากนั้นล็อคตัวเองในสำนักงานของฉันและเขียนรหัสทั้งหมดโดยการทำงานโดยไม่หยุดชะงักเป็นเวลาประมาณสามสัปดาห์ ผลที่ได้คือสิ่งที่ดีที่สุดที่ฉันผลิตในขณะที่มีข้อบกพร่องน้อยมากที่ค่อนข้างง่ายต่อการค้นหาและแก้ไขและด้วยการออกแบบที่ชัดเจนมากซึ่งไม่จำเป็นต้องมีการเปลี่ยนแปลงที่เกี่ยวข้องตั้งแต่นั้นมา ดังนั้นถึงตอนนี้ฉันพบว่ามีประสิทธิภาพมากขึ้นเพื่อให้ได้ภาพรวมของสิ่งที่ฉันต้องการทำล่วงหน้ากว่าการเริ่มเขียนโค้ดทีละน้อยด้วยความหวังว่าภาพใหญ่จะปรากฏขึ้นอย่างน่าอัศจรรย์ในกระบวนการ ด้วยความพยายามอย่างที่สุดของฉันการพัฒนาที่เพิ่มขึ้นเพียงเล็กน้อยทำให้ฉันออกแบบแย่ลงเสมอ คำถาม : มีใครมีประสบการณ์คล้ายกันบ้างไหม? ฉันกำลังใช้ SCRUM ในทางที่ผิดหรือฉันควรให้ความสนใจกับสิ่งใดหากฉันต้องการพัฒนาทีละน้อยและยังคงจบลงด้วยซอฟต์แวร์ที่ออกแบบมาอย่างดี? หรือฉันควรกำหนดเวลาเรื่องราวของผู้ใช้ออกแบบก่อนเริ่มการเข้ารหัสจริง นี่ถือว่าเป็นแนวปฏิบัติที่ดีอย่างน้อยที่สุดสำหรับคุณลักษณะที่ซับซ้อนกว่าค่าเฉลี่ยหรือไม่ แก้ไข - หมายเหตุ ฉันตระหนักถึงความจริงที่ว่าการออกแบบที่ดีไม่ใช่สิ่งที่สมบูรณ์และไม่มีคุณค่าในตัวมันเอง แต่ขึ้นอยู่กับบริบทและสิ่งนั้นควรมุ่งที่การออกแบบที่ดีพอสำหรับปัญหาที่เกิดขึ้น ตัวอย่างเช่นฉันไม่สนใจ (มากเกินไป) เกี่ยวกับการออกแบบที่ดีถ้าฉันต้องใช้องค์ประกอบแบบง่ายที่ (1) จะต้องพร้อมให้เร็วที่สุด (2) จะใช้เพียงครั้งเดียว (3) ไม่ใช่ ใช้โดยส่วนอื่นของระบบ (YAGNI) ฉันสนใจเกี่ยวกับการออกแบบที่ดีเมื่อมีการใช้ส่วนประกอบ (1) หลายครั้งและในรุ่นต่างๆที่ต่างกันของผลิตภัณฑ์ …
15 design  agile 

3
Parallelism หมายถึงภาวะพร้อมกัน แต่ไม่ใช่วิธีอื่น ๆ ใช่ไหม?
ฉันมักจะอ่านว่าการขนานและการเกิดพร้อมกันเป็นสิ่งที่แตกต่างกัน บ่อยครั้งที่ผู้ตอบ / ผู้แสดงความคิดเห็นไปถึงเท่าที่เขียนว่าพวกเขาทั้งสองแตกต่างกันอย่างสิ้นเชิง แต่ในมุมมองของฉันพวกเขาเกี่ยวข้องกัน แต่ฉันต้องการความกระจ่างเกี่ยวกับเรื่องนี้ ตัวอย่างเช่นถ้าผมอยู่บนซีพียูแบบมัลติคอร์และการบริหารจัดการที่จะแบ่งการคำนวณลงในxคำนวณขนาดเล็ก (พูดโดยใช้ส้อม / เข้าร่วม) แต่ละทำงานในหัวข้อของตัวเองฉันจะมีโปรแกรมที่มีทั้งการทำเช่นการคำนวณแบบขนาน (เพราะ ในเวลาใดก็ตามหลายเธรดจะทำงานในหลายคอร์) และพร้อมกันใช่ไหม? ในขณะที่ถ้าฉันเพียงแค่ใช้พูด Java และจัดการกับเหตุการณ์ UI และ repaints บน Event Dispatch Thread บวกกับการรันเธรดเดียวที่ฉันสร้างขึ้นเองฉันจะมีโปรแกรมที่ทำงานพร้อมกัน (EDT + GC เธรด + เธรดหลักของฉัน ฯลฯ ) แต่ไม่ขนาน ฉันต้องการที่จะรู้ว่าฉันได้รับสิทธินี้และหากการขนาน (ในระบบ "เดี่ยว แต่หลายแกน") หมายถึงการทำงานพร้อมกันหรือไม่? นอกจากนี้ยังมีโปรแกรมแบบมัลติเธรดที่ทำงานบนซีพียูหลายคอร์ แต่ที่ที่เธรดต่างกันกำลังทำการคำนวณที่แตกต่างกันโดยสิ้นเชิงซึ่งถือว่าเป็นการใช้ "การขนาน"?

6
ศูนย์เป็นค่าคงที่หรือไม่?
ฉันได้เจอสำนวนการเขียนโปรแกรมนี้เมื่อเร็ว ๆ นี้: const float Zero = 0.0; ซึ่งจะใช้ในการเปรียบเทียบ: if (x > Zero) {..} ใครสามารถอธิบายได้ว่าสิ่งนี้มีประสิทธิภาพมากขึ้นหรือสามารถอ่านหรือบำรุงรักษาได้ดีกว่า: if (x > 0.0) {..} หมายเหตุ: ฉันสามารถคิดอื่น ๆเหตุผลที่จะกำหนดนี้คงอิ่มเพียงแค่สงสัยเกี่ยวกับการใช้งานในนี้บริบท

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