พื้นหลัง
ฉันไม่ใช่แฟนตัวยงของสิ่งที่เป็นนามธรรม ฉันจะยอมรับว่าสามารถได้รับประโยชน์จากความสามารถในการปรับตัวความสะดวกในการพกพาและการใช้งานอินเทอร์เฟซอีกครั้ง ฯลฯ มีประโยชน์ที่แท้จริงอยู่ที่นั่นและฉันไม่ต้องการตั้งคำถามนั้น
มี "ประโยชน์" ที่สำคัญอื่น ๆ ของสิ่งที่เป็นนามธรรมซึ่งคือการซ่อนตรรกะการใช้งานและรายละเอียดจากผู้ใช้สิ่งที่เป็นนามธรรมนี้ เหตุผลก็คือคุณไม่จำเป็นต้องรู้รายละเอียดและควรให้ความสำคัญกับตรรกะของตนเองในตอนนี้ ทำให้รู้สึกในทางทฤษฎี
อย่างไรก็ตามเมื่อใดก็ตามที่ฉันดูแลแอพพลิเคชั่นขององค์กรขนาดใหญ่ฉันจำเป็นต้องทราบรายละเอียดเพิ่มเติมอยู่เสมอ มันกลายเป็นความยุ่งยากครั้งใหญ่ที่ขุดลึกลงไปในสิ่งที่เป็นนามธรรมในทุก ๆ รอบเพื่อที่จะได้รู้ว่าสิ่งใดที่ทำ คือต้องทำ "open declaration" ประมาณ 12 ครั้งก่อนที่จะค้นหาโพรซีเดอร์ที่เก็บไว้ที่ใช้
นี่ 'ซ่อนรายละเอียด' ความคิดดูเหมือนว่าจะได้รับในทาง ฉันต้องการอินเทอร์เฟซที่โปร่งใสมากขึ้นและเป็นนามธรรมน้อยกว่าเสมอ ฉันสามารถอ่านซอร์สโค้ดระดับสูงและรู้ว่ามันทำอะไร แต่ฉันจะไม่มีทางรู้ว่ามันจะทำอย่างไรเมื่อมันเป็นเช่นนั้นคือสิ่งที่ฉันต้องรู้
เกิดอะไรขึ้นที่นี่? ทุกระบบที่ฉันเคยทำงานออกแบบมาไม่ดี (จากมุมมองนี้อย่างน้อย) หรือไม่?
ปรัชญาของฉัน
เมื่อฉันพัฒนาซอฟต์แวร์ฉันรู้สึกว่าฉันพยายามทำตามปรัชญาที่ฉันรู้สึกว่าเกี่ยวข้องกับปรัชญาของ ArchLinux :
Arch Linux ยังคงความซับซ้อนโดยธรรมชาติของระบบ GNU / Linux ในขณะที่ยังคงความเป็นระเบียบและโปร่งใส ผู้พัฒนาและผู้ใช้ Arch Linux เชื่อว่าการพยายามซ่อนความซับซ้อนของระบบจริง ๆ แล้วจะส่งผลให้เกิดระบบที่ซับซ้อนยิ่งขึ้นดังนั้นจึงควรหลีกเลี่ยง
ดังนั้นฉันไม่เคยพยายามซ่อนความซับซ้อนของซอฟต์แวร์ไว้เบื้องหลังเลเยอร์สิ่งที่เป็นนามธรรม ฉันพยายามละเมิดสิ่งที่เป็นนามธรรมไม่ใช่เป็นทาสของสิ่งนั้น
คำถามที่หัวใจ
- การซ่อนรายละเอียดมีคุณค่าหรือไม่?
- เราไม่เสียสละความโปร่งใสหรือไม่
- ความโปร่งใสนี้มีค่าหรือไม่?