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

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

2
ประเภทใน Lisp และ Scheme
ฉันเห็นแล้วว่าแร็กเก็ตมีประเภท เมื่อดูอย่างรวดเร็วครั้งแรกดูเหมือนว่าเกือบจะเหมือนกับการพิมพ์ Haskell แต่ CLOS ของ Lisp ครอบคลุมพื้นที่ Haskell บางประเภทหรือไม่ การสร้างประเภท Haskell ที่เข้มงวดมากและวัตถุในภาษา OO ใด ๆ ดูเหมือนจะคลุมเครือ เป็นเพียงว่าฉันดื่ม Hool-kool-aid บางอย่างและฉันหวาดระแวงโดยสิ้นเชิงว่าถ้าฉันไปตามถนน Lisp ฉันจะเมาเพราะการพิมพ์แบบไดนามิก

1
ทำไมหน่วยความจำหลักสำหรับการจัดสรรวัตถุจึงเรียกว่า 'ฮีป'
มีใครมีความคิดว่าเหตุใดพื้นที่ของหน่วยความจำหลักที่มีการจัดสรรออบเจ็กต์นั้นเรียกว่าฮีป ฉันเข้าใจเหตุผลของสแต็ค LIFO แต่อยากรู้ว่าเหตุผลคืออะไรสำหรับชื่อ 'heap'

3
ตัวเลือกข้ามเบราว์เซอร์ / ระบบที่เข้ากันได้มากที่สุดสำหรับกราฟิก 3 มิติบนหน้าเว็บคืออะไร
ฉันต้องการที่จะพัฒนาฟังก์ชั่นเล็กน้อยสำหรับเว็บไซต์ที่เกี่ยวข้องกับบิตของสามมิติ - ผู้ใช้สามารถย้ายไปรอบ ๆ วัตถุหมุนพวกเขาและพื้นผิวพวกเขา จนถึงตอนนี้ฉันได้ดู: WebGL (โดยเฉพาะอย่างยิ่ง three.js) และมันดูดี แต่ไม่รองรับใน IE หรือ IOS IOS รองรับ<canvas>แท็ก แต่เพียง 2d ดูเหมือนว่า three.js มีแฮ็คที่ไม่รองรับเพื่อสร้างสิ่ง 3 มิติใช้ผืนผ้าใบ 2d แทนโดยไม่มีพื้นผิว แต่ดูเหมือนแฮ็ค ฉันยังถือว่าหันไปใช้ Flash ซึ่งใช้งานได้กับเบราว์เซอร์ส่วนใหญ่ แต่ก็ไม่สามารถใช้กับ IOS ได้ ตัวเลือกที่ดีที่สุดของฉันสำหรับการทำเว็บกราฟิก 3 มิติบนเบราว์เซอร์และอินเทอร์เฟซมากมายมีอะไรบ้าง ในขณะนี้ฉันกำลังคิด WebGL สำหรับเว็บ (และขอให้ผู้คนใช้ chrome หรือ firefox และใช้ hit บน IE) จากนั้นอาจเขียนแอปเนทีฟสำหรับ IOS แต่ฉันไม่แน่ใจว่ามีทางเลือกที่ดีกว่าหรือไม่ ไม่รู้

3
คำถามสัมภาษณ์เทคนิคโดยละเอียดสำหรับนักพัฒนาอาวุโสคืออะไร [ปิด]
เป็นการยากที่จะบอกสิ่งที่ถูกถามที่นี่ คำถามนี้คลุมเครือคลุมเครือไม่สมบูรณ์กว้างเกินไปหรือโวหารและไม่สามารถตอบได้อย่างสมเหตุสมผลในรูปแบบปัจจุบัน สำหรับความช่วยเหลือในการทำความเข้าใจคำถามนี้เพื่อที่จะสามารถเปิด, ไปที่ศูนย์ช่วยเหลือ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันเคยสัมภาษณ์การเลื่อนขั้นภายในเพื่อให้ได้ตำแหน่งโปรแกรมเมอร์ในระดับที่สูงขึ้นเช่น Senior plus และฉันถูกสัมภาษณ์โดยประมาณ 7 คนที่ใช้เทคโนโลยีที่แตกต่างกันและผู้ที่ใช้เทคโนโลยีเดียวกันกับฉัน (.Net) มักจะถามคำถามที่มีรายละเอียดมากเกี่ยวกับเทคนิคซึ่งสามารถพบได้ง่ายผ่าน Google เช่น JIT, GC ทำงานอย่างไร ความแตกต่างระหว่างรายการและอาร์เรย์คลาสนามธรรมและอินเทอร์เฟซผู้ร่วมประชุมและเหตุการณ์แม้ชื่อคลาสเมื่อคุณประมวลผลอัปโหลดไฟล์ ฯลฯ และฉันมีคำถามเดียวที่ถามเกี่ยวกับแนวคิดการออกแบบของฉันในโครงการของฉันและเพียงแค่ การอภิปรายอย่างง่าย แต่สำหรับตัวเลือกการออกแบบอื่น ๆ ของฉันพวกเขาดูเหมือนจะไม่สนใจ ฉันยังไม่ได้รับผลลัพธ์และจะประมาณปลายสัปดาห์นี้ แต่นี่เป็นข้อกังวลของฉัน: โดยส่วนตัวฉันคิดว่าเมื่อฉันเล่นเป็นโปรแกรมเมอร์อาวุโสฉันมักจะแก้ปัญหาและฉันแค่ต้องรู้ว่ามีบางวิธีที่สามารถทำให้มันเกิดขึ้นได้ แต่ฉันอาจจำรายละเอียดทุกอย่างไม่ได้และนั่นเป็นเหตุผลว่าทำไมเราถึงมีการอ้างอิงโดยละเอียด เอกสารเช่น MSDN ฉันรู้สึกดีถ้าคุณพบว่าฉันไม่ได้มีประสบการณ์มากเกินไปในระดับนี้เช่นระดับจูเนียร์ถึงระดับกลาง แต่เมื่อมีแนวโน้มที่จะสัมภาษณ์คนที่แต่งตัวประหลาดในระดับที่สูงขึ้นคุณไม่ควรมุ่งเน้นมากขึ้นเพื่อดูว่า เขา / เธอกำลังแก้ปัญหาเหรอ? ทุกคนแค่คิดว่าถ้าคุณรู้ทุกสิ่งเล็ก ๆ น้อย ๆ รายละเอียดเทคโนโลยีแล้วคุณเป็นอาวุโส + และจากการตรวจสอบหนังสือคำถามสัมภาษณ์ฉันพบว่ามีคำถามแบบนั้นอีก ถ้าฉันใช้เวลา 5 วันผ่านสมุดบันทึกคำถามสัมภาษณ์ฉันสามารถทำให้พวกเขารู้สึกว้าวได้ แต่นั่นแปลว่าอะไรจริงหรือ การสัมภาษณ์แบบนี้สามารถให้คนที่จำได้ดีได้รับเงินเดือนที่สูงขึ้นแม้ว่าพวกเขาจะไม่รู้วิธีแก้ปัญหาความยากลำบาก เหตุใดจึงเกิดขึ้นบนโลกนี้นั่นเป็นเพียงแค่ทำให้เกิดทักษะการแก้ปัญหาทักษะการออกแบบนั้นยากที่จะวัด …
10 interview 

5
ปริศนาสัมภาษณ์เกี่ยวกับการเดินทางในส่วนของเส้น
บนบรรทัดจำนวนความยาวMโดยที่0 < M <= 1,000,000,000คุณได้รับN( 1 < N <= 100,000) จุดจำนวนเต็ม ในแต่ละคู่จุดแรกแทนตำแหน่งที่วัตถุอยู่ในขณะนี้และจุดที่สองแสดงถึงจุดที่ควรย้ายวัตถุ (โปรดทราบว่าsecondจุดอาจเล็กกว่าfirst) ทีนี้สมมติว่าคุณเริ่มจากจุดนั้น0และมีรถเข็นที่สามารถเก็บ1วัตถุได้ คุณต้องการย้ายวัตถุทั้งหมดจากตำแหน่งเริ่มต้นของพวกเขาไปยังตำแหน่งสุดท้ายของพวกเขาในขณะที่เดินทางระยะทางน้อยที่สุดตามแนวหมายเลข ( ไม่ใช่การกระจัด) Mคุณจะต้องจบลงในประเด็น ตอนนี้ฉันพยายามลดปัญหานี้เป็นปัญหาที่ง่ายขึ้น ความซื่อสัตย์ฉันไม่สามารถแม้แต่จะคิดว่าพลังของสัตว์ (ที่อาจจะโลภ) วิธีการแก้ปัญหา อย่างไรก็ตามความคิดแรกของฉันคือการทำให้การเคลื่อนไหวข้างหลังแย่ลงเป็นสองการเคลื่อนไหวไปข้างหน้า แต่นั่นไม่ได้ผลในทุกกรณี ฉันดึง3กรณีทดสอบตัวอย่างเหล่านี้มาที่นี่: คำตอบ testcase 12แรกคือ ครั้งแรกที่คุณรับรายการที่จุดred 0จากนั้นคุณย้ายไปที่จุด6(ระยะทาง = 6) วางredรายการชั่วคราวจากนั้นเลือกgreenรายการ จากนั้นคุณย้ายไปที่จุด5(ระยะทาง = 1) และวางgreenรายการ จากนั้นคุณย้ายกลับไปที่จุด6(ระยะทาง = 1) และรับredรายการที่คุณทิ้งย้ายไปยังจุดที่ 9 (ระยะทาง = 3) จากนั้นเลื่อนไปที่จุด10(ระยะทาง = 1) เพื่อจบลำดับ ระยะทางทั้งหมดที่เดินทางคือ6 …
10 algorithms  math 

6
สิ่งที่กำหนดบทบาท“ ผู้พัฒนาซอฟต์แวร์”
ฉันเป็นผู้พัฒนาซอฟต์แวร์รุ่นเยาว์และฉันทำงานให้กับ บริษัท น้อยกว่าหนึ่งปี ในขณะที่ฉันคิดอยู่เสมอว่าการเป็นนักพัฒนาซอฟต์แวร์หมายถึงการพัฒนาซอฟต์แวร์และ CODE บางอย่างงานของฉันมีมากขึ้นในประเภทการบริหารงานเช่นการตั้งค่า Jenkins การจำลองแบบ SQL และอื่น ๆ งานประเภทเหล่านี้รวมอยู่ในบทบาทนักพัฒนาซอฟต์แวร์หรือผู้พัฒนาซอฟต์แวร์เท่านั้น ฉันควรจะพูดคุยกับผู้จัดการเกี่ยวกับเรื่องนี้หรือไม่? นี่เป็นวิธีทั่วไปสำหรับ บริษัท ในการประเมินทักษะ "กำลังพัฒนา" หรือไม่?
10 company  roles  task 

3
เหตุใด Internet Explorer จึงมีความไม่เข้ากันมากมายกับเบราว์เซอร์อื่น
Internet Explorer มีคุณสมบัติที่เป็นกรรมสิทธิ์จำนวนหนึ่งซึ่งไม่พบในเบราว์เซอร์อื่น ๆ รวมถึงความเข้ากันไม่ได้กับมาตรฐาน ใครบ้างมีความคิดว่าอะไรคือสาเหตุของความไม่ลงรอยกันเหล่านั้น? ตัวอย่างเช่น: ฉันพัฒนาส่วนขยายเบราว์เซอร์โดยใช้เฟรมเวิร์กCrossrider ส่วนขยายทำงานได้ดีกับการรวมกันทั้งหมดของ [Windows | Mac OS | Linux] และ [Chrome | Firefox] แต่มันไม่ทำงานกับ IE เพราะ IE จัดการ$(window).height()และ$(window).scrollTop()แตกต่างกันเล็กน้อย มีการวิเคราะห์อย่างละเอียดเกี่ยวกับสถานการณ์นั้นหรือการสัมภาษณ์กับคนในวงที่จะอธิบายสาเหตุหรือไม่? มันเป็นวัฒนธรรมองค์กร, ขั้นตอนการออกแบบ, ข้อบกพร่อง QA หรือมรดกที่ไม่รู้จักน่ากลัวบ้างไหม?

4
ฉันจะอัปเดต codebase ขนาดใหญ่เพื่อให้ได้ตามมาตรฐานคุณภาพที่เฉพาะเจาะจงได้อย่างไร
มีข้อมูลจำนวนมากเกี่ยวกับเครื่องมือและเทคนิคในการปรับปรุงฐานรหัสดั้งเดิม แต่ฉันไม่ได้เจอกรณีศึกษาจริงที่ประสบความสำเร็จ คำแนะนำส่วนใหญ่อยู่ในระดับจุลภาคและในขณะที่มีประโยชน์ก็ไม่ได้ชักจูงคนจำนวนมากเพราะขาดหลักฐานที่สามารถช่วยในระดับมหภาค ฉันกำลังมองหาการปรับปรุงเพิ่มเติมโดยเฉพาะซึ่งได้รับการพิสูจน์แล้วว่าประสบความสำเร็จในโลกแห่งความจริงเมื่อทำการอัปเดตโค้ดเบสขนาดใหญ่เพื่อให้เป็นไปตามมาตรฐานคุณภาพในปัจจุบันไม่ใช่การเขียนซ้ำทั้งหมด ก่อน: ใหญ่: มากกว่า 1MLOC มรดก: ไม่มีการทดสอบอัตโนมัติ คุณภาพไม่ดี: ความซับซ้อนสูงข้อต่อสูงข้อบกพร่องที่หลบหนีได้สูง หลังจาก การทดสอบอัตโนมัติ ปรับปรุง / บำรุงรักษาง่ายขึ้น คุณภาพสูง: ความซับซ้อนที่ลดลง, โค้ดแยกส่วน, ข้อบกพร่องเล็ก ๆ น้อย ๆ ที่หลบหนี ขั้นตอนที่เพิ่มขึ้นประเภทใดที่ได้รับการพิสูจน์แล้วในโลกแห่งความจริงเพื่ออัปเดตรหัสฐานข้อมูลขนาดใหญ่แบบดั้งเดิมให้ประสบความสำเร็จเพื่อให้ได้ตามมาตรฐานคุณภาพที่สูงกว่าโดยไม่ต้องเขียนซ้ำทั้งหมด ถ้าเป็นไปได้ให้ใส่ตัวอย่าง บริษัท หรือกรณีศึกษาของโครงการมรดกขนาดใหญ่ที่ผ่านกระบวนการปรับปรุงคุณภาพ "ประสบความสำเร็จ" ในคำตอบของคุณเพื่อสำรองข้อมูล

5
ใน MVC สามารถเรียกค้นข้อมูลพื้นฐานจาก Model ได้หรือไม่ในมุมมอง?
ด้วยแนวคิดของ'ตัวควบคุมผอมแบบจำลองไขมัน'และการยอมรับทั่วไปที่ Views สามารถเรียกใช้โมเดลโดยตรงเมื่อต้องการข้อมูลเพื่อการส่งออกเราควรพิจารณาการจัดการส่วน 'รับและแสดง' ของคำขอภายใน Views ไม่ใช่ตัวควบคุม ตัวอย่างเช่น (พยายามเก็บรหัสที่ค่อนข้างทั่วไป): ตัวควบคุม <?php class Invoice extends Base_Controller { /** * Get all the invoices for this month */ public function current_month() { // as there's no user input let's keep the controller very skinny, // DON'T get data from the Model here, …

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

7
การใช้เงื่อนไขด้านความปลอดภัยในมุมมองเป็นการละเมิด MVC หรือไม่
บ่อยครั้งที่สิ่งที่ปรากฏต่อผู้ใช้ (เช่นบนหน้าเว็บ) จะขึ้นอยู่กับการตรวจสอบความปลอดภัยเป็นส่วนหนึ่ง ฉันมักจะพิจารณาความปลอดภัยระดับผู้ใช้ / ACL เป็นส่วนหนึ่งของตรรกะทางธุรกิจของระบบ หากมุมมองตรวจสอบความปลอดภัยอย่างชัดเจนเพื่อแสดงองค์ประกอบ UI แบบมีเงื่อนไขจะเป็นการละเมิด MVC โดยมีตรรกะทางธุรกิจหรือไม่

2
ข้อความนี้มาจากอัลกอริธึมพื้นฐานของ Knuth หรือยัง [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ในความรู้สึก 10! (สิบแฟคทอเรียล) แสดงถึงเส้นแบ่งโดยประมาณระหว่างสิ่งต่าง ๆ ที่ใช้ในการคำนวณและสิ่งที่ไม่ใช่ สิ่งนี้มาจากสมุดขั้นตอนวิธีพื้นฐานของ Knuth's TAOCP (1973) นี่เป็นคำสั่งที่ถูกต้องหรือมีพลังในการคำนวณที่ล้าสมัยหรือไม่?

3
ทำไมค่าต่ำสุดของ ints, double, etc 1 ไกลจากศูนย์มากกว่าค่าบวก
ฉันรู้ว่ามันมีส่วนเกี่ยวข้องกับส่วนประกอบของ 2 และการเพิ่ม 1 แต่ฉันไม่เข้าใจวิธีที่คุณสามารถเข้ารหัสตัวเลขอีกหนึ่งจำนวนที่มีจำนวนบิตเท่ากันเมื่อมันเป็นจำนวนลบ
10 java  numbers 

2
วิธีการปล่อยไปยัง App Store ในฐานะบุคคล
ฉันเขียนแอพ iOS แล้วและฉันต้องการเผยแพร่ไปยัง App Store ฉันเป็นบุคคลดังนั้นจึงไม่ถูกปล่อยผ่าน บริษัท หรืออะไรเลยเพียงฉัน เป็นเรื่องปกติไหมที่จะปล่อยแอพฟรีภายใต้ชื่อของคุณเอง? ถ้าเป็นเช่นนั้นข้อมูลลิขสิทธิ์ที่เหมาะสมที่จะส่งมีอะไรบ้าง
10 ios  appstore 

3
การแสดงออกของ EL ที่ซับซ้อนควรถูกแทนที่ด้วย javabean getter เดี่ยวหรือไม่?
ใน JSF ถ้าฉันมีองค์ประกอบที่แสดงผลตามเงื่อนไขตามจำนวนของตัวแปรวิธีที่ดีที่สุดในการจัดการกับคำสั่งแสดงผล ... ตรรกะควรอยู่ในการประกาศส่วนประกอบหรือในรูปแบบของผู้ช่วยบางรูปแบบ? ข้อความวูฟจะปรากฏเฉพาะเมื่อสัตว์เป็นช้างหรือสุนัขและสัตว์จะไม่ถูกปิดเสียง ตัวเลือกที่ 1: การใช้งานในมุมมอง: <h:outputText id="text" value="woof" rendered="#{animal.type == 'elephant' or animal.type == 'dog' and not(animal.mute)}"/> หรือตัวเลือก 2: encapsulation: <h:outputText id="text" value="woof" rendered="#{animal.barkingAnimal}"/> ด้วยการใช้งาน: public class Animal { public boolean isBarkingAnimal() { return ("dog".equals(getType()) || "elephant".equals(getType())) && !isMute(); } ... ทั้งคู่ทำงาน ... แต่วิธีไหนที่จะจัดการสถานการณ์ได้
10 jsf 

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