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

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

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

5
ความแตกต่างระหว่างตัวจัดการโปรแกรมและตัวจัดการโครงการคืออะไร?
ผู้จัดการโครงการเป็นคนที่จัดการหลายโครงการ (ภายใต้โปรแกรมเดียว) ซึ่งจัดการโดยผู้จัดการโครงการหรือไม่ หรือเป็นผู้จัดการโครงการของบุคคลตามที่กำหนดโดยโจ Spolsky ที่นี่ หมายเหตุ:ผมไม่ได้หมายถึงนี้

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

2
แนวปฏิบัติที่ดีทุกครั้งที่เริ่มต้นควรปฏิบัติตาม [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา เพื่อนสองคนในที่ทำงานและฉันกำลังจะตั้งค่าเริ่มต้นเล็กน้อย / สร้างซอฟต์แวร์ของเราเองอาจจะเป็นแสงจันทร์ในตอนแรกเนื่องจากเราไม่สามารถที่จะออกจากงานประจำวันของเรา เราทั้งคู่ไม่เคยมีประสบการณ์นี้เราเคยทำงานให้กับ บริษัท อื่นมาก่อนซึ่งมีการกำหนดแนวทางปฏิบัติและฉันคิดว่านี่เป็นเวลาที่จะสร้างแนวทางปฏิบัติที่ดีที่จะปฏิบัติตาม (เช่นหลีกเลี่ยงการประชุม) สำหรับคนที่ไปทางนี้คุณจะให้คำแนะนำอะไรกับเรา? ฉันกำลังมองหาด้านเทคนิคของสิ่งต่าง ๆ เช่น: มันคุ้มค่าหรือไม่ที่จะมีเซิร์ฟเวอร์แบบบิลด์หรือว่ามันจะไปไกลแค่ไหน? คุณจะทำ TDD อย่างกว้างขวางหรือคุณคิดว่ามันจะเป็นค่าใช้จ่ายที่มากเกินไปสำหรับทีมเล็ก ๆ ที่ไม่มีประสบการณ์กับมันมากเกินไป? แต่จะไม่รังเกียจที่จะฟังการจัดการของสิ่งต่าง ๆ โปรเจ็กต์นี้เป็นเว็บแอปพลิเคชันที่ทำใน ASP.NET MVC ฉันคิดว่าจะใช้ Mercurial และ BitBucket หรือ Kiln + FogBugz หรือเครื่องมือติดตามโครงการออนไลน์อื่น ๆ เนื่องจากเรากำลังจะทำงานจากระยะไกล

9
ในประวัติย่อสิ่งที่ทุกคนถือเป็นภาษาการเขียนโปรแกรม [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ในเรซูเม่ของคุณสิ่งที่คุณจะจัดเป็นภาษาการเขียนโปรแกรม? ตัวอย่างเช่นภายใต้ Programming ภาษา (หรือหัวข้อที่คล้ายกันของเรซูเม่ของคุณ) คุณแสดงรายการ C #, Java, C และปล่อยไว้ที่นั้นหรือคุณไปและเพิ่ม XML (เพราะเป็น eXtensible Markup Language) และ XSLT และ jQuery และทั้งหมดนั่นด้วยหรือไม่ หากคุณไม่ต้องการเพิ่ม jQuery ภายใต้ภาษาคุณจะใส่มันไว้ตรงไหน? การแก้ปัญหาที่ขัดแย้งกันนี้จะนำมาใช้ในเทคโนโลยีที่คุณใช้ภายใต้โครงการ แต่ด้วยวิธีนี้คุณจะบังคับให้ผู้สรรหาเข้าร่วมในโครงการที่คุณทำแทนที่จะให้ความสำคัญกับเทคโนโลยีและภาษาที่คุณคุ้นเคย . คุณคิดยังไง?

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

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

3
ค้นหาบนไซต์จ้างงานโครงการออนไลน์
ฉันได้ดู RentACoder, Freelancer และ eLance จากไม่กี่ปีที่ผ่านมา แต่ฉันลังเลที่จะลงทะเบียนที่เว็บไซต์เหล่านี้ ความลังเลรวมถึงความกังวลเล็กน้อยเช่นกัน คำถามเหล่านี้เติมฉัน: (1) มีสัญญาทางกฎหมายระหว่างผู้ประมูลกับผู้ให้รหัสหรือไม่? ในกรณีที่วันส่งมอบของฉันขยายเกิดอะไรขึ้น (2) หลังจากส่งมอบการชำระเงินถึงโดยไม่มีปัญหาหรือไม่ (3) ในกรณีที่ลูกค้าไม่พบโครงการที่มีประโยชน์แล้ว? อาจเป็นไปได้ว่าเขาอาจบอกว่ามันไม่มีประโยชน์สำหรับฉันและคุณคืนเงินให้ เขาอาจคัดลอกซอร์สโค้ดและส่งคืนสำเนาอื่นให้ฉัน (4) คำแนะนำเพิ่มเติมคืออะไร ฉันจะเริ่มได้อย่างไร

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

3
การพัฒนาภาษาเช่น Python และ Perl ได้รับเงินสนับสนุนอย่างไร? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ชื่อค่อนข้างจะช่วยให้คุณมีส่วนสำคัญของคำถาม แต่ให้ฉันอธิบายเล็กน้อย นอกเหนือจากการมีส่วนร่วมของ Google ใน Python และ Activestate เกี่ยวกับการพัฒนา Perl (Strawberry AFAIK ไม่ทำเงินใด ๆ กับผลิตภัณฑ์ของตัวเอง) ฉันสนใจในสิ่งที่เป็นแหล่งเงินทุนที่สำคัญเช่นนี้ มีข้อความใดบ้างที่ครอบคลุมสิ่งนี้? ฉันพยายามค้นหา แต่ไม่พบสิ่งใดนอกจาก "ประวัติของ" และ "มันเป็นโอเพนซอร์สทุกคนให้ใน" ...
9 python  perl 

3
เมื่อพิจารณาการเปลี่ยนแปลงที่สอดคล้องกันระยะเวลาการวางแผนสั้นเกินไปนั้นสั้นเกินไป?
การเปลี่ยนแปลงไม่ใช่เรื่องผิดปกติการเปลี่ยนแปลงข้อกำหนดการเปลี่ยนแปลงรายละเอียดในเวิร์กโฟลว์ ฉันยอมรับว่าจะมีการเปลี่ยนแปลง แต่ฉันสงสัยว่า: การรู้ว่าการเปลี่ยนแปลงจะเกิดขึ้นระยะเวลาการวางแผนสั้นเกินไป? (สนับสนุนเหตุผล) ซ้ำ (2-4 สัปดาห์)? สัปดาห์? ระยะเวลา 2-3 วัน? วันหนึ่ง? 1/2 วัน สมมติว่า บริษัท 'แผน' 1 [ช่วงเวลา (จากด้านบน)] ล่วงหน้าจากปัจจุบันเพื่อให้แผนใด ๆ ที่ดูเหมือน: "[เช้านี้ / วัน / สัปดาห์นี้ / etc.] คุณจะทำงานในนี้และ [นี้ช่วงบ่าย / พรุ่งนี้ / สัปดาห์ถัดไป / etc.] คุณจะทำงานในที่ นอกจากนี้สมมติว่าการเปลี่ยนแปลงในโฟกัส / ทิศทางจะเกิดขึ้นอย่างสม่ำเสมอทุกช่วงเวลาสองถึงสามครั้ง

11
วิธีการติดตามการพัฒนาแอปพลิเคชันที่กำหนดเป้าหมายหลายแพลตฟอร์ม
สำหรับแอปพลิเคชันที่กำหนดเป้าหมายหลายแพลตฟอร์มฉันเห็นสองแนวทางการพัฒนา - ใช้แพลตฟอร์มการพัฒนาแบบ JAVA มีโซลูชันรหัสเดียวและให้รันไทม์ระดับกลางจัดการแพลตฟอร์มที่แตกต่างกัน หากมีสิ่งใดผิดพลาดในแพลตฟอร์มใด ๆ ให้ปรับแต่งโค้ดเล็กน้อย แต่เก็บไว้เหมือนกันสำหรับทุกคน สร้างรหัสแยกส่วนตรรกะหลักและ UI พัฒนา UIs แยกต่างหากสำหรับแพลตฟอร์มที่เกี่ยวข้องซึ่งจะเรียกไลบรารีหลักเดียวกัน สร้างแอปพลิเคชันแยกต่างหากสำหรับแต่ละแพลตฟอร์มเป้าหมาย ดังนั้นอันไหนที่ควรติดตาม? ฉันรู้คำตอบจะเริ่มต้นด้วย " มันขึ้นอยู่กับ " แต่ฉันต้องการฟังความคิดเห็นของคุณเกี่ยวกับวิธีการเหล่านี้และปัจจัยที่ต้องพิจารณาเพื่อเลือกสิ่งใด

1
เรียน String ตามกราฟ?
ฉันสงสัยว่าทำไมเราไม่มีคลาสสตริงที่แสดงสตริง Unicode grapheme clusters แทนที่จะเป็นรหัสจุดหรือตัวอักษร สำหรับฉันแล้วดูเหมือนว่าในแอปพลิเคชั่นส่วนใหญ่มันจะง่ายกว่าสำหรับโปรแกรมเมอร์ที่จะเข้าถึงส่วนประกอบของกราฟเมื่อจำเป็นกว่าที่จะต้องจัดระเบียบมันจากจุดรหัสซึ่งดูเหมือนจำเป็นแม้ว่าจะหลีกเลี่ยงการทำลายสตริงใน "mid-grapheme" (อย่างน้อยก็ในทางทฤษฎี) ภายในคลาสสตริงอาจใช้การเข้ารหัสความยาวตัวแปรเช่น UTF-8, UTF-16 หรือในบริบทนี้แม้ UTF-32 คือความยาวตัวแปร หรือใช้คลาสย่อยสำหรับพวกเขาทั้งหมด (และกำหนดค่าตัวเลือกในขณะใช้งานเพื่อให้ภาษาต่าง ๆ สามารถใช้การเข้ารหัสที่เหมาะสมที่สุด) แต่ถ้าโปรแกรมเมอร์สามารถ "เห็น" หน่วยกราฟเมื่อตรวจสอบสตริงจะไม่ '

6
ฉันควรเรียนรู้ java สำหรับการพัฒนาแอปพลิเคชันมือถือหรือ C # จะต้องทำอย่างไร
ฉันรอคอยที่จะเจาะลึกลงใน. NET Framework แต่แอปพลิเคชันมือถือส่วนใหญ่ดูเหมือนจะได้รับการพัฒนาใน Java ฉันอาจจะกำหนดเป้าหมายโทรศัพท์ที่มีค่าน้อยกว่าอย่าง Nokia และ motorolla ไม่ใช่ android หรือ iphone OS ฉันสามารถทำสิ่งเหล่านี้ใน C # ได้หรือไม่?
9 java  c#  mobile 

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

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