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

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

6
ประโยชน์ของชื่อพารามิเตอร์ฟังก์ชันคำนำหน้าด้วย p * คืออะไร
ฉันมักจะเห็นโครงการ (ในโครงการ Java และทีมงานใช้ Eclipse) pที่พารามิเตอร์ฟังก์ชั่นที่มีคำนำหน้า ตัวอย่างเช่น public void filter (Result pResult) ... โดยส่วนตัวฉันไม่เห็นประโยชน์ใด ๆ ในเรื่องนี้ แต่ต้องการทราบว่าการให้เหตุผลคืออะไร คำอธิบายที่ดีที่สุดที่ฉันเคยได้ยินคือการแยกชื่อของฟิลด์ที่มีชื่อเหมือนกันฉันมีปัญหากับคำอธิบายนั้น แต่ฉันสามารถเข้าใจประเด็นได้

8
เหตุใดระบบควบคุมแหล่งข้อมูลจึงยังคงสำรองข้อมูลส่วนใหญ่อยู่
ดูเหมือนว่าระบบควบคุมแหล่งข้อมูลเพิ่มเติมยังคงใช้ไฟล์เป็นวิธีการจัดเก็บข้อมูลรุ่น Vault และ TFS ใช้ Sql Server เป็นแหล่งข้อมูลซึ่งฉันคิดว่าจะดีกว่าสำหรับความสอดคล้องของข้อมูลและความเร็ว ดังนั้นทำไม SVN ฉันเชื่อว่า GIT, CVS และอื่น ๆ ยังคงใช้ระบบไฟล์เป็นฐานข้อมูลเป็นหลัก (ฉันถามคำถามนี้เพราะเรามีเซิร์ฟเวอร์ SVN ของเราเพียงเสียหายในช่วงคอมมิชชันปกติ) แทนที่จะใช้ซอฟต์แวร์ฐานข้อมูลจริง ( MSSQL, Oracle, Postgre, ฯลฯ )? แก้ไข: ฉันคิดว่าอีกวิธีหนึ่งในการถามคำถามของฉันคือ "ทำไมนักพัฒนา VCS จึงหมุนระบบจัดเก็บข้อมูลของตนเองแทนที่จะใช้ระบบที่มีอยู่?"

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

5
จะจัดการกับสถานการณ์ที่ไม่น่าเป็นไปได้ในสถานการณ์สมมตินี้กับผู้ใช้ปลายทางอย่างไร?
ฉันทำงานใน บริษัท ขนาดกลาง แต่ใช้งานไอทีเพียงเล็กน้อย ปีที่แล้ว (2011) ฉันเขียนแอปพลิเคชันที่ได้รับความนิยมอย่างมากกับกลุ่มผู้ใช้ปลายทางจำนวนมาก เรามีกำหนดส่งถึงสิ้นปีที่แล้วและฟังก์ชั่นบางอย่าง (ฉันจะเรียก funcA นับจากนี้เป็นต้นไป) ไม่ได้ถูกเพิ่มเข้าไปในแอปพลิเคชันที่ต้องการในตอนท้าย ดังนั้นแอปพลิเคชันนี้ทำงานในการแสดงสด / ผลิตตั้งแต่ปลายปี 2011 ฉันอาจเพิ่มโดยไม่มีปัญหา เมื่อวานนี้ผู้ใช้กลุ่มทั้งหมดเริ่มบ่นว่า funcA ที่ไม่เคยอยู่ในแอปพลิเคชันไม่ทำงานอีกต่อไป ลำดับความสำคัญของเราที่ บริษัท นี้คือหากใบสมัครถูกทำลายจะต้องได้รับการแก้ไขก่อนที่จะจัดลำดับความสำคัญของโครงการ ฉันเปรียบเทียบโค้ดและข้อความค้นหาและไม่มีความแตกต่างตั้งแต่ปี 2011 ซึ่งเป็น ProofA จากนั้นฉันก็สามารถรับหนึ่งในผู้ใช้ปลายทางที่จะยอมรับว่ามันไม่ทำงานพิสูจน์ข แต่หลังจากนั้นผู้ใช้ปลายทางก็กลับไปและบอกว่ามันใช้งานได้ก่อนหน้านี้ ... ฉันเชื่อว่าฝูงชนของผู้ใช้ปลายทางได้หลอมรวม เธอ ฉันยังได้ตรวจสอบบันทึกย่อของฉันสำหรับโครงการนี้ซึ่งมีข้อกำหนดและอัพเดทรายวันเกี่ยวกับโครงการที่ระบุว่า "funcA ไม่ประสบความสำเร็จเนื่องจากข้อ จำกัด ด้านเวลา", proofC ฉันได้พูดกับพวกเขาหลายคนและฉันสามารถดูว่าพวกเขาอาจจะสับสนเพราะพวกเขาอยู่ไกลจากพื้นหลังการเขียนโปรแกรม แต่ฉันก็รู้ว่าพวกเขามีความฉลาดพอที่จะทำในกลุ่มเพื่อหลีกเลี่ยงคำสั่งจัดลำดับความสำคัญของโครงการ ฟังก์ชั่นที่พวกเขาต้องการทำให้งานของพวกเขาง่ายขึ้น ส่วนที่แย่ที่สุดคือตอนนี้กลุ่มคิดว่ามีการตั้งค่าและหัวหน้าของฉันและหัวหน้าฝ่ายไอทีก็เริ่มเชื่อพวกเขาแม้ว่าจะไม่มีการเปลี่ยนแปลงรหัสหรือการสืบค้น เท่าที่ตรวจสอบสถานะของตรรกะมันถูกตัดและแห้งไปจนถึงจุดที่ 1 = 1 funcA จะไม่ทำงาน ดังนั้นนี่คือจุดสิ้นสุดของคำอธิบายของสถานการณ์ของฉัน แต่ฉันพยายามที่จะไม่ทำ …

6
ฉันจะทดสอบรหัสทดสอบได้อย่างไร
หนึ่งในสองสามสิ่งที่นักพัฒนาซอฟต์แวร์ส่วนใหญ่เห็นด้วยคือคุณไม่ควรใช้โค้ดในการทำงานอย่างถูกต้องเว้นแต่คุณจะทดสอบ หากคุณไม่ทดสอบอาจมีข้อบกพร่องซ่อนเร้นที่จะทำให้คุณทำงานได้มากขึ้น ฉันเข้าใจวิธีทดสอบรหัสปกติของฉัน แต่ฉันควรทดสอบรหัสทดสอบอย่างไรเพื่อให้แน่ใจว่าสามารถค้นหาและรายงานข้อผิดพลาดได้อย่างมีประสิทธิภาพเมื่อมี โดยส่วนตัวฉันโง่พอที่จะเขียนกรณีทดสอบที่ผิดพลาดซึ่งจะเกิดขึ้นเมื่อไม่ควรทำดังนั้นจึงต้องเอาชนะวัตถุประสงค์ของการทดสอบการเขียนของฉันตั้งแต่แรก โชคดีที่ฉันพบและแก้ไขข้อผิดพลาดในเวลา แต่ตามการทดสอบมนต์ดูเหมือนว่าไม่มีชุดทดสอบจะเสร็จสมบูรณ์โดยไม่ต้องมีชุดทดสอบของตัวเองเพื่อให้แน่ใจว่ามันทำงานได้ สำหรับฉันดูเหมือนว่าวิธีที่ดีที่สุดในการทำเช่นนี้คือเพื่อให้แน่ใจว่าการทดสอบล้มเหลวสำหรับรหัสบั๊กกี้ * ถ้าฉันใช้เวลา 2 นาทีสลับกันเพิ่มข้อผิดพลาดในรหัสและทำให้แน่ใจว่าล้มเหลวฉันควรมีความมั่นใจในระดับที่ยอมรับได้ว่า การทดสอบ 'ทำงาน' สิ่งนี้นำมาสู่คำถามที่สองของฉัน: อะไรคือวิธีที่ดีในการแนะนำข้อบกพร่องเพื่อให้แน่ใจว่าพวกเขาถูกจับในกรณีทดสอบ? ฉันควรสุ่มแสดงความคิดเห็นงบตรวจสอบให้แน่ใจว่าสาขาที่ไม่ถูกต้องของการif-elseเรียกใช้โดยปฏิเสธสภาพของมันและเปลี่ยนลำดับการดำเนินการของรหัสที่มีผลข้างเคียง ฯลฯ จนกว่าฉันจะพอใจการทดสอบของฉันจะจับมากที่สุดโรคจิตที่พบบ่อย? นักพัฒนามืออาชีพตรวจสอบว่าการทดสอบทำในสิ่งที่ควรทำอย่างไร พวกเขาแค่คิดว่าการทดสอบทำงานหรือพวกเขาใช้เวลาในการทดสอบเช่นกัน? ถ้าเป็นเช่นนั้นพวกเขาจะทำการทดสอบอย่างไร ฉันไม่ได้แนะนำให้ผู้คนควรใช้เวลามากในการทดสอบการทดสอบแล้วทดสอบการทดสอบเพื่อทดสอบว่าพวกเขาไม่เคยเขียนรหัสจริง แต่ฉันได้ทำสิ่งที่โง่พอที่ฉันรู้สึกว่าฉันจะได้ประโยชน์จากนิดหน่อย ของ 'การทดสอบ meta' และอยากรู้เกี่ยวกับวิธีที่ดีที่สุดที่จะไปเกี่ยวกับมัน : D * ฉันสามารถตรวจสอบเพื่อดูว่าการทดสอบผ่านเมื่อการทดสอบรหัส 'ปราศจากข้อผิดพลาด' แต่การใช้รหัสเป็นข้อมูลจำเพาะสำหรับการทดสอบดูค่อนข้างย้อนหลัง ...

16
ฉันจะทราบได้อย่างไรว่าการเขียนโปรแกรมเหมาะสมกับฉัน [ปิด]
ต้องการปรับปรุงโพสต์นี้หรือไม่? ให้คำตอบโดยละเอียดสำหรับคำถามนี้รวมถึงการอ้างอิงและคำอธิบายว่าทำไมคำตอบของคุณถึงถูกต้อง คำตอบที่ไม่มีรายละเอียดเพียงพออาจแก้ไขหรือลบออกได้ ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน7 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันมีพื้นฐานด้านไอทีและค่อนข้างมั่นใจจนกระทั่งมีโอกาสมาทำงานในการเขียนโปรแกรม (C #) ฉันไม่เคยตั้งโปรแกรมก่อนหน้านี้และซอฟต์แวร์ที่ฉันกำลังเขียนโปรแกรมเป็นโปรแกรมที่ฉันไม่เคยใช้มาก่อน (ซอฟต์แวร์การสร้างแบบจำลอง 3 มิติ) 6 เดือนหลังจากนั้นและฉันรู้สึกอยากยอมแพ้ ฉันไม่ได้รับการฝึกอบรมมากนัก ... ประมาณ 3 สัปดาห์ของการฝึกอบรมที่เผยแพร่ในช่วง 6 เดือนที่ผ่านมา ฉันคิดว่าฉันจะเขียนโปรแกรมเก่ง แต่ประสบการณ์นี้ทำให้ฉันคิดใหม่เกี่ยวกับการตัดสินใจของฉัน ฉันไม่แน่ใจว่ามันเป็นเพียงฉันหรือความยุ่งยากนี้เป็นเรื่องปกติ ฉันจะทราบได้อย่างไรว่าการเขียนโปรแกรมเหมาะสมกับฉัน
22 learning 

7
ค่าของเครื่องมือเวิร์กโฟลว์คืออะไร? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันยังใหม่ต่อการพัฒนาของ Workflow และฉันไม่คิดว่าฉันจะได้รับ "ภาพรวมขนาดใหญ่" หรือบางทีอาจจะพูดให้แตกต่างกันเครื่องมือเหล่านี้ไม่ได้ "คลิก" ในหัว ดังนั้นดูเหมือนว่า บริษัท ต้องการสร้างแบบธุรกิจเพื่ออธิบายกระบวนการและในบางคนตัดสินใจว่าพวกเขาสามารถใช้เครื่องสถานะเช่นโปรแกรมเพื่อควบคุมกระบวนการจากเส้นและกล่องเช่นไดอะแกรม สิบปีต่อมาเครื่องมือเหล่านี้มีขนาดใหญ่และซับซ้อนมาก (บริษัท ของฉันกำลังเล่นกับ WebSphere และฉันได้เข้าร่วมการฝึกอบรมเป็นสัตว์ประหลาดแม้กระทั่งเครื่องมือเวิร์กโฟลว์รุ่นที่เรียกว่า "minimalist" เช่น Activiti มีขนาดใหญ่และซับซ้อนแม้ว่าจะไม่ซับซ้อนเท่ากับสัตว์ร้ายที่เป็นของ WebSphere) อะไรเป็นประโยชน์อย่างมากในการทำเช่นนี้? ฉันสามารถเข้าใจไดอะแกรมเส้นและกล่องอย่างง่ายที่มีประโยชน์ แต่สิ่งเหล่านี้เท่าที่ฉันสามารถบอกได้ว่าเป็นภาษาการเขียนโปรแกรมแบบเห็นภาพ ณ จุดนี้พร้อมเงื่อนไขและลูป โปรแกรมเมอร์ที่นี่ดูเหมือนจะทำงานเป็นจำนวนมากในไลน์และเลเยอร์กล่องซึ่งสำหรับฉันแล้วดูเหมือนว่าจะเป็นภาษาการเขียนโปรแกรมเชิงภาพขั้นพื้นฐานจริงๆ หากคุณกำลังจะไปที่ไกลทำไมไม่ใช้ภาษาสคริปต์บางอย่าง? มีคนขว้างลูกน้อยออกไปด้วยการอาบน้ำหรือเปล่า? เส้นและกล่องถูกนำไปสู่ระดับที่ไร้สาระหรือฉันแค่ไม่เข้าใจคุณค่าทั้งหมดนี้หรือไม่? ฉันต้องการเห็นข้อโต้แย้งในการป้องกันเรื่องนี้โดยคนที่ทำงานกับเทคโนโลยีนี้และเข้าใจว่าทำไมมันถึงมีประโยชน์ ฉันไม่เห็นคุณค่าของมัน แต่ฉันรู้ว่าฉันใหม่กับสิ่งนี้เช่นกันและอาจยังไม่ได้รับมัน
22 java  workflows  soa  bpm 

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

5
เหตุใด IIS จึงใช้ค่าเริ่มต้นในการรีไซเคิลกลุ่มแอพลิเคชันทุก ๆ 1740 นาที
เหตุใด IIS จึงเป็นค่าเริ่มต้นให้รีไซเคิลกลุ่มแอปหลังจากเวลาที่กำหนด มีเหตุผลบางอย่างนอกเหนือจากเว็บแอปพลิเคชันส่วนใหญ่ที่ไม่ได้จัดการหน่วยความจำอย่างรอบคอบหรือไม่? เนื่องจากคุณกำลังจัดการหน่วยความจำของแอปพลิเคชันของคุณอย่างถูกต้องมีความปลอดภัยที่จะไปข้างหน้าและปิดนี้ อะไรคือศักยภาพที่ลดลงประโยชน์ที่ได้รับจากการปิดการรีไซเคิล
22 asp.net  memory  iis 

4
เหตุใดการวางบางสิ่งบางอย่างลงบนสแต็กเรียกว่า“ push”
ตามที่http://dictionary.reference.com ดัน กริยา (ใช้กับวัตถุ) เพื่อกดหรือต้าน (สิ่ง) ด้วยกำลังเพื่อย้ายมันออกไป เพื่อย้าย (บางสิ่ง) ตามวิธีที่กำหนดโดยใช้กำลัง ซุก; ไดรฟ์: เพื่อผลักบางสิ่งไว้ข้างๆ ที่จะผลักดันเปิดประตู ที่จะทำให้เกิดผลหรือสำเร็จโดยการผลักสิ่งกีดขวางออกไป: ผลักทางผ่านฝูงชน ทำให้เกิดการขยายหรือโครงการ แรงผลักดัน เพื่อกดหรือกระตุ้นให้มีการกระทำหรือหลักสูตร: แม่ของเขาผลักเขาให้ได้งานทำ IMO นี้เหมาะกับคิวFIFO มีคำอธิบายสำหรับเรื่องนี้?

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

1
สิ่งที่พวกเขาเรียกว่าการเขียนโปรแกรมเชิงวัตถุก่อนที่อลันเคย์คิดค้นคำนี้
Alan Kay อ้างว่า "ฉันสร้างคำว่า" เชิงวัตถุ "และฉันสามารถบอกคุณได้ว่าฉันไม่มี C ++ ในใจ" แน่นอนว่าเขามีสิ่งที่อยู่ในใจคือสมอลทอล์ค แต่เขาไม่ได้เขียนโปรแกรมเชิงวัตถุ เขาได้รับแนวคิดพื้นฐานจาก Simula ดังนั้นถ้าคำนั้นยังไม่ถูกประดิษฐ์ขึ้นมาพวกเขาเรียกการเขียนโปรแกรมเชิงวัตถุใน Simula ว่าอย่างไร?

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

5
คุณพัฒนาและปรับรุ่นอินเทอร์เฟซอย่างไร
สมมติว่าคุณมีอินเทอร์เฟซIFoo: public interface IFoo { void Bar(string s); int Quux(object o); } ใน API รุ่นที่ 2 ของคุณคุณจะต้องเพิ่มวิธีGlargการในอินเทอร์เฟซนี้ คุณจะทำเช่นนั้นได้อย่างไรโดยไม่ทำลายผู้ใช้ API ที่มีอยู่และรักษาความเข้ากันได้ย้อนหลัง นี่คือจุดมุ่งหมายหลักที่. NET แต่สามารถนำไปใช้กับกรอบและภาษาอื่น ๆ เช่นกัน

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

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