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

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

5
ดีที่แบ็กเอนด์ แต่แย่มากที่ส่วนหน้า
ฉันต้องการเริ่มต้นการพัฒนาเว็บฉันได้เรียนรู้ php ฉันมีประสบการณ์ใน Java, Python และ C ++ ประสบการณ์นี้ทำให้ฉันดีที่ด้านหลังสุดของการพัฒนาเว็บ แต่ฉันออกแบบและกราฟิกได้แย่มาก ฉันต้องการเริ่มเว็บไซต์ พวกคุณแนะนำฉันให้ทำอะไร? หากข้อเสนอแนะของคุณคือทำให้กราฟิกดีขึ้นสิ่งที่จะเป็นวิธีที่ดี? ฉันต้องการรู้ว่าสิ่งที่คุณใช้ในการออกแบบและกราฟิกและสิ่งที่จะเป็นจุดเรียนรู้ที่ดีสำหรับมัน?

5
เหตุใด Windows Forms / Swing frameworks จึงสนับสนุนการสืบทอดแทนที่จะเป็น Composition
วันนี้ศาสตราจารย์ของฉันคนหนึ่งให้ความเห็นว่าเขาพบว่ามันแปลกที่ในขณะที่ปรัชญาของ SWT เป็นหนึ่งในการควบคุมของคุณเองโดยการจัดองค์ประกอบสวิงดูเหมือนว่าจะสนับสนุนมรดก ฉันแทบไม่ได้ติดต่อกับเฟรมเวิร์กทั้งคู่ แต่จากสิ่งที่ฉันจำได้ในแบบฟอร์ม Windows ของ C # มักจะขยายการควบคุมเช่นเดียวกับ Swing โดยทั่วไปแล้วคนมักจะชอบแต่งเพลงมากกว่าการถ่ายทอดทางพันธุกรรมทำไมคนใน Swing / Windows Forms จึงไม่ชอบการแต่งเพลงมากกว่าการถ่ายทอดทางพันธุกรรม?
12 c#  java  swing  forms 

1
PyPy เป็นผู้ใหญ่แค่ไหน? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันกำลังพยายามกำหนดวุฒิภาวะของ PyPy ด้วยวิธีการอื่นนอกเหนือจากการอ่านความคิดเห็นของนักพัฒนา ดังนั้นฉันสนใจที่จะได้ยินเกี่ยวกับโครงการที่มีความสำคัญต่อภารกิจสูงโดยใช้ PyPy ตัวบ่งชี้อื่น ๆ ของความเป็นผู้ใหญ่ดูเหมือนจะดี ฉันเพิ่งหายไปก่อนที่จะตัดสินใจใช้สำหรับโครงการหลักของฉัน
12 python 

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

5
ฉันจะใช้ตราสัญลักษณ์ในโครงการโอเพนซอร์ซได้อย่างไร
Stack Overflow มีชุดของป้ายที่ยอดเยี่ยมที่ตระหนักถึงการมีส่วนร่วมของบุคคลในชุมชนและช่วยให้ความสามารถของแต่ละบุคคลเติบโตได้มากขึ้น ฉันสามารถใช้เทคนิคใดในโครงการโอเพนซอร์สหรือโปรแกรมเข้ารหัส ตัวอย่างเช่นการมีส่วนร่วมของบุคคลในการสร้างฐานรหัสทำให้พวกเขาได้รับป้ายพร้อมกับความสามารถที่เพิ่มขึ้นในโครงการ? หมายเหตุผู้ดูแล การให้ลิงก์ไปยังคำแนะนำนั้นไม่เพียงพอ: โปรดให้คำตอบโดยละเอียดเกี่ยวกับวิธีการรวมองค์ประกอบ gamification ไว้ในโครงการโอเพ่นซอร์ส คำตอบใด ๆ ที่ไม่ได้ทำจะถูกลบ ดูดีอัตนัยส่วนตัวไม่ดีสำหรับข้อมูลเพิ่มเติมเกี่ยวกับประเภทของคำถามและประเภทของคำตอบเรากำลังมองหาโปรแกรมเมอร์

8
ช่วงเวลาการทำงานใดที่ให้ผลดีกว่า: สั้นหรือยาว [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว เซสชันการทำงานใดมีประสิทธิผลมากขึ้นสำหรับการเขียนโปรแกรม: สั้น (<= 30 นาที), กลางยาวหรือยาว (> = 2 ชั่วโมง) ในกรณีใด (พิจารณาการเขียนโค้ดฟังก์ชั่นใหม่ทำการปรับเปลี่ยนเล็กน้อยปรับแต่ง UI ปรับโครงสร้างใหม่ตรวจแก้จุดบกพร่องเรียนรู้ API พยายามเข้าใจรหัสของผู้อื่น) คุณสามารถบอกอะไรได้บ้างจากประสบการณ์ของคุณ? ยินดีต้อนรับข้อมูลจากการศึกษาและแนวปฏิบัติที่ดีที่สุด แม้ว่ามันจะเป็นการดีที่ได้เห็นลิงก์หรือการอ้างอิง ข้อมูลที่เชื่อถือได้เป็นที่ต้องการมากกว่าคำตอบที่สมบูรณ์ ประเด็นที่มีคุณค่า: การคิดที่มุ่งเน้นเป็นเป้าหมายสูงสุดที่นี่ โดยทั่วไปแล้วงานที่ไม่มีการขัดจังหวะ> 2-3 ชั่วโมงจะทำให้สูญเสียการโฟกัสและหมอกลง เมื่อคุณอยู่ในสภาวะที่ดีควรปล่อยให้ตัวเองทำงาน 1-2 ชั่วโมง ควรลองฝึกเทคนิคของ Pomodoro เพื่อช่วยในการเอาชนะความเฉื่อยและการผัดวันประกันพรุ่งเพื่อให้ได้เวลาที่ดีขึ้น โดยเฉพาะอย่างยิ่งสามารถช่วยในการเริ่มทำสิ่งที่คุณไม่ชอบทำมาก เมื่อใช้ซอฟต์แวร์ 'การจัดการการแบ่ง' คุณสามารถอนุญาตให้ตัวเองมีความยืดหยุ่นมากขึ้นเช่นข้ามการหยุดพัก 1 ครั้ง แต่ไม่มาก สิ่งนี้ช่วยให้คุณสามารถปรับตัวเข้ากับสถานการณ์: อยู่ในกระแสเมื่อมีการไหลอยู่จัดการได้เมื่อไม่ไหล อากาศบริสุทธิ์การผ่อนคลายและการออกกำลังกายในช่วงพักสามารถช่วยให้มีส่วนร่วมในซีกขวาเพื่อรับแนวคิดและวิธีการแก้ไขใหม่ ๆ ลองใช้เครื่องมือซอฟต์แวร์สำหรับ …

4
มีค่าใดในการเปิดการจัดหาโครงการเพื่อความสนุกของคุณ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันได้เขียนความสนุกสำหรับโครงการของฉันและแสดงให้เพื่อน ๆ มีค่าใดในการทำงานและทำให้โครงการเหล่านี้เป็นโอเพ่นซอร์สเนื่องจากความสนใจและประโยชน์มี จำกัด

4
ฟังก์ชั่นการเขียนโปรแกรม - Immutability
ฉันพยายามที่จะเข้าใจการจัดการกับข้อมูลที่ไม่เปลี่ยนรูปแบบใน FP (โดยเฉพาะใน F # แต่ FP อื่น ๆ ก็โอเคเช่นกัน) และทำลายนิสัยเดิมของการคิดแบบเต็มรัฐ (OOP) ส่วนหนึ่งของคำตอบที่เลือกสำหรับคำถามที่นี่ย้ำการค้นหาของฉันสำหรับการแก้ไขปัญหาที่แก้ไขโดยการเป็นตัวแทนใน OOP กับสิ่งที่ไม่เปลี่ยนรูปใน FP (ตัวอย่างเช่น: คิวกับ Producers & Consumer) ความคิดหรือลิงค์ยินดีต้อนรับ? ขอบคุณล่วงหน้า. แก้ไข : หากต้องการเพิ่มความกระจ่างของคำถามอีกเล็กน้อยโครงสร้างที่ไม่เปลี่ยนรูปแบบ (เช่นคิว) จะถูกแชร์กันในหลาย ๆ เธรดพร้อมกัน (เช่นผู้ผลิตและผู้บริโภค) ใน FP ได้อย่างไร

4
การเขียนโปรแกรมเชิงหน้าที่ในซอฟต์แวร์เชิงพาณิชย์
ฉันเพิ่งพูดคุยเกี่ยวกับการเขียนโปรแกรมการทำงานกับเพื่อนร่วมงาน ในขณะที่เราสองคนเห็นพ้องกันว่า FP มีประโยชน์ชัดเจน (รหัสง่ายขึ้นง่ายกว่าที่จะให้เหตุผลทางคณิตศาสตร์ ฯลฯ ) เราทั้งคู่ต่างก็สงสัยว่ามันจะเป็นหรือไม่เคยถูกใช้ในซอฟต์แวร์เชิงพาณิชย์ ฉันรู้ว่ามีโอเพนซอร์ซจำนวนมากและโครงการทางวิชาการที่เขียนขึ้นตามหน้าที่ (เช่นฉันเคยเห็นคำถามนี้เกี่ยวกับ Stack Overflow) แต่ฉันสงสัยว่าถ้ามีใครสามารถแสดงรายการซอฟต์แวร์เชิงพาณิชย์อื่น ๆ ที่เขียนอย่างน้อยส่วนหนึ่ง ในภาษาที่ใช้งานได้ (และภาษาใด)

5
อธิบายการประมวลผลแบบคลาวด์กับคุณยาย
ในทางเทคนิคฉันเข้าใจว่า cloud computing คืออะไร แต่ฉันมีปัญหาเมื่อพยายามอธิบายให้คนธรรมดา ฉันสงสัยว่ามีตัวอย่างที่ดีซึ่งสามารถอธิบายได้อย่างง่ายดาย

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

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

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

5
อัลกอริทึมการเปลี่ยนแคชที่มีประสิทธิภาพมากที่สุด [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา วิกิพีเดียแสดงรายการ 11 ขั้นตอนวิธีการเปลี่ยนแคช สมมติว่าฉันไม่รู้อะไรเกี่ยวกับแอปพลิเคชันที่ฉันจะพัฒนาฉันควรใช้อะไรเป็นอัลกอริทึมการแทนที่แคช "เริ่มต้น" ถ้าฉันจำได้อย่างถูกต้องจากระบบปฏิบัติการของฉัน LRU เป็นอัลกอริทึมการแทนที่แคชทั่วไปที่ดีที่สุด แต่บางทีฉันเข้าใจผิด นอกจากนี้นี่เป็นคำถามเชิงวิชาการเล็กน้อยเนื่องจากโดยทั่วไปหน่วยความจำหลักมีราคาถูกและมีมากมายและฉันไม่ต้องกังวลเกี่ยวกับขนาดแคชมากเกินไป

11
การสร้างรหัสเพิ่มคุณภาพของรหัสหรือไม่
การโต้เถียงสำหรับการสร้างรหัสฉันกำลังมองหาตัวอย่างของวิธีการที่จะเพิ่มคุณภาพของรหัส เพื่อชี้แจงสิ่งที่ฉันหมายถึงโดยการสร้างรหัสฉันสามารถพูดคุยเกี่ยวกับโครงการของฉันเท่านั้น: เราใช้ไฟล์ XML เพื่ออธิบายความสัมพันธ์เอนทิตีในสคีมาฐานข้อมูลของเราดังนั้นพวกเขาจึงช่วยให้เราสร้างกรอบ ORM และรูปแบบ HTML ซึ่งสามารถใช้ในการเพิ่มลบและแก้ไขเอนทิตี ในใจของฉันมันเพิ่มคุณภาพรหัสเพราะความผิดพลาดของมนุษย์ลดลง หากมีการใช้งานสิ่งใดอย่างไม่ถูกต้องจะเกิดความผิดพลาดในแบบจำลองซึ่งเป็นสิ่งที่ดีเพราะข้อผิดพลาดอาจปรากฏขึ้นเร็วกว่าเนื่องจากรหัสที่สร้างขึ้นนั้นใช้งานไม่ได้เช่นกัน ตั้งแต่ผมก็ถามว่าสำหรับความหมายของคุณภาพรหัสให้ฉันชี้แจงนี้สิ่งที่ฉันหมายถึงเป็นซอฟต์แวร์ที่มีคุณภาพ คุณภาพซอฟต์แวร์ : ไม่ใช่คุณลักษณะเดียว แต่มีหลายอย่างเช่นประสิทธิภาพความสามารถในการปรับเปลี่ยนความสามารถในการอ่านความถูกต้องความทนทานความเข้าใจในการใช้งานความสะดวกในการพกพาเป็นต้นซึ่งส่งผลกระทบต่อกัน

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