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

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

2
หมวดหมู่ของ 'สำหรับ' ลูป
ผมจำได้ว่าครั้งหนึ่งเคยอ่านงานวิจัยบางส่วนที่ร่างของรหัส C ได้รับการวิเคราะห์และผลการวิจัยพบว่าส่วนใหญ่ของforลูปสามารถแบ่งออกเป็นห้าประเภทที่สอดคล้องกับการทำงานของเทียบเท่าmap, filter, foldฯลฯ ฉันไม่สามารถหาบทความ / บทความนี้อีกต่อไป ทุกคนสามารถชี้ให้ฉันเห็นได้หรือไม่
11 research 

2
วิธีแบ่งงานให้กับเครือข่ายคอมพิวเตอร์
ลองนึกภาพสถานการณ์สมมติดังนี้: สมมติว่าคุณมีคอมพิวเตอร์ส่วนกลางที่สร้างข้อมูลจำนวนมาก ข้อมูลนี้จะต้องผ่านการประมวลผลบางอย่างซึ่งน่าเสียดายที่ใช้เวลานานกว่าที่จะสร้าง เพื่อให้การประมวลผลทันตามเวลาจริงเราเชื่อมต่อคอมพิวเตอร์ที่เป็นทาสมากขึ้น นอกจากนี้เราจะต้องคำนึงถึงความเป็นไปได้ที่ทาสจะหลุดออกจากเครือข่ายกลางงานรวมถึงทาสเพิ่มเติมที่ถูกเพิ่มเข้ามา คอมพิวเตอร์กลางควรตรวจสอบให้แน่ใจว่างานทั้งหมดเสร็จสิ้นตามความพึงพอใจและงานที่ตกหล่นโดยทาสจะถูกจัดเก็บใหม่อีกครั้ง คำถามหลักคือ: ฉันควรใช้วิธีใดเพื่อบรรลุเป้าหมายนี้ แต่ต่อไปนี้อาจช่วยให้ฉันได้คำตอบ: มีชื่อหรือรูปแบบการออกแบบกับสิ่งที่ฉันพยายามทำหรือไม่? ฉันต้องมีโดเมนความรู้อะไรบ้างเพื่อให้บรรลุเป้าหมายในการทำให้คอมพิวเตอร์เหล่านี้คุยกันได้ (เช่นฐานข้อมูลที่ฉันมีความรู้เพียงพอหรือเกี่ยวข้องกับซ็อกเก็ตซึ่งฉันยังไม่รู้) มีตัวอย่างของระบบดังกล่าวหรือไม่? คำถามหลักคือทั่วไปเล็กน้อยดังนั้นมันจะดีที่จะมีจุดเริ่มต้น / จุดอ้างอิง หมายเหตุฉันกำลังสมมติว่ามีข้อ จำกัด ของ c ++ และ windows ดังนั้นโซลูชันที่ชี้ไปในทิศทางนั้นจะได้รับการชื่นชม
11 c++  windows  networks 

3
Low Latency Unix / Linux
งานการเขียนโปรแกรม latency / ความถี่สูงต่ำส่วนใหญ่ (ขึ้นอยู่กับรายละเอียดของงาน) ดูเหมือนจะนำไปใช้กับแพลตฟอร์มยูนิกซ์ ในสเป็คจำนวนมากพวกเขาร้องขอเป็นพิเศษสำหรับผู้ที่มีประสบการณ์ประเภท "Linux latency ต่ำ" สมมติว่าสิ่งนี้ไม่ได้หมายถึงระบบปฏิบัติการ linux แบบเรียลไทม์ผู้คนสามารถให้ความช่วยเหลือฉันเกี่ยวกับสิ่งนี้ได้หรือไม่ ฉันรู้ว่าคุณสามารถตั้งค่าความสัมพันธ์ของ CPU กับเธรดได้ แต่ฉันสมมติว่าพวกเขาขอมากไปกว่านั้น การปรับแต่งเคอร์เนล? (แม้ว่าฉันจะได้ยินผู้ผลิตเช่น solarflare ผลิตการ์ดเครือข่ายผ่านเคอร์เนลอยู่แล้ว)? สิ่งที่เกี่ยวกับ DMA หรือหน่วยความจำที่ใช้ร่วมกันระหว่างกระบวนการ หากผู้คนสามารถให้ความคิดสั้น ๆ กับฉันฉันสามารถไปและทำวิจัยบน google (คำถามนี้อาจต้องมีคนคุ้นเคยกับการซื้อขายความถี่สูง)
11 c++  c  performance  linux  latency 

2
การพัฒนาใหม่ของ Java จะมีผลต่อการทำงานร่วมกันกับภาษาเช่น Scala และ Clojure อย่างไร
เท่าที่ฉันเข้าใจทั้ง Scala และ Clojure ได้รับการออกแบบเป็นภาษาใหม่ที่ ขึ้นอยู่กับ JVM และ รวมเข้ากับโค้ด Java ได้ง่ายในแง่ที่อนุญาตให้ใช้คลาส Java ภายในโค้ด Scala และ Clojure เริ่มต้นด้วย Java 8 (และอาจรุนแรงยิ่งขึ้นกับ Java รุ่นถัดไป) จะมีการเปลี่ยนแปลงในความหมายของภาษา Java ฉันต้องการถามว่าการเปลี่ยนแปลงเหล่านี้จะส่งผลกระทบต่อการทำงานร่วมกันระหว่าง Java และ Scala / Clojure อย่างไรและผลที่ตามมาจะเป็นอย่างไร ตัวอย่างเช่นเนื่องจาก lambdas ใน Java 8 ไม่ใช่วัตถุ (ดูเช่นที่นี่ ) Scala และ Clojure อาจต้องจัดการกับค่า Java ที่ไม่ใช่วัตถุ นี่จะเป็นปัญหาหรือไม่? ฉันนึกถึงสถานการณ์ต่อไปนี้: ภาษา Scala หรือ …
11 java  scala  clojure 

5
ฉันควรใช้ JSON เพื่อใช้ JSON
ฉันกำลังสร้างเว็บไซต์บล็อกเพื่อการเรียนรู้โดยใช้แบ็คเอนด์ PHP / MySQl อินพุตผู้ใช้ทั้งหมดได้รับการจัดการด้วยแบบฟอร์มที่ส่งในคำขอ POST การใช้ JSON จะทำให้มันสะอาดขึ้นหรือรักษาหรือเพิ่มคุณสมบัติได้ง่ายขึ้นหรือไม่ หรือฉันแค่เพิ่มรูปแบบการแลกเปลี่ยนโดยไม่มีเหตุผล? ดังนั้นโดยพื้นฐานแล้วฟังก์ชั่นใดที่จะใช้งานได้ดีที่สุดโดยใช้ JSON
11 php  json 

3
"คงที่" เป็นเบาะแสความหมายเกี่ยวกับการไร้สัญชาติ?
ฉันเพิ่งดำเนินการ refactoring ของโครงการขนาดกลางใน Java เพื่อกลับไปและเพิ่มการทดสอบหน่วย เมื่อฉันรู้ว่ามันเจ็บปวดแค่ไหนในการล้อเลียนและสถิตยศาสตร์ในที่สุดฉันก็ "ได้รับ" สิ่งที่ฉันได้อ่านเกี่ยวกับพวกเขาตลอดเวลานี้ (ฉันเป็นหนึ่งในคนเหล่านั้นที่ต้องเรียนรู้จากประสบการณ์โอ้สบายดี) ดังนั้นตอนนี้ที่ฉันใช้ Spring เพื่อสร้างวัตถุและโยงเข้าด้วยกันฉันจะกำจัดstaticคำหลักไปทางซ้ายและขวา (ถ้าฉันอาจต้องการเยาะเย้ยมันก็ไม่คงที่ในความหมายเดียวกับที่ Math.abs () ใช่ไหม?) สิ่งนี้คือฉันได้รับนิสัยการใช้staticเพื่อแสดงว่าวิธีการไม่ได้พึ่งพา ในสถานะวัตถุใด ๆ ตัวอย่างเช่น: //Before import com.thirdparty.ThirdPartyLibrary.Thingy; public class ThirdPartyLibraryWrapper { public static Thingy newThingy(InputType input) { new Thingy.Builder().withInput(input).alwaysFrobnicate().build(); } } //called as... ThirdPartyLibraryWrapper.newThingy(input); //After public class ThirdPartyFactory { public Thingy newThingy(InputType input) { …

3
ทำไมเราไม่สามารถเขียนฟังก์ชั่นการจดชวเลขซ้อนใน Clojure ได้?
ฉันพยายามประเมินการแสดงออกของ Clojure ด้วยฟังก์ชั่นชวเลขที่ซ้อนกันในวันนี้และมันจะไม่ยอมให้ฉัน การแสดงออกคือ: (#(+ % (#(+ % (* % %)) %)) 5) ; sorry for the eye bleed ผลลัพธ์คือ: IllegalStateException Nested #()s are not allowed clojure.lang.LispReader$FnReader.invoke (LispReader.java:630) ...and a bunch of other garbage

8
แสดงความคิดเห็นนิพจน์ปกติ
มีวิธีปฏิบัติทั่วไปในการแสดงความคิดเห็นนิพจน์ทั่วไปหรือไม่: ความคิดเห็นแบบอินไลน์อ้างอิงส่วนต่าง ๆ ของ RegEx หรือความคิดเห็นทั่วไปสำหรับการแสดงออกทั้งหมด?

2
ทักษะคณิตศาสตร์ใดบ้างที่จำเป็นสำหรับการเรียนรู้ของเครื่อง? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันสนใจที่จะเรียนหลักสูตรออนไลน์เกี่ยวกับการเรียนรู้ของเครื่อง เนื่องจากว่ามันเป็นคณิตศาสตร์ของฉันเป็นระดับประถมศึกษาและฉันโดยทั่วไปฉันเรียนรู้คณิตศาสตร์ตั้งแต่เริ่มต้นในสถาบันข่าน การเขียนโปรแกรมที่ชาญฉลาดฉันมีประสบการณ์เพียงพอและมีความเข้าใจโดยรวมดี คำถามของฉันคือทักษะทางคณิตศาสตร์ที่จำเป็นสำหรับฉันเพื่อให้สามารถเข้าใจและใช้การเรียนรู้ของเครื่องได้อย่างมีประสิทธิภาพ?

4
เหตุใดจึงไม่สามารถแบ่งปันข้อมูลเซสชันได้
ฉันได้เห็นนักพัฒนาหลายคนกำลังมองหาทางออกสำหรับปัญหานี้: การเข้าถึงข้อมูลเซสชั่นจากสงครามที่แตกต่างกัน (แม้ในภายใน EAR เดียวกัน) - นี่คือตัวอย่างบางส่วน: วิธีใดที่จะแบ่งปันสถานะเซสชันระหว่างแอปพลิเคชันต่างๆ , เซสชันการเข้าถึงของเว็บแอปพลิเคชันอื่น , ไฟล์ WAR ที่แตกต่างกัน, ทรัพยากรที่แชร์ , Tomcat: วิธีการแบ่งปันข้อมูลระหว่างสองแอปพลิเคชัน , อะไรแอตทริบิวต์ crossContext ทำใน Tomcat? เปิดใช้งานการแชร์เซสชันหรือไม่ และอื่น ๆ ... จากทั้งหมดที่ฉันค้นหามีวิธีแก้ปัญหาเฉพาะบางอย่างขึ้นอยู่กับคอนเทนเนอร์ แต่อย่างใด ' ตรงกันข้ามกับข้อมูลจำเพาะ ' ฉันยังได้ดูข้อมูลจำเพาะ Java EE โดยไม่มีโชคในการหาคำตอบ นักพัฒนาบางคนพูดถึงการมีเพศสัมพันธ์ระหว่างเว็บแอปพลิเคชัน แต่ฉันมักจะไม่เห็นด้วย อะไรคือเหตุผลที่ทำให้ WARs อยู่ใน EAR เดียวกันหากไม่ได้มีเพศสัมพันธ์? ตัวอย่างเช่น EJB สามารถเข้าถึงได้แบบโลคัล (แม้ว่าจะอยู่ใน EJB JAR อื่นภายใน …

5
css - ใช้ universal '*' selector vs. html หรือ body selector?
การใช้สไตล์กับแท็ก body จะถูกนำไปใช้กับทั้งหน้าดังนั้น body { font-family: Verdana } จะถูกนำไปใช้กับทั้งหน้า สิ่งนี้สามารถทำได้ด้วย * {font-family: Verdana} ซึ่งจะนำไปใช้กับองค์ประกอบทั้งหมดและดังนั้นดูเหมือนว่าจะมีผลเช่นเดียวกัน ฉันเข้าใจหลักการที่ว่าในตัวอย่างแรกสไตล์จะถูกนำไปใช้กับแท็กหนึ่งส่วนเนื้อหาสำหรับทั้งหน้าในขณะที่ในตัวอย่างที่สองมีการใช้แบบอักษรกับองค์ประกอบ HTML แต่ละรายการ สิ่งที่ฉันถามคืออะไรคือความแตกต่างในทางปฏิบัติในการทำสิ่งที่เป็นนัยและอะไรคือเหตุผลสถานการณ์หรือแนวปฏิบัติที่ดีที่สุดที่นำไปสู่การใช้ซึ่งกันและกัน ผลข้างเคียงคือความเร็วอย่างแน่นอน (+1 Rob) ฉันสนใจเหตุผลที่แท้จริงที่สุดในการเลือกหนึ่งอย่างในแง่ของการใช้งาน

2
Resharper ยังคงเป็นการปรับปรุงที่สำคัญสำหรับ Visual Studio 2012 [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ขณะนี้ฉันใช้ Resharper กับ VS 2008 Pro ฉันคิดว่ามันเป็นเรื่องจำเป็นที่จะต้องมีประสิทธิผลเท่าที่ควรเนื่องจากการไม่มี refactors / ทางลัดพื้นฐานบางอย่างใน VS อย่างไรก็ตามฉันสงสัยว่าตั้งแต่การปรับปรุง VS 2008 มีการทำซึ่งทำให้เกือบจะดีเท่า Resharper

6
ข้อไหนคือการบำรุงรักษามากขึ้น - การกำหนดบูลีนผ่านทาง if / else หรือการแสดงออกบูลีน?
สิ่งใดที่จะถือว่าได้รับการบำรุงรักษามากขึ้น if (a == b) c = true; else c = false; หรือ c = (a == b); ฉันลองดูใน Code Complete แต่ไม่พบคำตอบ ฉันคิดว่าอันแรกสามารถอ่านได้มากขึ้น (คุณสามารถอ่านออกเสียงออกมาได้ดัง ๆ ) ซึ่งฉันคิดว่าทำให้สามารถบำรุงรักษาได้มากขึ้น อันที่สองมีความเหมาะสมมากกว่าและลดรหัส แต่ฉันไม่แน่ใจว่ามันจะบำรุงรักษาได้สำหรับนักพัฒนา C # (ฉันคาดว่าจะเห็นสำนวนนี้มากขึ้นเช่น Python)

4
การรักษา enum และตารางให้สอดคล้องกัน
ฉันกำลังสร้างโปรแกรมที่จะโพสต์ข้อมูลไปยังฐานข้อมูลและฉันได้ทำงานในรูปแบบที่ฉันแน่ใจว่าคุ้นเคย: ตารางสั้น ๆ ของค่าคงที่ที่มีแนวโน้มมากที่สุด ดังนั้นสมมติว่าตารางต่อไปนี้เรียกว่าStatus: สถานะ รหัสคำอธิบาย -------------- 0 ยังไม่ได้ประมวลผล 1 รอดำเนินการ 2 ประมวลผลแล้ว 3 ข้อผิดพลาด ในโปรแกรมของฉันฉันจำเป็นต้องกำหนดรหัสสถานะสำหรับตารางอื่นหรืออาจปรับปรุงระเบียนด้วยรหัสสถานะใหม่ ฉันสามารถ hardcode รหัสสถานะใน enum และหวังว่าจะไม่มีใครเปลี่ยนแปลงฐานข้อมูล หรือฉันจะ pre-เรียกค่าที่อยู่บนพื้นฐานของคำอธิบาย (ดังนั้น hardcoding ที่แทน) อะไรจะเป็นวิธีที่ถูกต้องในการทำให้ทั้งสอง enum และตารางซิงค์กัน
11 database  enum 

2
ควรเรียกใช้สคริปต์ส่วนขยายในแซนด์บ็อกซ์หรือไม่
โดยเฉพาะอย่างยิ่งนี่เป็นเรื่องเกี่ยวกับส่วนขยายเกมที่เขียนด้วย lua (luajit-2.0) ฉันใคร่ครวญว่าฉันควร จำกัด สิ่งที่สคริปต์เหล่านี้สามารถทำได้หรือไม่และสรุปได้ว่าฉันไม่ควร: มันยากที่จะทำให้ถูกต้อง ฟังดูงี่เง่า แต่โอกาสของฉันก็คือแซนด์บ็อกซ์ของฉันจะจบลงด้วยการรั่วไหล ประโยชน์อย่างเดียวที่ฉันคิดได้คือให้ความรู้สึกปลอดภัยแก่ผู้ใช้เมื่อใช้งานสคริปต์บุคคลที่สาม ข้อเสียคือมันน่ารำคาญอย่างยิ่งสำหรับนักเขียนส่วนขยาย นั่นคือตอนนี้ตัวฉันเอง (เนื้อหาของเกมส่วนใหญ่จะถูกเขียนสคริปต์) เหตุผลที่ฉันถามตอนนี้ก่อนที่ฉันจะมีอะไรที่ทำได้จริง ๆ ก็คือการเพิ่ม sandbox ไว้ก่อนนั้นเป็นเรื่องง่าย อย่างไรก็ตามถ้าฉันไปกับมันก่อนแล้วตัดสินใจในภายหลังว่าฉันต้องมี Sandbox หลังจากทั้งหมดฉันจะพบปัญหา (ฉันต้องเขียนสคริปต์ที่มีอยู่แล้วหรือแนะนำระบบการจัดการความน่าเชื่อถือบางรูปแบบ ซึ่งดูเหมือนว่าจะมีปัญหามากกว่าค่า)

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