ซอฟแวร์เน่าหมายถึงประสิทธิภาพหลักหรือรหัสยุ่ง?


22

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


1
Wikipedia แสดงสาเหตุ 3 รายการโดย 2 สาเหตุไม่เกี่ยวข้องกับประสิทธิภาพรหัสที่ไม่ได้ใช้และรหัสที่อัปเดตน้อย ...
Izkata

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

1
คุณลักษณะการเปลี่ยนชื่อใหม่เพียงอย่างเดียวในหน้า wikipidia ทั้งหมดคำเตือนแท็กที่ไม่ได้อ้างอิงถึงแหล่งข้อมูลที่เชื่อถือได้
mattnz

คำตอบ:


39

คำนี้ไม่เกี่ยวข้องกับประสิทธิภาพอย่างน้อยก็ไม่ใช่ทุกที่ที่ฉันเคยเห็นมา

มันเกี่ยวกับรหัสที่ไม่ได้รับการดูแลอย่างดีและกลายเป็น ... สกปรก ... เน่า มันเป็นเรื่องเกี่ยวกับรหัสที่การออกแบบไม่ได้รับการปรับปรุงเมื่อมีการเปลี่ยนแปลงและยากต่อการอ่านและทำความเข้าใจ


1
ฉันเคยได้ยินว่ามันหมายถึงประสิทธิภาพ: เช่น "Windows rot" ความรู้สึกที่คุณต้องฟอร์แมตใหม่และติดตั้ง Windows ใหม่ทุกครั้งที่มันช้าลงเมื่อเวลาผ่านไป
Carson63000

3
ใช่ ... แต่ "ซอฟต์แวร์เน่า" และ "หน้าต่างเน่า" เป็นคำที่แตกต่างกัน
สตีเฟ่นซี

4
@Oded - การเปรียบเทียบไม่ได้มีความสกปรก มันขึ้นอยู่กับชนิดของการเน่าที่เกิดขึ้นในอาคารเก่าที่ทำให้พวกเขาไม่มั่นคงเชิงโครงสร้าง
สตีเฟ่นซี

18

ช่วยให้หน้ามัน "ซอฟต์แวร์เน่า" ไม่ใช่แนวคิดทางเทคนิคที่ชัดเจน มันเป็นคำอธิบายที่ดูถูกว่าเกิดอะไรขึ้นเมื่อซอฟต์แวร์ได้รับการดูแลไม่ดี

หน้า Wikipedia แสดงถึงมุมมองเดียว แต่มีมุมมองทางเลือกที่ชัดเจน และคุณสามารถพูดได้ว่ามุมมองที่ต่างกันสะท้อนถึงลำดับความสำคัญและความกังวลที่แตกต่างกันของผู้ที่ถือความคิดเห็นดังกล่าว:

  • คนที่เพ่งความสนใจไปที่การทำซอฟต์แวร์อย่างรวดเร็วจะมีแนวโน้มที่จะมองหาหลักฐานของ "ซอฟต์แวร์เน่า" ในการทำงาน

  • คนที่เพ่งความสนใจไปที่การออกแบบ / สถาปัตยกรรม (เช่นเนื่องจากพวกเขาต้องการเพิ่มฟังก์ชันการทำงานใหม่หรือแก้ไขข้อบกพร่องของฟังก์ชันการทำงาน) จะเห็น "ซอฟต์แวร์เน่า" จากมุมมองนั้น

และมันไม่มีประโยชน์จริง ๆ ที่จะบอกว่ามุมมองใดถูกกว่า (มันคล้ายกับการโต้เถียงว่าเทอร์ควอยซ์เป็นสีเขียวมากกว่าหรือมากกว่าสีน้ำเงิน)


1
เนื่องจากโพสต์ของ OP เกี่ยวกับวิกิพีเดียฉันจึงนำเสนอ: Turquoise (สี) - มันคือ "สีเขียว" แต่เป็น "สีฟ้า" ของมัน ดังนั้นฉันคิดว่าเหตุผลของคุณคือเสียง :)
Ben Lee

6

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


6

Wikipedia กล่าวว่าเน่าซอฟต์แวร์และรหัสเน่าเหมือนกัน ฉันไม่เห็นด้วย.

รหัสเน่าคือการสูญเสียความสามารถในการอ่านและการบำรุงรักษาอย่างค่อยเป็นค่อยไปเนื่องจากมีการเปลี่ยนแปลงรหัสมากขึ้นเรื่อย ๆ

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


+1 ซอฟต์แวร์เนวิเกเตอร์วิกิพีเดียพร้อมรหัสเน่า เราควรแก้ไขสิ่งนั้น มีซอฟต์แวร์เน่ามากขึ้น ตัวอย่างหนึ่งคือ GUI ที่ใช้งานไม่ได้ / ยาก เอกสารที่ล้าสมัย / ผิดก็มีส่วนช่วยเช่นกัน
Jayan

3

ซอฟแวร์ไม่ได้เลวร้ายได้รับค้างเสื่อมสภาพหรือ "เน่า" ในความหมายดั้งเดิม

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

แต่สภาพแวดล้อมมักจะทำเปลี่ยนแปลง ระบบปฏิบัติการได้รับการติดตั้งและอัพเดทแล้วคอมพิวเตอร์จะถูกแทนที่ด้วยระบบที่ทรงพลังกว่าเดิมและได้รับการติดตั้งโปรแกรมใหม่ (เช่นไคลเอนต์รุ่นล่าสุดเช่น Internet Explorer ไดรเวอร์อุปกรณ์หรือไลบรารีอื่น ๆ ) ซึ่งซอฟต์แวร์ดังกล่าวอาจพึ่งพาได้ ดังนั้นซอฟต์แวร์จะต้องได้รับการอัพเดตเพื่อพิจารณาการเปลี่ยนแปลงเหล่านั้น

มีระบบซอฟต์แวร์ที่ทำงานอย่างต่อเนื่องและเชื่อถือได้มานานหลายทศวรรษโดยไม่ต้องมีการปรับปรุงหรือดูแลอย่างมีนัยสำคัญ ซอฟต์แวร์ COBOL ที่ทำงานบนเมนเฟรมที่ทำธุรกรรมกับธนาคารเป็นสิ่งสำคัญ

การเน้นไปที่ประสิทธิภาพของ Wikipedia ดูเหมือนจะขาดจุด แอปพลิเคชั่นซอฟต์แวร์จำนวนมากได้รับการเพิ่มประสิทธิภาพเมื่อติดตั้งในสภาพแวดล้อมที่ใหม่กว่า บทความ Wikipedia ดูเหมือนว่าจะเกี่ยวข้องกับการขยายตัวของซอฟต์แวร์มากขึ้น


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

3

"ซอฟท์แวเน่า" - เป็นอย่างมากในระยะที่คลุมเครือและอาจหมายถึงความหลากหลายของสิ่งที่จะต้องให้ทุกคนขึ้นอยู่กับว่าเป็นการรับรู้ของแนวคิดเช่นเดียวกับสิ่งที่เป็นของคุณมุมมุมมอง

นิยามโดยวิกิพีเดียในซอฟต์แวร์เน่าไม่ได้กำหนดมาตรฐานตามที่เขียนโดยบุคคลบางคน ฉันคิดว่าคำนี้มีความหมายที่หลากหลายและจำเป็นต้องแยกย่อยออกไปยังพื้นที่เฉพาะซึ่งเป็นแหล่งอ้างอิง

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

2

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


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