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

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

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

3
ในคิวจุดไหนคือ "หัว"?
ฉันมักจะคิดว่า "หัว" ของคิวเป็นองค์ประกอบถัดไปที่จะอ่านและไม่เคยถามการใช้งานนั้นจริงๆ ดังนั้นฉันจึงเขียนไลบรารีรายการที่ลิงก์ซึ่งใช้สำหรับการดูแลคิวประมวลผลคำศัพท์นั้น: เรามีlist1_headแมโครที่ดึงองค์ประกอบแรก เมื่อใช้ไลบรารีนี้ในคิวนี่จะเป็นองค์ประกอบแรกที่จะถูกลบ แต่นักพัฒนาใหม่ในทีมเคยชินกับการใช้คิวในลักษณะอื่น เขาอธิบายถึงคิวที่ทำตัวเหมือนสุนัข: คุณเสียบที่หัวแล้วเอาที่หาง นี่เป็นคำอธิบายที่ฉลาดพอที่ฉันรู้สึกว่าการใช้งานของเขาจะต้องแพร่หลายมากขึ้นและฉันก็ไม่ได้มีคำอธิบายที่กระตุ้นอารมณ์ในการใช้งานที่ฉันต้องการ ดังนั้นฉันเดาว่ามีคำถามที่เกี่ยวข้องสองคำถาม: 1 "หัว" ของคิวมีความหมายต่อคุณอย่างไร และ 2 ทำไมเราจึงใช้คำว่า "หัว" เพื่ออธิบายแนวคิดนั้น

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

6
JavaScript สามารถใช้เป็นภาษาสคริปต์ทั่วไปได้หรือไม่?
ฉันใช้ JavaScript และเฟรมเวิร์ก (jQuery, Prototype, บาง node.js) สำหรับการเขียนโปรแกรมเว็บฝั่งไคลเอ็นต์ แต่ไม่เคยอยู่บนเดสก์ท็อปที่ฉันทำงานเขียนสคริปต์ส่วนใหญ่ใน Python หรือ Bash แต่ IMHO, JavaScript จะทำให้ภาษาสคริปต์ที่ดีถ้าใช้นอกเบราว์เซอร์ มีใครลองบ้างไหม JavaScript สามารถใช้แทนที่ Python / Perl / Bash อย่างเพียงพอสำหรับงานสคริปต์ที่รวดเร็วและสกปรกหรือไม่?

6
ฉันควรสอนนักเรียนของฉันให้ดีไหม? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา วิธีการใช้กันอย่างแพร่หลายallocaในโลกแห่งความจริง? ฉันควรสอนนักเรียนให้ใช้allocaเมื่อเหมาะสมหรือไม่ หรือฉันควรสอนพวกเขาไม่ให้ใช้มัน? มาจากพื้นหลัง C ++ RAII ความคิดที่ว่าคุณไม่จำเป็นต้องโทรหาคนอื่นfreeด้วยตนเองโดยเฉพาะอย่างยิ่งเสียงที่มีแนวโน้ม
18 c  teaching 

2
เหตุใด Google จึงไม่ใช้ GWT ในแอปพลิเคชันส่วนใหญ่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว Google สร้างGoogle Web Toolkit (GWT)และไม่ได้ใช้เมื่อสร้างเว็บแอปพลิเคชันของตนเอง นี่หมายความว่า GWT ไม่เหมาะสำหรับการสร้างแอปพลิเคชันแบบไดนามิกหรือไม่? หรือมีปัญหาการแคช? หรือมีปัญหา RPC? หรือมีข้อกังวลอื่น ๆ ที่ทำให้ Google ไม่สามารถใช้เทคโนโลยีนี้ได้? EDIT: ฉันไม่ได้พูดที่นี่ว่า Google ไม่เคยใช้ GWT ในแอพใด ๆ แต่สิ่งที่ฉันอยากพูดทำไมพวกเขาถึงไม่ใช้มันในวงกว้าง?

6
จะทำอย่างไรถ้าสมาชิกในทีมพลาดการวางแผนการวิ่ง
ให้บอกว่าสมาชิกในทีมกำลังลาหยุดประจำปี เขาจะไม่เข้าร่วมการวางแผนวิ่ง แต่เขาจะกลับมาในช่วงกลางของการทำซ้ำ / การวิ่ง ให้บอกว่าเขามีความสามารถ 50% นั่นคือเพราะเขาจะพร้อมใช้งานในครึ่งหลังของการทำซ้ำเราควร: มีเซสชั่นการวางแผนกับเขาหลังจากที่เขากลับมา มีเซสชั่นการวางแผนกับเขาก่อนที่เขาจะไปลาประจำปีคือก่อนที่จะวางแผนการวิ่ง อย่ากำหนดเวลาให้เขาทำภารกิจใด ๆ และมอบหมายให้เขาทำงานที่ไม่ใช่การวิ่งเร็วเช่นหนามแหลม ฯลฯ ให้เพื่อนร่วมงานวางแผนในนามของเขาในระหว่างการวางแผนการวิ่งและคนที่ไม่อยู่สามารถเพิ่มงานเมื่อเขากลับมาและถ้าเขาไม่สามารถทำงานทั้งหมดที่เขาสามารถหลบหนีได้ ให้เขานั่งกับนักพัฒนาคนอื่นแล้วจับคู่การเขียนโปรแกรมสักพัก อะไรก็ได้ .. ฉันสนใจที่จะรู้ว่าคุณกำลังทำอะไร .. หมายเหตุ: เรากำลังทำ (1) และมันไม่รู้สึกถูกต้อง
18 scrum  sprint 

11
ภาษาแบบไดนามิกถูกตีความเสมอหรือไม่
มองไปที่ภาษาไดนามิกส่วนใหญ่ (ถ้าไม่ใช่ทั้งหมด) (เช่น Python, PHP, Perl และ Ruby) พวกมันจะถูกตีความทั้งหมด ช่วยแก้ให้ด้วยนะถ้าฉันผิด. มีตัวอย่างของภาษาแบบไดนามิกที่ผ่านขั้นตอนการรวบรวมหรือไม่ ภาษาไดนามิกมีความเหมือนกันกับภาษาที่ตีความหรือไม่


5
การตั้งค่า Visual Studio - ทำไม explorer โซลูชันทางด้านขวา [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ทุกครั้งที่ฉันติดตั้ง VS (เวอร์ชันใดจะย้อนหลังไปหลายปี) จะติดตั้งกับ Solution Explorer ทางด้านขวา ตอนนี้เนื่องจาก UIs ส่วนใหญ่มีการนำทางในคอลัมน์ด้านซ้าย (และที่ด้านบนของวิวพอร์ต) และเนื้อหาทางด้านขวาของการนำทางสิ่งนี้ดูเหมือนจะผิดกับฉันเสมอ ดังนั้นฉันจึงลากตัวสำรวจโซลูชันไปทางซ้ายของหน้าจอและเชื่อมต่อไปที่นั่น แต่ฉันไม่เคยเห็นนักพัฒนาคนอื่นทำสิ่งนี้ พิจารณาว่าโปรแกรมเมอร์ส่วนใหญ่มักจะต้องการปรับแต่งสภาพแวดล้อมของพวกเขาเพิ่มโปรแกรมแก้ไขข้อความที่ชื่นชอบเบราว์เซอร์, ปลั๊กอิน, สคริปต์ greasemonkey ฯลฯทำไมนักพัฒนา Visual Studio ไม่เคยดูเหมือนจะทำให้ UI นี้ง่ายเปลี่ยน? มีใครอีกบ้างที่ทำอย่างนี้หรือฉันแค่กรีดร้องในที่มืด?

6
นักแปลอิสระสามารถใช้การพัฒนาที่คล่องตัวได้หรือไม่?
ฉันต้องการปรับปรุงวิธีการพัฒนาซอฟต์แวร์ ฉันต้องการที่จะพัฒนาเร็วขึ้นและเป็นรหัสที่ยอดเยี่ยม! วันนี้ฉันใช้วิธีน้ำตกเป็นอิสระเขียนเนื้อหาเว็บ (เว็บไซต์ระบบ ฯลฯ ) มีวิธีใช้การพัฒนาแบบว่องไว (XP, SCRUM และอื่น ๆ ) ทำงานด้วยวิธีนี้หรือไม่? ฉันไม่รู้อะไรเลยเกี่ยวกับการพัฒนาที่คล่องตัวฉันควรเริ่มจากที่ไหน ขอบคุณมาก.
18 agile  freelancing  scrum  web 

4
อะไรคือวิธีที่ดีที่สุดในการเปิดชมรมหนังสือทางเทคนิค? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ที่ทำงานเราได้ทำชมรมหนังสืออาหารกลางวันมาพักหนึ่งแล้ว เราได้ทำไปแล้ว: ทำความสะอาดรหัส ทำงานอย่างมีประสิทธิภาพด้วยรหัสมรดก โปรแกรมเมอร์ในทางปฏิบัติ เราอ่านหนึ่งบทต่อสัปดาห์และมีคนหนึ่งคนได้รับมอบหมายให้นำเสนอเนื้อหาและช่วยอำนวยความสะดวกในการอภิปราย ในสามรายการนี้เราอาจประสบความสำเร็จสูงสุดกับ The Pragmatic Programmer ดูเหมือนว่าเนื้อหามีความซับซ้อนทางเทคนิคมากขึ้นผู้คนจำนวนมากมักจะเลิกเรียนเมื่อหนังสืออ่านเสร็จ ฉันต้องการทำหนังสือที่มีเทคนิคมากเช่น SICP หรือ Java Concurrency in Practice แต่ฉันไม่รู้วิธีที่ดีในการทำให้งานนี้มีรูปแบบที่เรากำลังทำอยู่ คุณมีคำแนะนำอะไร?
18 learning  books 

5
“ ลืมรหัสผ่าน” - จะจัดการได้อย่างไร
ฉันอ่านคำตอบนี้และพบว่ามีความคิดเห็นยืนยันที่จะไม่ส่งรหัสผ่านทางอีเมล: รหัสผ่านไม่สามารถเรียกคืนได้ทางอีเมลฉันเกลียดที่ หมายความว่ารหัสผ่านของฉันถูกเก็บไว้ในรูปแบบข้อความธรรมดา ควรรีเซ็ตเท่านั้น นี่ทำให้ฉันมีคำถามเรื่องการจัดการตัวเลือกลืมรหัสผ่าน? รหัสผ่านแบบดิบจะต้องแสดงใน UI ใด ๆ เพื่อให้ผู้ใช้สามารถอ่านได้ ดังนั้นสิ่งที่จะเป็นวิธีในการจัดการ "ลืมรหัสผ่าน"

3
วิธีจัดการข้อผิดพลาดหลังการตรวจสอบความถูกต้องในคำสั่ง (DDD + CQRS)
ตัวอย่างเช่นเมื่อคุณส่งแบบฟอร์มลงทะเบียนคุณจะต้องตรวจสอบในDomain Model( WriteModelในCQRS) ว่ามันอยู่ในสถานะที่ถูกต้อง (ตัวอย่างไวยากรณ์ที่อยู่อีเมลอายุ ฯลฯ ) จากนั้นคุณสร้างและส่งไปยังCommandCommand Bus ฉันเข้าใจว่าคำสั่งไม่ควรส่งคืนสิ่งใด ดังนั้นคุณจะจัดการกับข้อผิดพลาดได้Command Busอย่างไร (ตัวอย่างเช่นผู้ใช้ที่ลงทะเบียน 1 วินาทีก่อนหน้านี้ด้วยเหมือนกันusername/email) คุณรู้ได้อย่างไรว่าคำสั่งนั้นล้มเหลวและคุณรู้ได้อย่างไรว่ามีข้อผิดพลาด?

2
TCP หรือ UDP สำหรับเกมแบบผู้เล่นหลายคน?
นี่เป็นคำถามที่ฉันเห็นมาก คนส่วนใหญ่กล่าวว่า UDP นั้นดีกว่าสำหรับเกมแบบเรียลไทม์มากกว่า TCP ความเข้าใจของฉันคือ TCP พยายามส่งแพ็กเก็ตซ้ำแล้วซ้ำอีกจนกว่าอีกฝ่ายจะรับมันในขณะที่ UDP ไม่สนใจ สิ่งที่ฉันได้อ่านส่วนใหญ่คือ UDP เป็นสิ่งจำเป็นสำหรับเกมเรียลไทม์และ TCP นั้นแย่มาก แต่สิ่งนี้คือคนส่วนใหญ่ดูเหมือนจะใช้รูปแบบของ TCP บน UDP อย่างไรก็ตาม และฉันก็ได้ยินด้วยว่าความแตกต่างระหว่างสองอย่างนั้นเล็กน้อยมากเพราะเราไม่ได้อยู่ในยุค 80 อีกต่อไปแล้วอินเทอร์เน็ตก็ค่อนข้างเร็วและน่าเชื่อถือ ความเข้าใจทั่วไปของฉันที่นี่ผิดหรือเปล่า? มีคนช่วยเคลียร์สิ่งนี้ให้ฉันได้ไหม

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