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

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

6
นักพัฒนาซอฟต์แวร์ควรได้รับอนุญาตให้ใช้ VSS หรือไม่หากเขาต้องการ
ฉันแนะนำ Mercurial กับแผนกของฉัน ฉันรักมัน แต่มันเป็นประสบการณ์การควบคุมเวอร์ชันแรกของฉัน ฉันใช้กับ NetBeans PHP เพื่อการพัฒนาเว็บ นักพัฒนาอื่นที่ทำงานกับแอปพลิเคชันภายใน บริษัท ชอบใช้ Visual Source Safe และไม่ต้องการเปลี่ยน เขาทำงานในสภาพแวดล้อม Visual Studio ผู้พัฒนารายอื่นทั้งหมดได้ซื้อเข้าสู่ Mercurial ยกเว้นอันนี้ ส่วนใหญ่เราทำงานค่อนข้างอิสระ ฉันกำลังพยายามย้ายแผนกนี้ไปในทิศทางที่ถูกต้องฉันได้ตั้งค่าทุกคนด้วยบัญชีใน Kiln ฉันหวังว่าจะให้ทุกคนใช้ Fogbugz ตามถนนด้วย (เนื่องจากปัจจุบันยังไม่มีฐานข้อมูลบั๊กที่ถูกดูแล) ไม่เคยใช้ VSS แต่ฉันได้ยินสิ่งเลวร้ายมากเกี่ยวกับเรื่องนี้ จะดีกว่าไหมถ้าให้เขาใช้ VSS ต่อไปถ้านั่นคือสิ่งที่เขาต้องการหรือจะเป็นประโยชน์กับเขามากที่สุดถ้าได้ Mercurial?

6
โปรแกรมเมอร์ฐานข้อมูลทำอะไร
ทุกครั้งที่ฉันอ่านเกี่ยวกับโปรแกรมเมอร์ของออราเคิล ฯลฯ ฉันสับสน ฉันไม่รู้ว่าพวกเขาทำอะไรกันแน่ จากความเข้าใจของฉันโปรแกรมเมอร์แอปพลิเคชันจำเป็นต้องพัฒนาฟังก์ชั่นหลัก ไลบรารีที่ใช้อาจช่วยในการพัฒนา GUI หรือการเชื่อมต่อฐานข้อมูล แต่ฟังก์ชันการทำงานที่ทำให้แอปพลิเคชันนั้นต้องมีการตั้งโปรแกรมและทำให้ทุกแอปพลิเคชันแตกต่างกัน (บางอันอาจเป็น tweaked เวอร์ชันอื่น ๆ ) ในความสัมพันธ์นี้การเขียนโปรแกรมฐานข้อมูลไม่ใช่การสร้างตารางโดยทั่วไปและไม่ใช่ตารางเหล่านี้ที่ประมวลผลตามคำสั่ง SQL ที่ออกโดยแอปพลิเคชันซึ่งมักจะเป็นส่วนหน้าใช่ไหม ดังนั้นการสร้างตารางจึงเป็นเรื่องใหญ่

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

9
Ubuntu สามารถใช้งานได้กับแล็ปท็อปสำหรับที่ปรึกษาด้านไอทีหรือไม่
ฉันทำงานเป็นโปรแกรมเมอร์ที่ปรึกษาซึ่งโดยปกติจะเป็นธุรกิจขนาดใหญ่ ฉันใช้แล็ปท็อป Windows และเพื่อนร่วมงานหลายคนใช้ Mac ความชอบส่วนตัวของฉันคือการใช้ Ubuntu ถ้าฉันสามารถควบคุมสภาพแวดล้อมการพัฒนาของฉันได้อย่างสมบูรณ์ แต่ฉันจะต้องการผลิตภัณฑ์เฉพาะของ Microsoft เป็นครั้งคราวโดยเฉพาะ IE เพื่อนร่วมงานของฉันที่ใช้ Mac มักใช้ Windows บนเครื่องเสมือนสำหรับสถานการณ์เหล่านี้ คำถามของฉันคือ Ubuntu เป็นวิธีแก้ปัญหาที่สามารถใช้งานได้กับแล็ปท็อปของโปรแกรมเมอร์ระดับองค์กรหรือไม่ ตัวอย่างเช่นมันใช้งาน Windows บน VM บน Ubuntu ได้ง่ายเหมือนบน Mac หรือไม่? มีใครลองทำไหม? มีเหตุผลใดที่ทำให้ Ubuntu ไม่รองรับ Mac ในการพัฒนาในสภาพแวดล้อมนี้หรือไม่? โปรดทราบว่าฉันไม่ได้พัฒนา. NET ดังนั้นฉันมักจะจัดการกับ Java ที่กำลังจะทำงานบนเซิร์ฟเวอร์ Apache และลูกค้าที่ใช้ Windows ใช้

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

1
วิธีการประกาศเหตุการณ์ที่ต้องการ
ฉันค่อนข้างมีความสุขกับความเข้าใจโมเดลเหตุการณ์. NET ฉันคิดว่าฉันอาจเข้าใจผิดถึงความแตกต่างเล็กน้อยของระบบ เมื่อฉันเริ่มวางกิจกรรมลงในชั้นเรียนของฉันฉันจะใช้วิธีมาตรฐานดังนี้: public event EventHandler<MyEventArgs> MyEvent; นี่หมายความว่าทุกสิ่งที่สมัครรับกิจกรรมจะต้องมีวิธีการดังนี้: void HandleThatEvent(object sender, MyEventArgs args){...} ซึ่งเป็นสิ่งที่ดี แต่ฉันพบว่าฉันไม่ค่อยสนใจผู้ส่งดังนั้นจึงทำให้มีวิธีการมากมายในการลงลายมือชื่อ ดังนั้นฉันจึงเปลี่ยนเป็นการประกาศประเภทตัวแทนของฉันเอง public delegate void MyEventHandler(SomeClass argument); ซึ่งลดความยุ่งเหยิง แต่ทิ้งฉันด้วยปัญหาเล็ก ๆ เมื่อมันมาถึงการเขียนจัดการ: eventImplmentor.MyEvent += HandleThatEvent; . . . void HandleThatEvent(/*oh, um, what arguments does it take? Intellisense isn't telling me*/) ดังนั้นฉันจะต้องกลับไปที่การประกาศของผู้ได้รับมอบหมายและมองแล้วกลับไปและเขียนพวกเขาในหรือรวบรวมและรอที่จะบอก ดังนั้นตอนนี้แทนฉันเพียงแค่ใช้Action, Action<T>หรือสิ่งที่เหมาะกับแม่แบบ public event Action<SomeClass> …
14 c# 

4
เทคนิค bit-wise ที่คุณชื่นชอบคืออะไร? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ไม่กี่วันที่ผ่านมาสมาชิกของ StackExchange Anto ได้สอบถามเกี่ยวกับการใช้งานที่ถูกต้องสำหรับตัวดำเนินการบิตที่ชาญฉลาด ฉันระบุว่าการขยับเร็วกว่าการคูณและหารจำนวนเต็มด้วยพลังของสอง Daemin สมาชิก StackExchange โต้กลับโดยระบุว่าการเปลี่ยนทางขวานำเสนอปัญหาด้วยจำนวนลบ ณ จุดนี้ฉันไม่เคยคิดที่จะใช้ตัวดำเนินการ shift กับจำนวนเต็มที่ลงนามแล้ว ฉันใช้เทคนิคนี้เป็นหลักในการพัฒนาซอฟต์แวร์ระดับต่ำ ดังนั้นฉันมักจะใช้จำนวนเต็มไม่ได้ลงนาม C ดำเนินการทางตรรกะกับจำนวนเต็มที่ไม่ได้ลงนาม ไม่มีการจ่ายความสนใจให้กับบิตลงชื่อเมื่อดำเนินการเลื่อนตรรกะอย่างถูกต้อง บิตที่ว่างจะถูกเติมด้วยค่าศูนย์ อย่างไรก็ตาม C ดำเนินการกะการคำนวณทางคณิตศาสตร์เมื่อเลื่อนจำนวนเต็มทางขวาที่ลงนาม บิตที่ว่างจะถูกเติมด้วยบิตเครื่องหมาย ความแตกต่างนี้ทำให้ค่าลบถูกปัดเศษเป็นอนันต์แทนที่จะถูกปัดเศษเป็นศูนย์ซึ่งเป็นพฤติกรรมที่แตกต่างจากการหารจำนวนเต็มที่ลงนามแล้ว ความคิดเพียงไม่กี่นาทีส่งผลให้เกิดโซลูชั่นอันดับหนึ่ง วิธีการแก้ปัญหาแปลงค่าลบให้เป็นค่าบวกก่อนที่จะขยับ ค่าจะถูกแปลงแบบมีเงื่อนไขกลับสู่รูปแบบลบหลังจากดำเนินการกะแล้ว int a = -5; int n = 1; int negative = …

12
แนวปฏิบัติที่ดีที่สุดในปัจจุบันที่ได้รับการยอมรับเกี่ยวกับคำสำคัญ“ นี้” ที่อยู่หน้าฟิลด์และวิธีการใน c # คืออะไร
หากไม่จำเป็นต้องแยกแยะความแตกต่างระหว่างตัวแปรและฟิลด์ด้วยชื่อเดียวกันฉันไม่เคยใส่this.หน้าฟิลด์หรือการเข้าถึงสมาชิกใด ๆ ใน C # ฉันเห็นว่านี่ไม่ต่างจากm_คำนำหน้าซึ่งเคยเป็นเรื่องปกติใน C ++ และคิดว่าถ้าคุณต้องการระบุว่าเป็นสมาชิกคลาสของคุณใหญ่เกินไป อย่างไรก็ตามมีคนจำนวนมากในสำนักงานของฉันที่ไม่เห็นด้วยอย่างยิ่ง สิ่งที่ถือว่าเป็นแนวทางปฏิบัติที่ดีที่สุดในปัจจุบันเกี่ยวกับthis.อะไร? แก้ไข: เพื่อชี้แจงฉันไม่เคยใช้m_และใช้เฉพาะthis.เมื่อจำเป็นจริงๆ
14 c#  coding-style 

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

5
ทำไมเราต้องการความปลอดภัยระดับวิธี?
ในโลกแห่งความจริงทำไมเราต้องใช้การรักษาความปลอดภัยระดับวิธีการ? เรามีเว็บแอปพลิเคชันหรือแอปพลิเคชันเดสก์ท็อปที่ผู้ใช้เข้าถึงส่วนต่อประสานผู้ใช้ (และไม่สามารถเข้าถึงวิธีการได้โดยตรง) ดังนั้นการเข้าถึงวิธีที่เข้ามาในรูปภาพโดยตรงที่นี่? แก้ไข: ฉันถามคำถามนี้เพราะฉันกำลังทดสอบความปลอดภัยของฤดูใบไม้ผลิและฉันเห็นผู้ใช้อนุญาตให้เข้าถึงวิธีการ สิ่งที่ต้องการ : @ROLE_ADMIN public void update() { //update }
14 security 

5
หน่วยทดสอบสำหรับ csv parser
ฉันควรใช้การทดสอบใดในการทดสอบตัวแยกวิเคราะห์ csv ฉันมีตัวแยกวิเคราะห์ csv อย่างง่ายใน C # และฉันต้องการให้แน่ใจว่าฉันมีการทดสอบหน่วยครอบคลุมทุกกรณีขอบ (และผิดปกติ) ทั่วไป ฉันควรใช้การทดสอบประเภทใดเพื่อระบุปัญหาที่อาจเกิดขึ้นและคดีเขตแดน
14 testing  parsing 

6
สถานการณ์ในโลกแห่งความเป็นจริงสำหรับวิธีการป้องกัน
วันนี้ฉันสังเกตเห็นว่าโดยทั่วไปฉันไม่เคยใช้protectedวิธีการในรหัส C ++ เพราะฉันไม่ค่อยรู้สึกว่าจำเป็นต้องเรียกวิธีการที่ไม่ใช่แบบสาธารณะของผู้ปกครอง ฉันใช้การป้องกันใน Java ในรูปแบบวิธีการแม่แบบ แต่เนื่องจากคุณสามารถแทนที่วิธีส่วนตัวใน C ++ ฉันไม่จำเป็นต้องprotectedมี ดังนั้นสถานการณ์จริงที่ฉันต้องการใช้protectedวิธีการในรหัส C ++ คืออะไร (โปรดทราบว่าฉันไม่ชอบการนำมรดกไปใช้โดยทั่วไปซึ่งอาจอธิบายได้มาก ... )

7
มารยาทที่มาเปิด
ฉันเริ่มทำงานในโครงการโอเพนซอร์สแห่งแรกของฉันบน Codeplex และเจอรหัสที่แย่มาก (ฉันเรียนรู้ว่า C # ยังคงมีคำสั่ง "goto") ฉันเริ่มเพิ่มคุณสมบัติที่ "เจ้าของ" ต้องการและหลังจากสำรวจรหัสฐานและเห็นว่ามันยุ่งเหยิง (เช่นใช้ "goto") ฉันต้องการทำความสะอาด นิดหน่อย. แต่ฉันเป็นกังวลเล็กน้อยและนั่นคือเหตุผลที่ฉันหันไปหาคุณทุกคน: มันเป็นมารยาทที่เหมาะสมสำหรับฉันที่จะ "แก้ไข" "รหัสไม่ดี" หรือฉันควรปล่อยให้มันเป็นและทำงานกับคุณสมบัติใหม่หรือไม่? อย่างที่ฉันพูดไว้ก่อนหน้านี้ฉันยังใหม่กับฉาก OSS ทั้งหมดและทำงานเป็นทีมโดยทั่วไปดังนั้นฉันจึงไม่ต้องการทำให้ยุ่งเหยิง

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

2
คำแนะนำสำหรับไลบรารี GUI ใน Haskell [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ในฐานะที่เป็นHaskell Wiki ระบุว่า : มีไลบรารี GUI จำนวนมากสำหรับ Haskell น่าเสียดายที่ไม่มีมาตรฐานใด ๆ เลยและทั้งหมดนั้นไม่สมบูรณ์ไม่มากก็น้อย โดยทั่วไปแล้วแผ่นไม้อัดระดับต่ำจะทำได้ดี แต่ก็มีระดับต่ำ abstractions ระดับสูงเป็นการทดลองที่ค่อนข้างดี ไม่จำเป็นต้องมีไลบรารี GUI ระดับกลางที่รองรับ อาจารย์ที่วิทยาลัยของฉันขอให้ฉันและวิชาเอกวิทยาการคอมพิวเตอร์อีกสามคนพิจารณาที่จะทำงานในห้องสมุด GUI สำหรับ Haskell ความคิดเริ่มต้นของเขาสำหรับโครงการคือการเขียนเลเยอร์บน OpenGL ที่เลียนแบบมอร์ฟิคไลบรารีที่พบใน Smalltalk ; อย่างไรก็ตามนี่เป็นเพียงข้อเสนอแนะและระบบอื่น ๆ ก็เป็นสิ่งที่ควรค่าแก่การพิจารณา นี่นำเราไปสู่คำถามที่เกิดขึ้นจริงและมีหลายส่วน ห้องสมุดของเรามุ่งมั่นในระดับใด Haskell Wiki ดูเหมือนจะบ่งบอกอย่างชัดเจนว่าต้องการ GUI ไลบรารีระดับกลาง อย่างไรก็ตามยินดีต้อนรับสู่ห้องสมุดระดับสูง ห้องสมุดของเราควรสร้างอะไร …

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