จะแยกความแตกต่างระหว่างซอฟต์แวร์ที่เป็นเรื่องเล็กน้อยและไม่เป็นเรื่องเล็กได้อย่างไร [ปิด]


11

ดังนั้นสิ่งที่ทำให้โปรแกรมเล็กน้อยจริง ๆ ?

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

ตัวอย่างเช่นคำถามเกี่ยวกับการทดสอบหน่วยเป็นจำนวนมากฉันได้ยิน 'ถ้าไม่สำคัญคุณต้องทดสอบหน่วย'


9
ตัดสินโดยโปรแกรมเมอร์บางคนที่ฉันเคยทำงานด้วยฉันจะบอกว่าสำหรับพวกเขาแล้วความแตกต่างก็เกิดขึ้นกับ "โค้ดของคุณมันเล็กน้อย;
PSU

คุณสามารถให้คำอธิบายการเขียนโปรแกรมที่คุณเห็นว่าคำพูดนี้ใช้ ดูเหมือนว่ามีการตีความที่แตกต่างกันในคำตอบ
Steven Jeuris

ตรวจสอบคำถามที่อัปเดต
NVM

คำตอบ:


12

ฉันจะออกไปที่นี่แล้วพูดว่า:

โปรแกรมเล็ก ๆ น้อย ๆ เป็นโปรแกรมที่ไม่ส่งผลกระทบโดยตรงต่อธุรกิจ

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


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

+1 จุดดี Corporate Overlords บางครั้งมีแนวคิดที่แตกต่างกันมากเกี่ยวกับสิ่งที่นับว่าเป็น "เรื่องไม่สำคัญ" ฉันได้เพิ่มคำตอบลงไปสองสามข้อเพื่อสะท้อนสิ่งนี้
FrustratedWithFormsDesigner

+1 - ฉันคิดว่าคำตอบนี้อธิบายบริบทของคำศัพท์ได้ดีที่สุดเนื่องจากนำไปใช้กับคำถาม "คำตอบของจุดที่สูงกว่า" อื่น ๆ นั้นมีความแม่นยำ แต่มีในบริบททั่วไปเท่านั้น ฉันแน่ใจว่าอันนี้จะเกินคะแนนโหวตตามที่พิจารณา
Joel Etherton

2
เมื่อนักพัฒนาซอฟต์แวร์บอกว่าไม่สำคัญพวกเขามักอ้างถึงความซับซ้อนของซอฟต์แวร์ไม่ใช่ผลกระทบทางธุรกิจ สคริปต์ที่คัดลอกไฟล์บางไฟล์จาก A ไป B จะไม่สำคัญ แต่อาจยังส่งผลกระทบโดยตรงต่อธุรกิจหากไม่สามารถใช้งานได้
JacquesB

16

ฉันเชื่อว่าความตั้งใจทั่วไปของคำแถลงนั้นน่าจะเป็นโปรแกรมที่มีลักษณะดังต่อไปนี้:

  • มันเล็ก.
  • อายุการใช้งานสั้น
  • ไม่จำเป็นต้องมีการขยายเพิ่มเติม
  • นักพัฒนาเพียงคนเดียว

2
+1 สิ่งเหล่านี้สำคัญมาก น่าเสียดายที่ในโลกที่มีความต้องการที่เปลี่ยนแปลงอยู่ตลอดเวลาคุณจะต้องขยายซอฟท์แวร์ "เล็กน้อย" เกินกว่าอายุการใช้งานปกติ
l0b0

1
เล็กในแง่ของ LOC เล็กในแง่ของขนาดไบนารีที่คอมไพล์เล็ก ๆ ในแง่ของเวลาในการพัฒนามัน? นอกจากนี้ฉันขอยืนยันว่าอายุการใช้งานสั้นไม่ได้บ่งบอกถึงเรื่องเล็กน้อยและเรื่องไร้สาระไม่ได้หมายถึงอายุการใช้งานสั้น ๆ ฉันเคยเห็นกรณีที่ซอฟต์แวร์ที่มีระยะเวลาเพียง 6 เดือนในการพัฒนาอย่างน้อยสองครั้งและเป็นระบบสะพานที่สำคัญ ฉันเห็นระบบการแปลงข้อมูลที่ใช้เพียงครั้งเดียว แต่อยู่ในระหว่างการพัฒนามานานกว่าหนึ่งปีและอยู่ไกลจากเรื่องเล็กน้อย และ progams เล็ก ๆ น้อย ๆ เช่น Minesweeper ดูเหมือนจะมีอายุการใช้งานที่ยาวนานมาก
FrustratedWithFormsDesigner

@FrustratedWithFormsDesigner: เล็กเท่าใน, หน้าต่างขนาด 100x100px ของหลักสูตร ; p ฉันหมายถึงมีขนาดเล็กเท่าในบรรทัดของโค้ดที่ต้องเขียนซึ่งเป็นสัดส่วนกับเวลาที่ใช้ในการพัฒนา อายุขัยไม่จำเป็นคุณถูกต้อง แต่มักจะเป็นลักษณะเฉพาะเมื่อพูดถึงวิธีการขั้นสูงกว่าและวิธีการง่ายๆ
Steven Jeuris

ฉันไม่เห็นด้วยที่ LOC ต่ำหมายถึงเรื่องเล็กน้อย บางครั้งส่วนที่ซับซ้อนที่สุดของโปรแกรมส่วนที่ยากที่สุดในการทำให้ถูกต้องอัลกอริธึมที่ยากที่สุดนั้นเข้ากับ <20 Lines Of Code และโปรแกรมที่เป็นส่วนใหญ่หลายร้อยบรรทัดของผู้สร้าง getters / setters ที่สร้างขึ้นโดยอัตโนมัติ - นั้นไม่ใช่เรื่องไม่สำคัญแม้ว่ามันจะไม่ต้องการแม้แต่นักพัฒนาที่จะสร้างมันขึ้นมา?
FrustratedWithFormsDesigner

1
@FrustratedWithFormsDesigner: ฉันเชื่อว่าคุณมีการตีความคำถามที่แตกต่างจากที่ฉันทำ คำตอบของฉันเกี่ยวข้องกับความจริงของการตัดสินใจเลือกวิธีแก้ปัญหาเล็กน้อยกับซับซ้อน คำตอบของคุณเกี่ยวข้องกับปัญหา 'ยาก' และ 'ง่าย' เพื่อแก้ปัญหา บางทีคำถามของ OP ควรได้รับการชี้แจงเล็กน้อย
Steven Jeuris

14

โดยการโยนทิ้งอย่างสมบูรณ์ไบนารีและแหล่งที่มา หากมีคนสังเกตเห็นว่ามันไม่สำคัญ


6
+1 นั่นทำให้ฉันหัวเราะและมันก็สมเหตุสมผล
NVM

8

เล็กน้อยคือ ...

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

ในสภาพแวดล้อมขององค์กรฉันจะเพิ่มสิ่งเหล่านี้:

  • สิ่งที่ผู้ใช้ทางธุรกิจไม่รังเกียจที่จะรอการแก้ไข
  • สิ่งที่ใช้ภายในที่ไม่มีการสนับสนุนอย่างเป็นทางการจาก IT
  • สิ่งที่จัดลำดับความสำคัญในลำดับความสำคัญต่ำสุดของธุรกิจเมื่อทำการวางแผนทรัพยากรและกำหนดเวลา

4

ฉันจะกำหนดโปรแกรมเล็ก ๆ น้อย ๆ เป็นหนึ่งที่สามารถเข้ารหัสได้อย่างสมเหตุสมผล:

  • ในหนึ่งนั่ง
  • ในฐานะที่เป็นไฟล์ / โมดูลเดียว (สมมติว่าคุณไม่ได้เขียนโปรแกรมใน Java หรือภาษาบางภาษาที่บังคับให้แยกโมดูลที่ละเอียดยิ่งยวด)
  • โดยโปรแกรมเมอร์ "ดีแจ็คของการซื้อขายทั้งหมด" มากกว่าผู้เชี่ยวชาญ

3

นี่คือตัวอย่างของโปรแกรม "เรื่องไม่สำคัญ" ของฉัน:

  1. โครงการ "จำลอง" ที่ฉันติดตั้งและเริ่มเขียนโปรแกรมเพื่อให้ฉันสามารถลองใช้ชิ้นส่วนของเทคโนโลยีหรือรหัสตัวอย่าง ไม่มีความตั้งใจที่จะนำไปใช้หรือแม้กระทั่งแสดงต่อทุกคน
  2. เขียนรหัสการสาธิตสำหรับงานนำเสนอทางเทคนิค
  3. A "one-off" ฉันหมายถึงแอปพลิเคชันด่วนที่ฉันต้องสร้างเพื่อใช้เพียงครั้งเดียวเนื่องจากเป็นสถานการณ์ที่แปลกของข้อมูลที่ต้องถูกย้ายในลักษณะใดวิธีหนึ่งหรือบางสิ่งที่จะถูกแทนที่ในทันทีด้วยบางสิ่งที่ถาวรกว่า

3

ซอฟต์แวร์ Trival ไม่มีอยู่มันคือเมื่อคุณได้ยินความต้องการและสิ่งต่าง ๆ ที่จะต้องไตร่ตรองเมื่อในความเป็นจริงแล้วมันไม่ใช่ trival

นี่คือข้อความที่ฉันเห็นใน Usenet ทศวรรษที่ผ่านมาตอนนี้มันมีความเกี่ยวข้องมากขึ้น

ความซับซ้อนของโซลูชันซอฟต์แวร์นั้นแปรผกผันกับความซับซ้อนของคำอธิบายในสิ่งที่ควรทำ - ไม่ทราบ


-1

โปรแกรมที่เป็นเพียงวิธีการ getter / setter ไม่มีตรรกะการเขียนโปรแกรม บางทีบางสิ่งบางอย่างที่มีลูป

นั่นคือคำจำกัดความของฉันเล็กน้อย


-1

คำจำกัดความการทำงานของเราคือ "ไม่มีอะไรอื่นขึ้นอยู่กับ"

น่าเสียดายที่มีต้นแบบเล็ก ๆ น้อย ๆ ที่กลายเป็นผลิตภัณฑ์การผลิตที่ไม่สำคัญ


-3

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

ฉันรู้ว่าโปรแกรมเมอร์คนหนึ่งซึ่งมักจะใช้คำว่า "เล็กน้อย" เป็นคำพ้องสำหรับ "ไม่ควรพูดถึง"

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