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

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

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

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

10
แนวคิดของเอนโทรปีสามารถใช้ในการวิเคราะห์ซอร์สโค้ดด้วยวิธีที่มีประโยชน์ได้หรือไม่?
ดูเหมือนว่าฉันมีเหตุผลที่จะกำหนดบริบทสำหรับการวิเคราะห์ซอร์สโค้ดแบบสแตติกซึ่งรวมถึงกฎในการสร้างค่าสัมพัทธ์ของความซับซ้อน ฉันรู้ว่ามันไม่ได้เป็นไปตามความรู้สึกทางกายภาพเพราะ souce code ไม่มี "พลังงาน" แต่ฉันเดิมพันว่ามีความพยายามในการศึกษาทางวิชาการเพื่อวาดแบบขนาน มีใครรู้เรื่องนี้บ้างไหมและถ้าเป็นเช่นนั้นสิ่งใดที่ทำให้เกิดผลลัพธ์ที่มีประโยชน์?

8
จัดการผู้ใช้ที่ถูกลบ - ตารางแยกหรือเดียวกัน
สถานการณ์คือว่าฉันมีกลุ่มผู้ใช้ที่เพิ่มขึ้นและเมื่อเวลาผ่านไปผู้ใช้จะยกเลิกบัญชีของพวกเขาที่เราทำเครื่องหมายว่า 'ลบ' (ด้วยการตั้งค่าสถานะ) ในตารางเดียวกัน หากผู้ใช้ที่มีที่อยู่อีเมลเดียวกัน (นั่นคือวิธีการที่ผู้ใช้ลงชื่อเข้าใช้) ต้องการสร้างบัญชีใหม่พวกเขาสามารถลงทะเบียนอีกครั้ง แต่สร้างบัญชีใหม่ (เรามีรหัสประจำตัวที่ไม่ซ้ำกันสำหรับทุกบัญชีดังนั้นที่อยู่อีเมลจึงสามารถทำซ้ำได้ทั้งแบบสดและถูกลบ) สิ่งที่ฉันได้สังเกตเห็นว่าทั่วทั้งระบบของเราตามปกติของสิ่งที่เราอย่างต่อเนื่องสอบถามตารางการตรวจสอบผู้ใช้ผู้ใช้จะไม่ถูกลบในขณะที่สิ่งที่ฉันคิดคือการที่เราไม่จำเป็นต้องทำอย่างนั้นเลย ... ! [ชี้แจง 1: โดย 'ค้นหาอย่างต่อเนื่อง' ฉันหมายถึงเรามีข้อความค้นหาที่เป็นเช่น: '... จากผู้ใช้ WHERE isdeleted = "0" AND ... ' ตัวอย่างเช่นเราอาจต้องดึงข้อมูลผู้ใช้ทั้งหมดที่ลงทะเบียนสำหรับการประชุมทั้งหมดในวันที่ระบุดังนั้นในการค้นหานั้นเรายังมีผู้ใช้จากที่ไหน WHERE isdeleted = "0" - สิ่งนี้ทำให้ประเด็นของฉันชัดเจนขึ้นหรือไม่] (1) continue keeping deleted users in the 'main' users table (2) keep deleted users in a separate …

9
ข้อดีและข้อเสียของการจัดรูปแบบรหัสแบบบังคับ
ฉันกำลังทำงานในสถานที่ที่อาจมองหาการบังคับให้นักพัฒนาใช้ฟอร์แมตโค้ดอัตโนมัติในการเช็คอินการควบคุมเวอร์ชัน ฉันกำลังมองหาความคิดเห็นของนักพัฒนาเกี่ยวกับข้อดีและข้อเสียของการทำสิ่งนี้ ... วิธีที่คุณคิดว่ามันจะช่วยหรือขัดขวางนักพัฒนา กรณีเฉพาะของฉันเกี่ยวข้องกับ Java / JSP แต่ฉันคิดว่าคำถามนี้สามารถใช้ได้กับทุกภาษา

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

7
ทำให้การฝึกงานมีประสิทธิภาพมากที่สุดมีประโยชน์และสนุกสนานสำหรับทั้งสองฝ่าย [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ขณะนี้เรากำลังสัมภาษณ์ผู้สมัครไม่กี่คนสำหรับการฝึกงานซึ่งเป็นประสบการณ์ใหม่สำหรับเราในฐานะ บริษัท และสำหรับฉันในฐานะหัวหน้าทีม / ผู้จัดการ อะไรจะเป็นวิธีที่มีประสิทธิภาพและมีประโยชน์มากที่สุด แต่ก็สนุกสำหรับทั้งสองฝ่ายที่นี่? เราจะรวม 'ฝึกงาน' เข้ากับทีมพัฒนาและเวิร์กโฟลว์ของเราโดยไม่หยุดชะงักในลักษณะที่เขาหรือเธอสามารถเรียนรู้และยังเป็นประโยชน์ได้อย่างไร

6
คุณสมบัติควรมีผลข้างเคียง
คุณสมบัติใน C # ควรมีผลข้างเคียงนอกเหนือจากการแจ้งการเปลี่ยนแปลงสถานะหรือไม่? ฉันเคยเห็นคุณสมบัติที่ใช้ในหลายวิธี จากคุณสมบัติที่จะโหลดค่าในครั้งแรกที่เข้าถึงคุณสมบัติที่มีผลข้างเคียงจำนวนมากเช่นทำให้เกิดการเปลี่ยนเส้นทางไปยังหน้าอื่น
19 c# 

4
Haskell เก่งในการสอนพื้นฐานคณิตศาสตร์หรือไม่?
ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันมีส่วนร่วมในการสอนคณิตศาสตร์ให้กับชั้นเรียนที่มีข้อกำหนดเช่น AS และข้อกำหนดคณิตศาสตร์ระดับ ปกติหนังสือเรียนจะให้ตัวอย่างของซอฟต์แวร์คอมพิวเตอร์ที่ใช้กับงานคณิตศาสตร์ แต่โดยทั่วไปจะใช้ซอฟต์แวร์ประยุกต์เช่น mathlab, mathematica หรือ derive แม้ว่าจะใช้ภาษาการเขียนโปรแกรมจริงมันเป็นภาษาที่ใช้กันทั่วไปเช่น Pascal และนี่เป็นเรื่องน่าเศร้าในความคิดของฉัน เพราะ Haskell มีชื่อเสียงด้านความรู้สึกของเขาเกี่ยวกับคณิตศาสตร์และเนื่องจากฉันสนใจมันเช่นกันฉันอยากถามว่า Haskell เป็นตัวเลือกที่ดีสำหรับวิธีการออกกำลังกายแบบขยายสำหรับนักเรียนชั้นปีแรกของมหาวิทยาลัยหรือไม่ วิชาทั่วไปคือฟังก์ชั่น, caclulus, ข้อ จำกัด , แต่ยังรวมถึงพีชคณิตเชิงเส้นเช่น ฉันมีประสบการณ์ความรู้ระดับกลางในการเขียนโปรแกรม (c #, ruby, powershell, javascript, tex) และยังได้เข้าหาการเขียนโปรแกรมการทำงานกับ XSLT แล้ว คำตอบจะถูกปรับปรุงอย่างมีความรับผิดชอบ คำตอบที่ละเอียดรวมถึงตัวอย่างพื้นฐานของรหัส Haskell ที่นำไปใช้กับคณิตศาสตร์เช่นพีชคณิตเชิงเส้น (เช่นพื้นที่เวกเตอร์), ชื่อพหุนาม, การแก้สมการเชิงเส้นเป็นที่นิยมอย่างมากและมีเป้าหมายเป็นสิ่งที่ต้องการ
19 haskell 

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

6
การเขียนโปรแกรม C ในปี 2011 [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ปิดให้บริการใน6 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ดวงจันทร์จำนวนมากที่ผ่านมาฉันตัดรหัส C สำหรับการใช้ชีวิตส่วนใหญ่ในขณะที่รักษาเซิร์ฟเวอร์ POP3 ที่รองรับระบบปฏิบัติการที่หลากหลาย (Linux, * BSD, HPUX, VMS ... ) ฉันวางแผนที่จะขัดเกลาทักษะ C ของฉันและเรียนรู้เล็กน้อยเกี่ยวกับการใช้ภาษาโดยการเขียน FORTH ที่เรียบง่ายใน C แต่ฉันสงสัยว่าจะมีการเปลี่ยนแปลงอย่างไรในโลก C ตั้งแต่ปี 2000 เมื่อฉันคิดว่า C ฉันคิดว่า ... comp.lang.c ANSI C ทุกที่ที่เป็นไปได้ (แต่ C89 เป็น C99 นั้นไม่ได้รับการสนับสนุนอย่างกว้างขวาง) gcc -Wall -ansi -pedantic แทนเครื่องมือวิเคราะห์แบบคงที่ Emacs …

5
Python และ Django ยากลำบากแค่ไหนในการรับพัฒนาเว็บ Java / .NET? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันเพิ่งเริ่มงานใหม่เมื่อสองสามเดือนก่อนที่ บริษัท ขนาดเล็กที่ฉันกำลังนำการพัฒนาทั้งหมดในปัจจุบันและอนาคต โดยส่วนตัวฉันมีประสบการณ์หลายปีในการออกแบบและพัฒนาซอฟต์แวร์จาก Java ส่วนใหญ่ แต่ยังรวมถึงมุมมอง. NET ฉันเลือก. NET ในอาชีพของฉันในภายหลังได้อย่างง่ายดายและไม่ต้องมีการฝึกอบรมใด ๆ เพื่อให้ทำงานได้อย่างยอดเยี่ยมและยิ่งไปกว่านั้นมันช่วยให้ฉันเข้าใจและซาบซึ้งในความเป็นสากลของแนวปฏิบัติที่ดีที่สุดและชุดรูปแบบทั่วไป เพื่อแก้ปัญหาเดียวกัน เจ้านายของฉันมี บริษัท เริ่มต้นอยู่ด้านข้างและโดยไม่เปิดเผยข้อมูลมากเกินไปเขาต้องการเว็บแอปพลิเคชั่นที่มีความซับซ้อนพอสมควรซึ่งรวมเข้ากับ Google Maps เพื่อสร้างเส้นทาง เขาทำสัญญากับเว็บแอปพลิเคชันที่พวกเขา overpromised, underdelivered ส่วนใหญ่และวิ่งข้ามเส้นตายเขากำลังต่อสู้เพื่อพยายามกู้คืนเงินบางส่วนที่เขาลงทุน เขามีซอร์สโค้ดสำหรับไซต์ตามที่เป็นอยู่ในขณะนี้ แต่มีรายการซักผ้าของสิ่งที่เขาต้องการแก้ไขและเพิ่มก่อนที่เขาจะอยู่กับมัน เขาถามฉันว่าฉันต้องการทำสิ่งนี้ที่ด้านข้างเพื่อรับเงินพิเศษบางส่วนหรือไม่ แต่ปัญหาคือเว็บไซต์เขียนด้วย Python โดยใช้ Django ซึ่งฉันไม่มีประสบการณ์ใด ๆ เลย ฉันบอกเขาว่าฉันไม่ใช่คนที่ดีที่สุดสำหรับเรื่องนี้เพราะฉันไม่รู้อะไรเกี่ยวกับ Python หรือ Django และจะต้องเรียนรู้ตั้งแต่ต้น ฉันรู้สึกว่ามันจะไม่ยุติธรรมสำหรับฉันที่จะเรียกเก็บเงินเขาทุกชั่วโมงสำหรับเวลาของฉันถ้าฉันใช้เวลาในการเรียนรู้ภาษาและแพลตฟอร์ม จากการสรุประดับประสบการณ์ของฉันคุณจะเดาได้ยากแค่ไหนหรือใช้เวลาเท่าไหร่ หากคุณคิดว่าจะเป็นการเสียเวลาใครสามารถแนะนำข้อเสนอแนะในการหาผู้พัฒนาเว็บ Python …

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

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

3
ค่าของการใช้การควบคุมเวอร์ชันคืออะไร
ฉันยังใหม่กับการควบคุมเวอร์ชัน (ปัจจุบันใช้ SVN) แต่ฉันไม่เข้าใจว่าสิ่งนี้จะช่วยนักพัฒนาอย่างไร การควบคุมเวอร์ชันทำอะไรที่ทำให้มีประโยชน์ในสภาพแวดล้อมการพัฒนา

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