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

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

4
ฉันจะใช้งานวิศวกรรมมากเกินไปหากฉันพิจารณาการทำผิดโดยเจตนาของผู้ใช้หรือไม่
มันเกินความเป็นวิศวกรรมหรือไม่ถ้าฉันเพิ่มการป้องกันการกระทำผิดโดยเจตนาของผู้ใช้ (เพื่อกล่าวอย่างอ่อนโยน) หากความเสียหายที่ผู้ใช้สามารถได้รับนั้นไม่เกี่ยวข้องกับรหัสของฉันหรือไม่? เพื่อชี้แจงฉันกำลังเปิดเผยบริการ JSON RESTful แบบนี้: GET /items - to retrieve list of user's items PUT /items/id - to modify an item POST /items - to add a new item บริการนี้ไม่ได้มีไว้สำหรับใช้กับเบราว์เซอร์ แต่มาจากแอปพลิเคชันบุคคลที่สามซึ่งควบคุมโดยผู้ใช้ (เช่นแอพโทรศัพท์แอพเดสก์ท็อป ฯลฯ ) นอกจากนี้บริการควรไม่มีสถานะ (เช่นเซสชันน้อย) การรับรองความถูกต้องจะทำกับการตรวจสอบขั้นพื้นฐานผ่าน SSL ฉันกำลังพูดถึงพฤติกรรม "อันตราย" ที่เป็นไปได้เช่นนี้: ผู้ใช้ป้อน URL ของ GET ในเบราว์เซอร์ (ไม่มีเหตุผลยกเว้น ... …

3
ฉันจำเป็นต้องจัดการกับสถานการณ์ที่วิธีการส่วนตัวถูกเรียกผ่านการสะท้อนกลับหรือไม่?
เมื่อมีการสร้างห้องสมุดที่ผมต้องให้แน่ใจว่าวิธีการที่ภาคเอกชนจะต้องทำงานตามที่คาดไว้เมื่อเรียกไม่ได้โดยวิธีการอื่น ๆ ของชั้นเดียวกัน แต่โดยห้องสมุดอื่นผ่านการสะท้อน ? ตัวอย่างเช่นหากวิธีส่วนตัวprivate DoSomething(int number)คาดว่า: number เป็นจำนวนเต็มบวกที่ไม่เป็นศูนย์และ: ตัวแปรส่วนตัวstring abcไม่ใช่โมฆะและไม่ใช่สตริงว่าง และสมบูรณ์ล้มเหลวอย่างน่าเกลียดหากทั้งสองเงื่อนไขไม่ตรงกันฉันต้องจัดการกับความล้มเหลวเหล่านั้นแม้ว่าฉันจะรู้ว่าวิธีการทั้งหมดในชั้นเรียนจะกำหนดค่าที่ไม่ว่างเปล่าให้กับการabcโทรก่อนDoSomethingและส่งจำนวนเต็มบวกที่ไม่เป็นศูนย์ให้ วิธี? กล่าวอีกนัยหนึ่งคือรหัสที่ไม่ได้ป้องกันการโทรที่ไม่ปลอดภัยผ่านการสะท้อนอาจถือได้ว่าเป็นรหัสที่มีคุณภาพต่ำหรือเป็นของผู้โทรที่ใช้การสะท้อนเพื่อให้แน่ใจว่าการโทรจะไม่ทำลายอะไรเลย หมายเหตุ: คำถามของฉันครอบคลุมเฉพาะชุดไลบรารีมาตรฐาน นี่ไม่ครอบคลุมรหัสที่จะต้องมีความปลอดภัยสูง (เช่นเมื่อใครบางคนอาจสนใจโดยใช้การสะท้อนเพื่อให้มันทำงานโดยไม่คาดคิดหรือผิดพลาด) ¹เนื่องจากชั้นเรียนได้รับการบันทึกอย่างถูกต้องเนื่องจากมีการทดสอบหน่วยมากพอที่จะตรวจสอบให้แน่ใจว่าผู้พัฒนารายอื่นจะไม่ทำลายวิธีนี้เป็นต้น

8
จะเป็นไปได้ไหมที่จะสร้างเว็บไซต์ที่มีคุณภาพด้วยเครื่องมือแก้ไขเพียงอย่างเดียวโดยไม่จำเป็นต้องรู้ HTML [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา บริษัท ขนาดใหญ่จำนวนมากตั้งแต่ Apple ถึง Microsoft ไปจนถึง Google กำลังสร้างรายได้มากขึ้นเรื่อย ๆ ในการสร้างเครื่องมือที่จะช่วยให้ทุกคนสร้างเว็บไซต์ด้วยเครื่องมือแก้ไขแบบ WYSIWYG ตัวอย่างเช่นอีเมลนี้ฉันเพิ่งได้รับจาก Adobe: สร้างเว็บไซต์อย่างรวดเร็วและง่ายดายเหมือนเค้าโครงAdobe®InDesign® ขณะนี้อยู่ในรูปแบบเบต้าแอปพลิเคชันที่มีชื่อรหัสว่า "Muse" เป็นเทคโนโลยีใหม่ที่ช่วยให้นักออกแบบกราฟิกสามารถใช้เครื่องมือฟรีฟอร์มที่คุ้นเคยเพื่อออกแบบและเผยแพร่เว็บไซต์ HTML และ CSS ทั้งหมดนี้โดยไม่ต้องเขียนโค้ดหรือ จำกัด แม่แบบ ร่วมเป็นส่วนหนึ่งของการแสดงตัวอย่างฟรีที่เหลือเชื่อและสัมผัสกับวิธีที่ Muse จะปฏิวัติวิธีที่คุณสร้างขึ้นสำหรับเว็บ ในฐานะนักพัฒนาเว็บฉันไม่สามารถล่วงรู้ถึงวิธีที่ Adobe หรือ บริษัท อื่น ๆ จะสร้างโซลูชันที่อนุญาตให้ผู้ใช้ที่ไม่มีความรู้ HTML / CSS / JS เพื่อสร้างการออกแบบเว็บไซต์ที่มีประโยชน์ด้วยเหตุผลเหล่านี้: โค้ดที่สร้างขึ้นนั้นแทบจะไม่เป็นระเบียบซึ่งทำให้มันยากสำหรับโปรแกรมเมอร์ที่ต้องการเขียนแบ็กเอนด์สำหรับไซต์เพื่อทำงานกับมัน พวกเขาอาจจำเป็นต้องเปลี่ยนรหัสตัวเองเพื่อจัดโครงสร้างตามที่ต้องการ HTML ไม่ใช่แบบพิกเซลดังนั้นจึงเป็นเรื่องยากมากที่จะพัฒนาเครื่องมือที่สามารถออกแบบเทมเพลตที่ไหลได้อย่างง่ายดายด้วยการเปลี่ยนแปลงขนาดตัวอักษร …
12 design  html  wysiwyg 

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

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

10
วิธีการตั้งค่าสถานะคลาสภายใต้การพัฒนาใน Java
ฉันทำงานในโครงการฝึกงาน แต่ฉันต้องจากไปก่อนที่ฉันจะสามารถทำทุกอย่างให้เสร็จได้ ฉันมี 1 คลาสที่ไม่เสถียรพอสำหรับการใช้งานจริง ฉันต้องการทำเครื่องหมาย / ตั้งค่าสถานะคลาสนี้เพื่อให้ผู้อื่นไม่ได้ใช้ในการผลิตโดยไม่ได้ตั้งใจ ฉันได้แจ้งให้ทราบแล้วใน Javadoc แต่นั่นก็ดูไม่เพียงพอ ข้อผิดพลาดหรือคำเตือนของคอมไพเลอร์จะดีกว่า รหัสถูกจัดระเบียบเช่นนี้: [Package] | company.foo.bar.myproject |-- Class1.java |-- Class2.java |-- Class3.java <--(not stable) ถ้ามีระดับโรงงานเดียวที่เรียกผู้ที่อยู่ในชั้นเรียนวิธีการสาธารณะฉันจะได้กำหนดวิธีการที่จะเป็นclass3 privateอย่างไรก็ตาม API จะไม่ถูกเปิดเผยเช่นนั้น ผู้ใช้จะใช้คลาสเหล่านั้นโดยตรงเช่นnew Class1();แต่ฉันไม่สามารถสร้างคลาสส่วนตัวระดับสูงได้ วิธีที่ดีที่สุดในการจัดการกับสถานการณ์นี้คืออะไร
12 java 

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

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

6
เอกสารใดที่บอกว่าช่วงใดของ. NET BigIntegers ที่ออกแบบมาเพื่ออะไร?
ฉันกำลังเล่นกับ. NET BigIntegerและโดยทั่วไปฉันสงสัยว่าจำนวนใด - คำตอบโดยประมาณน่าจะดี - คือจุดเบี่ยงเบนของเส้นโค้งของ (กราฟของ (เพิ่มเวลาที่จำเป็นสำหรับการปฏิบัติการ) vs (มูลค่าของ BigInteger))? หรือพวกมันถูกออกแบบโดยไม่มีการเบี่ยงเบนเช่นนั้นถ้าเราวางแผนการเพิ่มเวลาที่จำเป็นสำหรับการดำเนินการเทียบกับมูลค่าของ BigInteger จาก 1 ถึงอินฟินิตี้เราจะมีเส้นโค้งที่ราบรื่นไปตลอดทาง? ตัวอย่างเช่นสมมติว่าอาร์เรย์ได้รับการออกแบบที่มีความสามารถในการจัดการ 50 รายการ หมายความว่าถ้าฉันมี 1 รายการการดำเนินการจะเป็นเวลา f (1) และเมื่อฉันมี 2 รายการการดำเนินการคือ f (2) เวลา หากฉันมี 50 รายการการดำเนินการจะเป็นเวลา f (50) แต่เนื่องจากมันถูกออกแบบมาสำหรับการจัดการ 50 รายการเท่านั้นการดำเนินการเมื่อเรามี 51 รายการจะเป็น g (51) โดยที่ g (51)> f (51) หากดำเนินการอย่างเหมาะสมความซับซ้อนของ BigInteger …
12 c#  .net  vb.net  numbers 

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

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

6
เหตุใดฉันจึงควรเขียนข้อความทั้งหมดใน Try-Catch
หัวหน้า บริษัท ของฉันบอกว่าฉันต้องเขียนทั้งหมดนั่นคือทั้งหมดรหัสของฉันในงบลองจับ ตอนนี้ฉันสามารถเข้าใจวิธีการที่ 'ปลอดภัยกว่าขอโทษ' ที่นี่ แต่ไม่ใช่ไก่ที่คิดมากเกินไปที่จะคิดว่าจะมีข้อยกเว้นเมื่อสร้างป้ายกำกับตำแหน่งของฟอร์มจะถูกกำหนด ได้มีกรณีที่มีข้อยกเว้นในการดำเนินการอย่างง่ายเช่น

2
เกมออนไลน์จะดำเนินต่อไปหลังจากที่เจ้าบ้านออก?
หมายเหตุ:นี่เป็นคำถามเกี่ยวกับเครือข่ายไม่ใช่การเล่นเกม ฉันใช้สตาร์คราฟต์เป็นเพียงตัวอย่างเท่านั้น เกมสตาร์คราฟต์ (ไม่ใช่สตาร์คราฟต์ 2) รองรับการเล่นออนไลน์ โฮสต์หนึ่งคนและบุคคลอื่นเข้าร่วม หากโฮสต์ออกระหว่างเกมเกมสามารถดำเนินต่อไปเรื่อย ๆ โดยไม่มีโฮสต์ มันทำงานอย่างไร พิจารณาสถานการณ์สมมติต่อไปนี้: ฉันโฮสต์ 3 ต่อ 3 โปรดทราบว่าสำหรับคนที่จะเข้าร่วมได้เราเตอร์ของฉันจะต้องได้รับการกำหนดค่าให้พอร์ตไปข้างหน้า 6112, TCP และ UDP (ดูBlizzard Support ) ห้าคนเข้าร่วม ทุกคน (รวมตัวเอง) อยู่หลังเราเตอร์ ฉันเริ่มเกม สามนาทีในเกมประมาณยี่สิบ zealots เทลงในฐานของฉัน ไม่มีใครช่วยฉัน ฐานของฉันถูกกำจัดดังนั้นฉันจึงไป (เกมไม่ได้ให้คุณเลือก) เกมดำเนินต่อไปโดยไม่มีโฮสต์ (ทีมเหย้าเหลือผู้เล่นสองคน) ลูกค้าที่เหลือห้าราย (ที่ไม่ต้องการการส่งต่อ 6112) ยังคงเชื่อมต่อได้อย่างไร ถ้าฉันเข้าใจถูกต้อง: หากสองโปรแกรมต้องการคุยกันโปรแกรมใดโปรแกรมหนึ่งจะต้องเป็น "เซิร์ฟเวอร์" และฟังการเชื่อมต่อบนพอร์ตในขณะที่อีกโปรแกรมหนึ่งจะต้องเป็น "ไคลเอนต์" และเริ่มต้นคำขอการเชื่อมต่อนั้น ท่าเรือ. พวกเขาไม่สามารถเริ่มส่งแพ็กเก็ตให้กันและกันได้ (และฉันไม่รู้ด้วยซ้ำว่าพวกเขาจะทำอย่างไรหากทั้งคู่อยู่หลังเราเตอร์) …
12 networking 

7
ตัวชี้วัดเชิงวัตถุประสงค์สำหรับคุณภาพซอฟต์แวร์ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว มีคุณภาพหลายประเภทที่สามารถวัดได้ในผลิตภัณฑ์ซอฟต์แวร์เช่นความเหมาะสมสำหรับวัตถุประสงค์ (เช่นการใช้งานปลายทาง) การบำรุงรักษาประสิทธิภาพ บางส่วนเป็นแบบอัตนัยหรือเฉพาะโดเมน (เช่นหลักการออกแบบ GUI ที่ดีอาจแตกต่างกันในแต่ละวัฒนธรรมหรือขึ้นอยู่กับบริบทการใช้งานคิดว่าการทหารกับการใช้งานของผู้บริโภค) สิ่งที่ฉันสนใจคือรูปแบบที่ลึกกว่าของคุณภาพที่เกี่ยวข้องกับเครือข่าย (หรือกราฟ) ของประเภทและความสัมพันธ์ระหว่างกันของพวกเขานั่นคือประเภทใดที่อ้างถึงแต่ละประเภทจะมีกลุ่มของการเชื่อมต่อระหว่างกันอย่างชัดเจน สถาปัตยกรรมแบบฉัตรหรือตรงกันข้ามมี 'ball' ขนาดใหญ่ของการอ้างอิงประเภท (รหัส 'เสาหิน') นอกจากนี้ขนาดของแต่ละประเภทและ / หรือวิธีการ (เช่นวัดในปริมาณของรหัสไบต์ Java หรือ. Net IL) ควรให้ข้อบ่งชี้ว่ามีการใช้อัลกอริธึมที่ซับซ้อนขนาดใหญ่เป็นบล็อกก้อนใหญ่ของรหัสแทนที่จะถูกย่อยสลายได้ง่าย ชิ้น การวิเคราะห์ตามแนวคิดดังกล่าวอาจสามารถคำนวณตัวชี้วัดที่มีพร็อกซีเพื่อคุณภาพอย่างน้อย เกณฑ์ที่แน่นอน / คะแนนการตัดสินใจระหว่างคุณภาพสูงและต่ำฉันจะสงสัยว่าเป็นอัตนัยเช่นเนื่องจากการบำรุงรักษาเราหมายถึงการบำรุงรักษาโดยโปรแกรมเมอร์ของมนุษย์และดังนั้นการสลายตัวของการทำงานจะต้องสอดคล้องกับวิธีการทำงานของจิตใจมนุษย์ ด้วยเหตุนี้ฉันจึงสงสัยว่าจะมีคำจำกัดความที่บริสุทธิ์ทางคณิตศาสตร์ของคุณภาพของซอฟต์แวร์ที่เหนือกว่าซอฟต์แวร์ที่เป็นไปได้ทั้งหมดในทุกสถานการณ์ที่เป็นไปได้หรือไม่ ฉันยังสงสัยว่านี่เป็นความคิดที่อันตรายหรือไม่ถ้าหากผู้รับมอบฉันทะที่มีคุณภาพเป็นที่นิยมนั้นความกดดันทางธุรกิจจะทำให้นักพัฒนาต้องติดตามตัวชี้วัดเหล่านี้ด้วยค่าใช้จ่ายของคุณภาพโดยรวม (ด้านคุณภาพของพวกเขา วิธีคิดอีกอย่างคือคุณภาพจากมุมมองของเอนโทรปี เอนโทรปีคือแนวโน้มของระบบที่จะเปลี่ยนจากการสั่งซื้อเป็นรัฐที่ไม่เป็นระเบียบ ทุกคนที่เคยทำงานในโลกแห่งความเป็นจริงโครงการซอฟต์แวร์ขนาดกลางถึงขนาดใหญ่จะขอบคุณในระดับที่คุณภาพของรหัสฐานมีแนวโน้มที่จะลดลงเมื่อเวลาผ่านไป โดยทั่วไปความกดดันทางธุรกิจส่งผลให้เกิดการเปลี่ยนแปลงที่มุ่งเน้นไปที่ฟังก์ชั่นใหม่ (ยกเว้นในกรณีที่คุณภาพเป็นจุดขายหลักเช่นในซอฟต์แวร์ avionics) และการกัดเซาะของคุณภาพผ่านปัญหาการถดถอยและฟังก์ชั่น 'รองเท้า horning' มุมมองด้านคุณภาพและการบำรุงรักษา ดังนั้นเราสามารถวัดเอนโทรปีของซอฟต์แวร์ได้หรือไม่? …

4
รหัส JavaScript ใด ๆ ที่ใช้สำหรับเว็บไซต์โอเพนซอร์สเท่านั้น
คำถามที่เขียนซ้ำ: ฉันไม่ได้ถามคำถามที่เกี่ยวข้องกับ JavaScript แต่ทุกภาษา "ลูกค้า" ที่ใช้บนเว็บ (HTML5, JavaScript, CSS และอื่น ๆ ) หากฉันใส่รหัส JavaScript (นั่นคือ GPLed) บนเว็บไซต์ของฉันและเว็บไซต์นี้สามารถเข้าถึงได้จากทุกคนทางเว็บฉันจะละเมิด GPL ในทางใดทางหนึ่งหรือไม่ จะเกิดอะไรขึ้นหากฉันต้องการขายรหัสลูกค้า (HTML, CSS, JavaScript) ให้กับบางคน ฉันต้องมีใบอนุญาตอื่นในกรณีนี้หรือไม่? JavaScript ไม่ได้ (เมื่อใช้กับเว็บไซต์) เสมอที่มาเปิดหรือไม่ เมื่อคุณเปิดเว็บเพจคุณสามารถอ่านต้นฉบับได้เสมอ ฉันต้องปล่อยรหัสฝั่งเซิร์ฟเวอร์ของฉันหรือไม่ถ้าฉันขายเว็บไซต์ที่มีรหัส JavaScript GPLed จะเกิดอะไรขึ้นหากเว็บไซต์นี้เข้าถึงได้บางส่วน (ส่วนหนึ่งฟรีและอีกเว็บไซต์หนึ่งกำหนดให้คุณต้องชำระ) แต่ใช้รหัส GPLed (ส่วนเดียวกัน) ที่ใช้ทั้งสองด้านของเว็บไซต์ จะเกิดอะไรขึ้นถ้ารหัส GPLed เป็นเพียงส่วนหนึ่งของเว็บไซต์ที่คุณต้องจ่ายเพื่อเข้าถึง ถ้าฉันขายเว็บไซต์ให้กับลูกค้าด้วยวิธีนี้: ฉันกำลังขายคุณ (ค่าธรรมเนียมครั้งเดียว) รหัสที่เกี่ยวข้องกับลูกค้าทั้งหมด (JavaScript, HTML และ CSS) …

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