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

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

7
N ควีนคำถามสัมภาษณ์โดย X ใน Y
ฉันถูกถามคำถามต่อไปนี้ในการสัมภาษณ์วันนี้และฉันก็คิดถึงมันมานับตั้งแต่ ฉันไม่สามารถตอบได้และไม่สามารถหาวิธีแก้ปัญหาออนไลน์ได้ มอบกระดานหมากรุกที่มีขนาด X โดย Y และ N ให้พิจารณาว่าเป็นไปได้หรือไม่ที่จะจัดเรียงราชินีเหล่านี้บนกระดานเพื่อให้พวกเขาไม่สามารถโจมตีซึ่งกันและกันได้ บอร์ด 2 x 3 ที่มี 2 ควีนส์มีทางออกดังนั้นอัลกอริทึมจะกลับมาเป็นจริง: Q . . . . Q ฉันกำลังมองหาวิธีการเขียนโปรแกรมสำหรับปริศนานี้ไม่ใช่แค่วิธีแก้ปัญหาบนกระดาษเช่น

3
C99 ทำให้หนังสือ K&R ล้าสมัยหรือไม่? ถ้าเป็นเช่นนั้นจะแนะนำอะไรในสถานที่? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา C99 อยู่กับเรามาระยะหนึ่งแล้ว แนะนำมากคุณสมบัติที่ไม่ได้อยู่ในK & อาร์เอสภาษาซี ไม่มีของพวกเขารุนแรงโดยเฉพาะอย่างยิ่ง อย่างไรก็ตามแม้คุณสมบัติขนาดเล็กเช่นความสามารถในการ intermingle declarations และรหัสเปลี่ยนวิธีหนึ่งจัดรหัส ในขณะที่ฉันยังพิจารณา K&R หนังสืออ้างอิงที่ทรงคุณค่าและชอบสไตล์การเขียนของมันมีหนังสือที่ดีกว่าที่คำนึงถึงมาตรฐาน C99 หรือไม่? ฉันจะซื้อ K&R รุ่นที่สามในจังหวะการเต้นของหัวใจ แต่ฉันไม่คิดว่ามันจะเกิดขึ้น
10 books  c99 

7
การละเมิดหลักการแห้ง
ฉันแน่ใจว่ามีชื่อสำหรับรูปแบบการต่อต้านนี้อยู่ที่ไหนสักแห่ง; อย่างไรก็ตามฉันไม่คุ้นเคยกับวรรณกรรมต่อต้านรูปแบบที่จะรู้ พิจารณาสถานการณ์สมมติต่อไปนี้: or0เป็นฟังก์ชั่นสมาชิกในชั้นเรียน ดีขึ้นหรือแย่ลงมันขึ้นอยู่กับตัวแปรของสมาชิกในคลาสเป็นอย่างมาก Programmer A มาพร้อมและต้องการฟังก์ชั่นที่ต้องการor0แต่แทนที่จะเรียกใช้or0Programmer A คัดลอกและเปลี่ยนชื่อคลาสทั้งหมด ฉันเดาว่าเธอจะไม่โทรor0เพราะอย่างที่ฉันพูดมันขึ้นอยู่กับตัวแปรของสมาชิกในการทำงาน หรือบางทีเธออาจเป็นโปรแกรมเมอร์รุ่นเยาว์และไม่รู้วิธีโทรจากรหัสอื่น ดังนั้นตอนนี้เรามีor0และc0(c สำหรับการคัดลอก) ฉันไม่สามารถทำข้อผิดพลาดของโปรแกรมเมอร์ A อย่างสมบูรณ์สำหรับวิธีการนี้ - เราทุกคนอยู่ภายใต้กำหนดเวลาที่ จำกัด และเราแฮกรหัสเพื่อให้งานเสร็จสมบูรณ์ โปรแกรมเมอร์หลายรักษาดังนั้นก็ตอนนี้รุ่น or0 เป็นรุ่นแล้ว น่าเสียดายที่โปรแกรมเมอร์ส่วนใหญ่ที่ดูแลชั้นเรียนที่ดูเหมือนจะไม่รู้อย่างสมบูรณ์ - ซึ่งเป็นหนึ่งในข้อโต้แย้งที่แข็งแกร่งที่สุดที่ฉันสามารถคิดได้สำหรับภูมิปัญญาของหลักการ DRY และอาจมีการบำรุงรักษาโค้ดอิสระด้วย ทั้งสองวิธีก็ปรากฏว่าและได้รับการดูแลเป็นอิสระจากกัน และสุขและความสุขมีข้อผิดพลาดเกิดขึ้นในที่ไม่ได้เกิดขึ้นใน orNc0cNor0c0cor0c0cNorN ดังนั้นฉันมีคำถามสองสามข้อ: 1. ) มีชื่อสำหรับรูปแบบการต่อต้านนี้หรือไม่? ฉันเคยเห็นสิ่งนี้เกิดขึ้นบ่อยครั้งฉันพบว่ามันยากที่จะเชื่อว่านี่ไม่ใช่การต่อต้านแบบ 2. ) ฉันเห็นทางเลือกไม่กี่อย่าง: a.) แก้ไขorNเพื่อรับพารามิเตอร์ที่ระบุค่าของตัวแปรสมาชิกทั้งหมดที่ต้องการ จากนั้นแก้ไขcNเพื่อโทรorNด้วยพารามิเตอร์ที่จำเป็นทั้งหมดที่ส่งผ่านเข้ามา ข.) พยายามที่จะแก้ไขพอร์ตด้วยตนเองจากการorN cN(ใจคุณฉันไม่ต้องการทำสิ่งนี้ แต่เป็นไปได้จริง) c.) คัดลอกorNไปที่cN--again, yuck …

7
การเขียนเอกสารสำหรับวิธีการที่เข้าใจกันดีเช่นเท่ากับใน Java
เป็นการดีหรือไม่ที่จะเขียนข้อคิดเห็นสำหรับวิธีที่รู้จักกันอย่างกว้างขวางเช่นเท่ากับ, เปรียบเทียบกับ ฯลฯ ? พิจารณารหัสด้านล่าง /** * This method compares the equality of the current object with the object of same type */ @Override public boolean equals(Object obj) { //code for equals } บริษัท ของฉันคลั่งไคล้ในการแสดงความคิดเห็นเช่นเดียวกับข้างต้นต้องใช้ความเห็น Javadoc ข้างต้นหรือไม่ มันไม่ชัดเจนและเข้าใจดีว่าวิธีการที่เท่าเทียมและชอบ (เปรียบเทียบ, เปรียบเทียบกับ) ฯลฯ ทำอย่างไร? คุณมีข้อเสนอแนะอะไร?
10 java  comments 

3
จุดประสงค์ของวิธีการต้นแบบคืออะไร?
ฉันกำลังอ่านผ่านJavascript: ส่วนดีและต่อสู้เพื่อให้ได้หัวของฉันรอบส่วนที่เกี่ยวกับต้นแบบ หลังจาก google เล็กน้อยฉันก็สรุปว่ามันคือการเพิ่มคุณสมบัติให้กับวัตถุหลังจากการประกาศวัตถุ การใช้สคริปต์นี้ gleamed จาก w3schools ผมสังเกตเห็นว่าการถอดสายเพิ่มคุณสมบัติต้นแบบมีไม่มีผลกระทบ ดังนั้นประเด็นคืออะไร? //Prototyping function employee(name,jobtitle,born) { this.name=name; this.jobtitle=jobtitle; this.born=born; } var fred=new employee("Fred Flintstone","Caveman",1970); employee.prototype.salary=null; // <--- try removing this line fred.salary=20000; document.write (fred.salary);

3
อะไรคือจุดประสงค์ของคำว่า 'ดังนั้น' ในนิยามเรื่องราวของผู้ใช้
เรื่องราวของผู้ใช้สามารถกำหนดได้ในประโยคเช่น: As a <type of user> I want <some goal> so that <some reason> เพียงแค่ Google สำหรับ 'สูตรเรื่องราวผู้ใช้' และลิงก์แรกเสนอสูตรนี้ทั้งหมด คำถามของฉันคือจุดประสงค์ของประโยคนั้นคืออะไร? มีผู้จัดการหรือไม่ มีเพื่อให้ผู้จัดการโครงการและผู้มีส่วนได้เสียสามารถเข้าใจลำดับความสำคัญของรายการได้ดีขึ้นหรือไม่ ทำไมถึงอยู่ที่นั่น? หมายเหตุ: ฉันทำงานกับas a <type of user> I want <some goal>สูตรแล้วและใช้ได้ดี ฉันไม่ได้สังเกตเห็นปัญหาใด ๆ ในการทำงานของฉันโดยใช้รูปแบบนี้ซึ่งสั้นกว่า
10 user-story 

2
จะเลือกวิศวกรซอฟต์แวร์เว็บแอปพลิเคชั่นได้อย่างไร? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันจะเลือกวิศวกรซอฟต์แวร์เว็บแอปพลิเคชันได้อย่างไร ตำแหน่ง (ถาวร) คือการเขียนไคลเอนต์ของแอปพลิเคชันเซิร์ฟเวอร์ไคลเอ็นต์เดสก์ท็อปที่มีอยู่ หน้าจะไม่ถูกสร้างแบบไดนามิกบนเซิร์ฟเวอร์ แต่เซิร์ฟเวอร์จะเปิดเผย API แบบเต็มไม่ว่าจะด้วยวิธีใดก็ตามเช่นการเรียก JSON RPC และสามารถทำให้ไฟล์คงที่พร้อมใช้งาน มันจะแทนที่ลูกค้าที่ผู้คนต้องดาวน์โหลดและติดตั้งดังนั้นต้องการเบราว์เซอร์ที่เหมาะสมด้วยการตั้งค่าที่เหมาะสม (เช่นเปิดใช้งาน JavaScript) ก็ใช้ได้ กรณีการใช้งานเกือบทั้งหมดมีไว้สำหรับเดสก์ท็อปพีซีจะไม่สามารถเข้าถึงเครื่องมือค้นหา (เป็นแอปพลิเคชันองค์กร) เราสามารถเขียนสิ่งต่าง ๆ ทั้งหมดในหน้าเดียว แต่ไม่ต้องทำ มันค่อนข้างจะถูกเขียนโดยวิศวกรซอฟต์แวร์แอปพลิเคชันบนเว็บที่มีปัญหา ไลบรารีโอเพ่นซอร์สที่แน่นอนที่จะใช้นั้นขึ้นอยู่กับวิศวกรด้วยเหตุผล ฉันกำลังมองหาคำแนะนำเฉพาะเกี่ยวกับคุณสมบัติที่จะมองหา / ตรวจสอบในการสัมภาษณ์เนื่องจากการเลือกวิศวกรซอฟต์แวร์เว็บแอปพลิเคชันโดยทั่วไปนั้นเป็นหัวข้อที่กว้างเกินไป แก้ไข - ตำแหน่งจะเป็นการเขียนโปรแกรม JavaScript ในเบราว์เซอร์อย่างหมดจด (และรับผิดชอบ HTML และ CSS) - ผู้พัฒนารายอื่นจะพัฒนาเซิร์ฟเวอร์ แต่ตำแหน่งนี้สามารถขอหน้าผ่าน API …

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

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

3
เหตุผลที่จะใส่คำนำหน้าในคุณสมบัติ CSS ใหม่คืออะไร?
มีเหตุผลที่ถูกต้องหรือไม่ที่เบราว์เซอร์จะนำหน้าคุณลักษณะ CSS ใหม่แทนที่จะปล่อยให้เว็บมาสเตอร์ใช้เวอร์ชันที่ไม่ใช่คำนำหน้า? ตัวอย่างเช่นโค้ดตัวอย่างสำหรับการไล่สีพื้นหลังมีลักษณะดังนี้: #arbitrary-stops { /* fallback DIY*/ /* Safari 4-5, Chrome 1-9 */ background: -webkit-gradient(linear, left top, right top, from(#2F2727), color-stop(0.05, #1a82f7), color-stop(0.5, #2F2727), color-stop(0.95, #1a82f7), to(#2F2727)); /* Safari 5.1+, Chrome 10+ */ background: -webkit-linear-gradient(left, #2F2727, #1a82f7 5%, #2F2727, #1a82f7 95%, #2F2727); /* Firefox 3.6+ */ background: -moz-linear-gradient(left, …

9
มีใครทำ TDD "ของจริง" กับ Visual-C ++ และถ้าใช่พวกเขาจะทำอย่างไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว Test Driven Developmentหมายถึงการเขียนการทดสอบก่อนโค้ดและทำตามรอบที่แน่นอน : ทดสอบการเขียน ตรวจสอบการทดสอบ (เรียกใช้) เขียนรหัสการผลิต ตรวจสอบการทดสอบ (เรียกใช้) ทำความสะอาดรหัสการผลิต ตรวจสอบการทดสอบ (วิ่ง) เท่าที่ฉันกังวลนี่เป็นไปได้ก็ต่อเมื่อโซลูชันการพัฒนาของคุณอนุญาตให้คุณสลับระหว่างการผลิตและรหัสการทดสอบได้อย่างรวดเร็วและทำการทดสอบสำหรับรหัสการผลิตบางส่วนอย่างรวดเร็ว ตอนนี้ในขณะที่มีกรอบการทดสอบหน่วยจำนวนมากสำหรับ C ++ (ฉันใช้ Bost.Test atm.) ดูเหมือนว่าไม่มีอยู่จริง ๆ (สำหรับC ++ ) Visual Studio (ปลั๊กอิน) โซลูชันที่ทำให้ TDD ทนทานต่อการใช้งาน "Bearable" หมายความว่าการคลิกครั้งเดียวเพื่อเรียกใช้การทดสอบสำหรับไฟล์ cpp บางไฟล์โดยไม่ต้องตั้งค่าการทดสอบแยกต่างหากด้วยตนเองเป็นต้น "Bearable" ยังหมายความว่าการทดสอบเริ่มต้นง่าย (การเชื่อมโยง!) และทำงานได้อย่างรวดเร็วมาก . ดังนั้นมีเครื่องมือ (ปลั๊กอิน) และเทคนิคใดบ้างที่ทำให้วัฏจักร …
10 ide  tdd  plugins  visual-c++ 

8
ฉันควรคาดหวังอะไรจากการประเมินทางเทคนิคสำหรับ C ++ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันถูกขอให้ไปทดสอบทางเทคนิค / ประเมินผลงานในฐานะนักพัฒนารุ่นใหม่โดยใช้ C ++ เป็นหลัก นี่คือการทดสอบครั้งแรกของฉัน / การประเมินผลและมีความยาว 2 ชั่วโมง C ++ ของฉันค่อนข้างสนิมเมื่อฉันได้ทำโปรเจ็กต์เมื่อเร็ว ๆ นี้บน PHP นี่เป็น บริษัท ในสหราชอาณาจักร แต่ฉันเดาว่าการทดสอบทางเทคนิคของผู้สมัครจะเหมือนกันทุกที่ ฉันควรคาดหวังอะไรจากการทดสอบข้อใดข้อหนึ่งเหล่านี้

3
โครงสร้างองค์กร Application PHP ที่ฉลาด?
มีโครงสร้างระบบไฟล์เป็นล้านและหนึ่งที่เข้าสู่โครงการโอเพ่นซอร์สมากมาย สิ่งต่าง ๆ เช่นโมดูลไฟล์ภาษาโดเมนไลบรารีบุคคลที่สามการโยกย้ายการทำให้เป็นสากลการสำรองข้อมูลและ syslinks ไปยังส่วนอื่น ๆ ของระบบทำให้เกิดวิธีการมากมายในการจัดระเบียบระบบไฟล์ของโครงการ ในฐานะนักพัฒนา PHP ฉันสงสัยว่ามาตรฐานประเภทใดจะเริ่มปรากฎในโครงการหรือไม่ ด้วยPSR-0ในที่สุดเราก็มีมาตรฐานสำหรับการตั้งชื่อและการโหลดไฟล์ - แต่มันไม่มีความรู้ของฉันเกี่ยวกับส่วนประกอบที่เหลือซึ่งประกอบขึ้นเป็นระบบหรือวิธีการจัดการอย่างมีสติ เรากำลังติดต่อกับ MVC เป็นอย่างมากดังนั้นตัวอย่างใดบ้างที่มีโครงการขนาดใหญ่ที่จัดการสิ่งเหล่านี้ได้อย่างถูกต้อง?

6
วิธีปฏิบัติเพื่อเรียนรู้ C? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันต้องการที่จะขุดลงใน C และโดยปกติเมื่อฉันต้องการเรียนรู้ภาษาใหม่ฉันคิดว่าเป้าหมายของโครงการที่เรียบง่าย / สำเร็จที่มีวัตถุประสงค์ในทางปฏิบัติบางอย่าง (ใช้ประโยชน์จาก API, ทำงานโดยอัตโนมัติ ฯลฯ ) ฉันมีช่วงเวลาที่ยากลำบากในการหาสิ่งหนึ่งสำหรับ C เป็นหลักเพราะทุกสิ่งที่ฉันอ่านชี้ไปที่ข้อเท็จจริงที่ว่าการใช้งานหลักของ C ในปัจจุบันคือในระบบฝังตัวและโครงการซอฟต์แวร์ที่ซับซ้อนมากขึ้นเช่นระบบปฏิบัติการ สิ่งนี้ชี้ให้ฉันเห็นความจริงที่ว่าฉันไม่จำเป็นต้องเรียนรู้หรือว่าฉันเพียงแค่ต้องมีความซับซ้อนมากขึ้นในกลยุทธ์การเรียนรู้ของฉัน? อ้างอิงถึงแหล่งเรียนรู้ภาคปฏิบัติ? (บทช่วยสอน / วิธีการสร้างผลลัพธ์สุดท้ายที่มีจุดประสงค์ / ผลประโยชน์)
10 learning  c 

11
บิตแมปไม่มีที่สิ้นสุด [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันต้องการสร้างบิตแมประหว่างรันไทม์ บิตแมปควรปรับขนาดได้ในทุกด้านและการเข้าถึงพิกเซลควรมีประสิทธิภาพที่เงียบ ภาพประกอบบางส่วน http://img546.imageshack.us/img546/4995/maptm.jpg ระหว่างและหลังคำสั่งที่แสดงในภาพ Map.setPixel () และ Map.getPixel () ควรตั้ง / ส่งคืนข้อมูลที่บันทึกในบิตแมป ฉันไม่ได้คาดหวังว่าการใช้งานเป็นเพียงแนวคิดในการจัดสรรหน่วยความจำในลักษณะที่ setPixel () / getPixel นั้นเร็วที่สุด
10 concepts  memory 

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