महान एपीआई में क्या आम है? [बन्द है]


15

यह महान एपीआई के बारे में क्या है जो उन्हें महान बनाता है? मुझे लगता है कि "एक काम करो और इसे अच्छी तरह से करो" मंत्र का पालन करना एक अच्छा संकेत है और समस्या डोमेन के लिए एक अच्छा मानचित्रण महत्वपूर्ण है, लेकिन महान एपीआई में क्या आम है?


1
क्या आप कुछ "महान एपीआई" सूचीबद्ध कर सकते हैं? व्यक्तिगत रूप से मैं नियमित रूप से क्यूटी द्वारा सकारात्मक रूप से आश्चर्यचकित हूं।
बेंजामिन

सिनात्रा वेब अनुप्रयोग फ्रेमवर्क मेरी पसंदीदा एपीआई है। यह एक काम करता है और यह अच्छी तरह से करता है।
dodgy_coder

जवाबों:


17

आपको अपने एपीआई के लिए नई शब्दावली जोड़ने से बचने के लिए सावधान रहना होगा। मेरे पसंदीदा एपीआई मुझे पहले से समझ में आने वाली शब्दावली में चीजों को समझाते हैं। उन पंक्तियों के साथ:

आप जो निर्माण कर रहे हैं उसके शीर्ष पर बहुत सारे सार न जोड़ें। इसे सरल रखें।

मुझे पहले से ही अमूर्तता की आधा दर्जन परतों के बारे में सोचना है। मुझे अतिरिक्त परतों के बारे में सोचने की ज़रूरत नहीं है। मुझे बहुत सी नई चीजें सीखने के लिए मत दें जो मेरे अंतिम लक्ष्य के लिए मूल्य नहीं जोड़ेंगे। उदाहरण के लिए, अपने स्वयं के विशेष फ़ाइल वर्ग का उपयोग करने से बचें जो अलग तरह से काम करता है, तो भाषा का फ़ाइल प्रकार सिर्फ आपको लगता है कि आपका रास्ता आम तौर पर स्वीकृत तरीके से बेहतर है। छड़ी आम तौर पर स्वीकृत तरीके से, कम से कम आपके इंटरफेस में, बेहतर या बदतर के लिए।

ठोस विचारों के साथ रहें

उदाहरण के लिए, इस तथ्य को छिपाने की कोशिश न करें कि आपके एमवीसी ढांचे का "मॉडल" हिस्सा एक डेटाबेस के लिए फ्रंट एंड है। "डेटाबेस" के आसपास की प्रसिद्ध शब्दावली का लाभ उठाएं। मुझे पता है कि विदेशी चाबियां क्या हैं। मुझे पता है कि पंक्तियाँ और स्तंभ क्या हैं। इन शब्दों में मुझसे बात करो।

आवश्यक ज्ञान का सार मत करो

ठोस विचारों के साथ काम करने के समान। तथ्य यह है कि हम फ़ाइलों या डेटाबेस या डेटाबेस में पंक्तियों के साथ काम कर रहे हैं छिपा मत करो। मुझे ये बातें पता हैं। यदि मैं एक कंटेनर के साथ काम कर रहा हूं, तो एक सूची की तरह, आम ऑपरेशन के एल्गोरिदम की जटिलता को जानने का एक अच्छा मौका है। आप इसे बहुत आसान कर सकते हैं, बस मुझे इसकी "लिंक्ड लिस्ट" या "एरे" बताकर। विचारों का एक विशाल सेट अचानक लाया जाएगा कि आप क्या कर रहे हैं और यह सब अचानक समझ में आएगा। विचारों का अपना सेट न बनाएं, जो मुझे सीखना होगा जब मैं समस्या पर लागू होने के लिए पहले से ही शब्दावली का एक समृद्ध और उपयोगी सेट लेकर आऊंगा।

मुझे अपनी शब्दावली में उन शब्दों की संख्या कम करनी चाहिए जो मुझे चाहिए

अगर मैं किसी भी प्रकार की छवि फ़ाइल खोलने के लिए आपके API का उपयोग कर रहा हूं, तो मुझे pngs बनाम gifs बनाम jpgs के बारे में अधिक नहीं सोचना चाहिए। आप मेरे लिए ऐसा करेंगे। इसकी मूल योग्यता, मेरी नहीं। मुझे कुछ अस्पष्ट समझ है कि आपके पास मेरे लिए ऐसा करने के लिए कुछ जादू है।


10

एक उपयोगी एपीआई में निम्नलिखित हैं:

  • संक्षिप्त और संपूर्ण प्रलेखन। अगर मैं खोज रहा हूं कि किसी कार्य को कैसे कार्यान्वित किया जाए, तो मैं यह पता लगा सकता हूं कि एपीआई के पास ऐसा करने की क्षमता है या नहीं, एक दो मिनट के भीतर। यह पाठ की संक्षिप्तता और संसाधन के लेआउट द्वारा प्राप्त किया जाता है। दस्तावेज़ीकरण इसका उपयोग करने के तरीके पर उदाहरण प्रदान करता है और पाठकों पर कोई धारणा नहीं बनाता है।
  • एक बड़ा, सक्रिय समुदाय। जब मैं मंचों, आईआरसी चैनलों, मेलिंग सूचियों आदि को ढूंढता हूं तो सक्रिय प्रतिभागियों के साथ नए लोगों की मदद करने के लिए तैयार रहता हूं। मैं समझता हूं कि यह आमतौर पर बड़ी परियोजनाओं के लिए मामला है, लेकिन फिर भी, इसके लिए प्रयास करने के लिए कुछ होगा।
  • संगति। जब मैं वास्तव में एपीआई का उपयोग कर रहा हूं , तो मैं किसी भी तरह से चौंकना नहीं चाहता जब मैं किसी विधि को कॉल करता हूं, या पता चलता है कि यह विधि Xबाकी एपीआई द्वारा निर्धारित कन्वेंशन से पूरी तरह से अलग है।

संगति नहीं होनी चाहिए। 1 बात। डॉक्स दूसरे नंबर पर आते हैं
ट्रेकोडर

संगति भाषाओं पर भी लागू होती है: PHP और जावास्क्रिप्ट के बारे में मेरी नापसंदगी मुख्य रूप से उनकी निरंतरता की कमी के लिए है।
dodgy_coder


1
  • एक काम करो और इसे महान करो।
  • उपयोग करने में आसान, दुरुपयोग करने में मुश्किल।
  • विस्तार करने में आसान।
  • अच्छी तरह से प्रलेखित।
  • संगत शैली।

0

यह सवाल नेटबियंस टीम के जारोस्लाव टलाच ने "प्रैक्टिकल एपीआई डिज़ाइन: कन्फेशंस ऑफ़ अ जावा फ्रेमवर्क आर्किटेक्ट" में संबोधित किया है।


-1

सरलतम उपयोगी इंटरफ़ेस और अच्छे नामकरण परंपराएँ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.