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

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

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

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

4
หนึ่งคอนโทรลเลอร์ต่อหน้าหรือหลายหน้าในคอนโทรลเลอร์เดียว?
ฉันแค่ต้องการคำแนะนำเกี่ยวกับวิธีการทำสิ่งต่าง ๆ ของ MVC ฉันใช้ codeigniter และสงสัยว่าจะดีกว่าถ้ามีคอนโทรลเลอร์หนึ่งตัวต่อหน้าสำหรับเว็บไซต์หรือมีคอนโทรลเลอร์หนึ่งอันสำหรับทุกหน้า? สมมติว่าฉันมีเว็บไซต์ง่าย ๆ ที่คุณสามารถเยี่ยมชมโฮมเพจล็อกอินสร้างบัญชีและติดต่อผู้ดูแลระบบ มันจะดีกว่าไหมถ้ามีตัวควบคุมเหล่านี้: ส่วนหน้า (ดัชนี), เข้าสู่ระบบ, บัญชี, ติดต่อหรือมีหนึ่งตัวควบคุมที่เรียกว่าส่วนหน้าหรืออะไรก็ตามที่มีการกระทำเช่นล็อกอิน, createAccount, ผู้ติดต่อ? คุณจะรู้ได้อย่างไรว่าควรใช้คอนโทรลเลอร์ตัวเดียวในสถานการณ์ที่ดีกว่า?
16 mvc 

4
ลักษณะตัวเลือกบรรทัดคำสั่ง - POSIX หรืออะไร
อยู่ที่ไหนสักแห่งที่ฉันเห็นว่าพูดจาโผงผางกับ java / javac ที่ถูกกล่าวหาว่าใช้การผสมผสานระหว่าง Windows และ Unix style java -classpath ... -ea ... Something IMHO มันไม่มีการผสมผสานมันก็เหมือนfindงานเหมือนกันใช่ไหม AFAIK ตาม POSIX ไวยากรณ์ควรเป็นเช่นนั้น java --classpath ... --ea ... Something และ-abcdefจะหมายถึงการระบุ 6 ตัวเลือกสั้น ๆ ในครั้งเดียว ฉันสงสัยว่าเวอร์ชันใดที่นำไปสู่การพิมพ์น้อยลงและมีข้อผิดพลาดน้อยลง ฉันกำลังเขียนโปรแกรมอรรถประโยชน์ขนาดเล็กใน Java และไม่ว่าในกรณีใดฉันจะใช้รูปแบบ Windows /a /bเนื่องจากฉันสนใจ Unix เป็นหลัก ฉันควรเลือกรูปแบบใด

8
คำถามสัมภาษณ์ LINQ อาวุโส [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันกำลังเตรียมส่วน LINQ ในคำถามสัมภาษณ์สำหรับโปรแกรมเมอร์อาวุโส คำถามที่น่าสนใจที่สุดใน LINQ ที่จะรวมคืออะไร และทำไม?
16 c#  .net  interview  linq 

4
การเขียนโปรแกรมตามรูปแบบคืออะไร?
ใครสามารถอธิบายความลุ่มหลงด้วยรูปแบบและรูปแบบการต่อต้านในการเขียนโปรแกรมได้หรือไม่? ฉันถามเพราะฉันไม่รู้จริง ๆ ว่ารูปแบบใดมีความหมาย เมื่อต้องเผชิญกับงานเขียนโปรแกรมฉันคิดเกี่ยวกับปัญหานิดหน่อยให้เขียนโครงสร้างข้อมูลบางอย่างที่ฉันคิดว่าจะเกี่ยวข้องกันสร้างต้นแบบของโซลูชันแยกส่วนของโมดูลและทำซ้ำ ฉันคิดว่าไม่มีที่ไหนในกระบวนการ "โอ้ฉันต้องการรูปแบบ FunkyLookyTastic ที่นี่"

7
ชั้นเรียนที่ไม่เปลี่ยนแปลงกลายเป็นภาระในจุดใด?
เมื่อออกแบบคลาสเพื่อเก็บโมเดลข้อมูลของคุณฉันได้อ่านแล้วมันมีประโยชน์ในการสร้างออบเจ็กต์ที่ไม่เปลี่ยนรูป แต่ภาระหน้าที่ของรายการพารามิเตอร์คอนสตรัคเตอร์และสำเนาลึกกลายเป็นมากเกินไปและคุณต้องละทิ้งข้อ จำกัด ที่ไม่เปลี่ยน ตัวอย่างเช่นนี่คือคลาสที่ไม่เปลี่ยนรูปเพื่อแสดงสิ่งที่มีชื่อ (ฉันใช้ไวยากรณ์ C # แต่หลักการใช้กับภาษา OO ทั้งหมด) class NamedThing { private string _name; public NamedThing(string name) { _name = name; } public NamedThing(NamedThing other) { this._name = other._name; } public string Name { get { return _name; } } } สิ่งที่สร้างชื่อสามารถสร้างสอบถามและคัดลอกไปยังสิ่งที่ตั้งชื่อใหม่ แต่ไม่สามารถเปลี่ยนชื่อได้ ทั้งหมดนี้เป็นสิ่งที่ดี แต่จะเกิดอะไรขึ้นเมื่อฉันต้องการเพิ่มคุณสมบัติอื่น ฉันต้องเพิ่มพารามิเตอร์ให้กับตัวสร้างและอัปเดตตัวสร้างสำเนา ซึ่งไม่ทำงานมากเกินไป …

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

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

5
ภาษาที่ใช้งานได้ซึ่งรวบรวมเป็น Dalvik VM ของ Android หรือไม่ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันมีปัญหาซอฟต์แวร์ที่เหมาะกับวิธีการทำงานของการเขียนโปรแกรม แต่ตลาดเป้าหมายจะอยู่ในระบบปฏิบัติการ Android ฉันถามเพราะมีภาษาที่ใช้งานได้ซึ่งคอมไพล์กับ VM ของ Java แต่ Dalvik bytecode! = Java bytecode อีกทางหนึ่งคุณรู้หรือไม่ว่าdxยูทิลิตี้นี้สามารถแปลง.classไฟล์ที่สร้างจากภาษาที่ใช้งานได้เช่น Scala อย่างชาญฉลาดหรือไม่? แก้ไข : เพื่อเพิ่มความเป็นประโยชน์ให้กับชุมชนอีกเล็กน้อยและเพื่อช่วยให้ฉันเลือกได้ดีขึ้นฉันจะแก้ไขคำถามได้หรือไม่ คุณเคยใช้ภาษาอื่นกับ Dalvik บ้างไหม? อันไหน? "gotchas" (ปัญหา) ที่ฉันอาจพบมีอะไรบ้าง ประสิทธิภาพเป็นที่ยอมรับหรือไม่? จากนั้นฉันหมายความว่าแอปพลิเคชันยังคงตอบสนองต่อผู้ใช้ ฉันไม่เคยพัฒนาโทรศัพท์มือถือมาก่อน แต่ฉันโตมากับอุปกรณ์ที่มีข้อ จำกัด และฉันก็ไม่คิดว่าจะมีค่าใช้จ่ายในการใช้ภาษาที่ไม่ได้มาตรฐานกับแพลตฟอร์ม ฉันแค่ต้องรู้ว่าค่าใช้จ่ายนั้นเป็นสิ่งที่ฉันควรจะลองใช้วิธีการของฉันเป็นภาษาเริ่มต้น (เช่นใช้หลักการทำงานในภาษา OOP)

9
นักพัฒนาควรมีการเข้าถึงฐานข้อมูลเท่าใด [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ดังนั้นฉันจึงทำงานในสถานที่ทำงานที่แตกต่างกันมากมายในฐานะนักพัฒนาและระดับการเข้าถึงฐานข้อมูลของฉันมีการเปลี่ยนแปลง โดยทั่วไปฉันไม่มีสิทธิ์เข้าถึงฐานข้อมูลการผลิต เวลาส่วนใหญ่ของฉันมีการเข้าถึงฐานข้อมูลการทดสอบ แต่มันแตกต่างกันไป บางครั้งฉันสามารถทำได้และเปลี่ยนฐานข้อมูลและข้อมูลตามที่ฉันต้องการ แต่มักจะมีข้อตกลงอื่น ๆ เช่นเดียวกับฉันอาจเข้าถึงการอ่านข้อมูลได้เท่านั้น ฉันทำงานในที่เดียวที่ทีม DBA จะจัดการฐานข้อมูลเราไม่สามารถเปลี่ยนแปลงได้เลยนอกจากว่าเราจะส่งแบบฟอร์มด้วยสคริปต์ sql สำหรับพวกเขาเพื่อ "ตรวจสอบ" โดยทั่วไปแล้วพวกเขาไม่มีอะไรเกี่ยวข้องกับโครงการมากนักเวลาส่วนใหญ่ก็แค่กด F5 สุจริตฉันสามารถเข้าใจว่าทำไมต้องแยงลง แต่ฉันชอบที่จะมีการเข้าถึงฐานข้อมูลมากในสภาพแวดล้อม dev และทดสอบ ฉันคิดว่า devs ส่วนใหญ่มีความสามารถพอสมควรที่จะรู้วิธีการของพวกเขารอบฐานข้อมูล แต่ฉันต้องการที่จะได้ยินความคิดเห็น นักพัฒนาควรมีการเข้าถึงฐานข้อมูลเท่าใด เราสามารถเชื่อถือได้หรือไม่ที่จะทำลายทุกสิ่งที่นั่น?

12
เมื่อเรียนรู้ JS อะไรคือช่วงเวลา Aha ของคุณ? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา คุณจำตอนที่คุณเรียนรู้จาวาสคริปต์ได้หรือไม่? อะไรคือช่วงเวลาที่คุณ "ได้รับ" ในทันใด (ตัวอย่างเช่น CSS aha-ครู่ของฉันคือเมื่อฉันเรียนรู้เกี่ยวกับรูปแบบกล่อง ... ) เหตุผลที่ฉันถามคือฉันกำลังเรียน JS อยู่ 6 สัปดาห์ แต่ฉันก็ยังรู้สึกสับสนอยู่ดี นี่คือคำพูดจากสิ่งที่ฉันอ่านเมื่อเร็ว ๆ นี้ใน SO: "..functions ทำหน้าที่คล้ายกับค่าเนื่องจากเมธอดเป็นคุณสมบัติของวัตถุที่มีค่าของฟังก์ชัน (ซึ่งเป็นวัตถุด้วย)" ฉันอยากรู้ว่าถ้าคุณสับสนในตอนแรกและอะไรที่ทำให้คุณเข้าใจ (ฉันกำลังอ่าน Sitepoints "เพียงแค่ JavaScript" หนังสือ "Eloquent JavaScript" และการติดตาม Essential JavaScript ของ Lynda ฉันไม่ได้มีการเขียนโปรแกรมที่ยอดเยี่ยมและแย่มากในเรื่องคณิตศาสตร์) ขอบคุณ!

10
การใช้งาน C # Delegates ในโลกแห่งความเป็นจริง [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันคิดว่าฉันเข้าใจแนวคิดของผู้ได้รับมอบหมาย C # แต่ฉันพยายามดิ้นรนเพื่อหาตัวอย่างโลกแห่งความจริงที่พวกเขาจะมีประโยชน์ คุณสามารถให้คำตอบโดยละเอียดเกี่ยวกับวิธีการใช้ผู้รับมอบสิทธิ์ C # ในแอปพลิเคชันจริงและปัญหาใดที่พวกเขาทำให้คุณสามารถแก้ไขได้
16 c#  delegates 

6
แปลงจากกระบวนงานเป็นรหัสที่เน้นวัตถุ
ฉันอ่านการทำงานอย่างมีประสิทธิภาพด้วย Legacy CodeและClean Codeโดยมีเป้าหมายของกลยุทธ์การเรียนรู้เกี่ยวกับวิธีเริ่มทำความสะอาดโค้ด - ฐานที่มีอยู่ของแอปพลิเคชัน ASP.NET webforms ขนาดใหญ่ ระบบนี้มีมาตั้งแต่ปีพ. ศ. 2548 และตั้งแต่นั้นมาก็มีการปรับปรุงหลายอย่าง แต่เดิมรหัสมีโครงสร้างดังนี้ (และยังคงเป็นโครงสร้างส่วนใหญ่ด้วยวิธีนี้): ASP.NET (aspx / ascx) รหัส - หลัง (c #) ชั้นตรรกะทางธุรกิจ (c #) ชั้นการเข้าถึงข้อมูล (c #) ฐานข้อมูล (Oracle) ปัญหาหลักคือรหัสคือการปลอมแปลงตามขั้นตอนเป็นเชิงวัตถุ มันเป็นการละเมิดแนวทางทั้งหมดที่อธิบายไว้ในหนังสือทั้งสองเล่ม นี่คือตัวอย่างของคลาสทั่วไปใน Business Logic Layer: public class AddressBO { public TransferObject GetAddress(string addressID) { if (StringUtils.IsNull(addressID)) { …

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

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