लिस्ट एस्टनमेंट का सिद्धांत डिजाइन गतिविधियों की एक विस्तृत श्रृंखला पर लागू होता है - और न केवल कंप्यूटिंग में (हालांकि यह अक्सर जहां सबसे आश्चर्यजनक चीजें होती हैं)।
इसके बगल में एक बटन के साथ एक लिफ्ट पर विचार करें जो "कॉल" कहता है। जब आप बटन दबाते हैं, तो पेफोन बजता है (लिफ्ट को उस फ्लोर पर बुलाने के बजाय)। इसे आश्चर्यजनक माना जाएगा। सही डिजाइन लिफ्ट के बजाय फोन के बगल में कॉल बटन लगाने के लिए होगा।
इसके बाद, एक वेब पेज के बारे में सोचें, जिसमें एक पॉप अप विंडो है जो उस पर 'ओके' बटन के साथ एक विंडोज़ शैली की त्रुटि दिखाता है। लोग 'ओके' बटन पर क्लिक करते हैं यह सोचकर कि यह ऑपरेटिंग सिस्टम के लिए है और इसके बजाय किसी अन्य वेब पेज पर जाएं। यह उपयोगकर्ता को चकित करता है।
जब यह एक एपीआई की बात आती है ...
- एक .String () पद्धति के बारे में सोचें जो कि प्रिंट आउट करने के बजाय फ़ील्ड "लागू होने के लिए" वापस आती है।
- एक समान () विधि जो छिपी हुई जानकारी पर काम करती है।
- कभी-कभी लोग एरे पर कॉल सॉर्ट () को बाद में करने के लिए ऐड मेथड को बदलकर सॉर्ट लिस्ट क्लास को लागू करने की कोशिश करते हैं - जो आश्चर्यजनक है क्योंकि ऐड मेथड को लिस्ट में जोड़ना है - यह तब विशेष रूप से आश्चर्यजनक होता है जब कोई लिस्ट ऑब्जेक्ट वापस मिलता है बिना किसी ज्ञान के, कहीं गहरे में, किसी ने इंटरफ़ेस अनुबंध का उल्लंघन किया।
एक विधि जो एक अलग चीज करती है, वह विस्मय को कम करने में योगदान करती है, हालांकि ये एपीआई डिजाइन में अलग सिद्धांत हैं। चार सिद्धांतों को अक्सर "अच्छा एपीआई डिजाइन" के रूप में जाना जाता है ( इस पीडीएफ से - ऐसी प्रस्तुति का सिर्फ एक उदाहरण। इस विशेष के अंत में लिंक अच्छे पढ़ने के लिए बनाते हैं):
किसी के पास एक वर्ग के लिए संभावित रूप से आश्चर्यजनक है जो हर चीज को करने की कोशिश करता है - या किसी एक चीज को करने के लिए दो वर्गों की आवश्यकता होती है। यह वैसे ही किसी के लिए आश्चर्यजनक तरीके से कवर के तहत आंतरिक तरीकों से गड़बड़ करने के लिए आश्चर्यजनक है (मुझे लगता है कि रूबी में खुली कक्षाएं कभी न खत्म होने वाले विस्मय का स्रोत हैं)। यह भी दो तरीके खोजने के लिए आश्चर्यजनक है कि जाहिरा तौर पर एक ही बात करते हैं।
जैसे, कम से कम विस्मय का सिद्धांत अन्य एपीआई डिजाइनों को रेखांकित करता है - लेकिन यह, स्वयं, केवल यह कहने के लिए पर्याप्त नहीं है कि "एक आश्चर्यजनक एपीआई नहीं है।"
आगे पढ़ने (यूआई के दृष्टिकोण से) - एक आईबीएम डेवलपर ब्लॉग का शीर्षक द क्रंकी यूजर: द प्रिंसिपल ऑफ लिस्ट एस्टनमेंट