কীভাবে এপিআই ডকুমেন্টেশন ফাংশন পরামিতি ব্যাখ্যা করবেন?


106

এপিআই ডকুমেন্টেশনে ফাংশন ইন্টারফেসের সিনট্যাক্স ব্যাখ্যা করার জন্য কি কোনও মানদণ্ড রয়েছে এবং যদি হ্যাঁ, এটি কীভাবে সংজ্ঞায়িত হয়?

"ফিলকলার" ফাংশনের জন্য ফটোশপের জন্য জাভাস্ক্রিপ্ট স্ক্রিপ্টিং গাইড কোনও আইটেমের রঙ কীভাবে পরিবর্তন করবেন তার একটি উদাহরণ এখানে:

fillPath
([fillColor]
[, mode]
[, opacity]
[, preserveTransparency] [, feather]
[, wholePath] [, antiAlias])

বন্ধনীগুলির অর্থ কী এবং বন্ধনীগুলিতে কেন কমা রয়েছে? এটি নীচের উদাহরণ কলগুলির সাথে কীভাবে সম্পর্কিত?

myPath.fillPath(myNewColor)

myPath.fillPath(mynewColor, {
    mode: RGB,
    opacity: .5
})

4
এআইপিআই রেফারেন্স ডকুমেন্টের এমন কোনও ভূমিকা রয়েছে যা তাদের সিনট্যাকটিক কনভেনশনগুলি বর্ণনা করে?
গ্রেগ হিউগিল

35
যে ব্যক্তির কাছে ভোট দেওয়ার পক্ষে ভোট দিয়েছেন: আমি বিশ্বাস করি যে এই প্রশ্নের যোগ্যতা রয়েছে, এবং যদি আমি পারতাম তবে "বন্ধ করতে ভোট দেবে না"। এটি এমন কোনও প্রশ্ন নয় যা আমি আগে দেখেছি (বা শুনেছি), এটি একটি বৈধ প্রোগ্রামিং-সম্পর্কিত সমস্যা সম্বোধন করে, এবং আমি যখন লোকজনকে প্রোগ্রামিং-সম্পর্কিত বিষয়গুলি শিখিয়ে থাকি তখন ব্যক্তিগতভাবে উত্তরটি কার্যকরভাবে খুঁজে পেতাম।
ডেভিড ওলবার

4
ডেরেক: আমি মনে করি আপনি মূল পোস্টে একটি সাহসী বাক্য মিস করেছেন। যদি আপনি "এপিআই ডকুমেন্টেশন কীভাবে পড়বেন" গুগল করেন তবে প্রথম 10 ফলাফলের তথ্য "বিমূর্ত", "অসম্পূর্ণ", "বিভ্রান্তিকর" ইত্যাদি বলে, এইভাবে আমার প্রশ্নের পয়েন্টটিকে আরও শক্তিশালী করে।
dbonneville

4
গ্রেগ: ফটোশপ / অ্যাডোব পণ্যগুলির কোনও পরিচয় নেই। তারা সকলে প্রতিটি পণ্য পিডিএফ একই ফর্ম্যাট অনুসরণ করে। আমি যে অন্যান্য এপিআইগুলি ভাবতে চাইছি তারা সেগুলিই করবে। একটি অন্তর্নিহিত জ্ঞান রয়েছে যা আমার অনেক ক্ষেত্রেই না এবং অবশ্যই তা করতে চাই।
dbonneville

4
একটি দরকারী সংস্থান হ'ল এক্সটেনডস্ক্রিপ্ট আইডিই (হিট এফ 1) এ নির্মিত অবজেক্ট ভিউয়ার। কোনও বস্তুর উপর ক্লিক করা আপনাকে দেখায় যে এটিতে কী কী বৈশিষ্ট্য এবং পদ্ধতি রয়েছে। এছাড়াও যদি এটি অন্যান্য অবজেক্টগুলিকে প্যারামিটার হিসাবে ব্যবহার করে (সাধারণত) তাদের সাথে লিঙ্ক করে যাতে আপনি দেখতে পাবেন যে তাদের কী কী বৈশিষ্ট্য রয়েছে। এটি নিখুঁত নয় তবে এটি সহায়তা করে।
পিডিআইজি

উত্তর:


94

তাহলে কেন আমার মতো বহুবর্ষজীবী নবীন / হ্যাকার / ডিআইআইআরগুলিকে বিভ্রান্ত করার জন্য এপিআই ডকুমেন্টেশন এমনভাবে লেখা হয়?

এটি আসলে সেভাবে লেখা উচিত নয়। আমি সম্মত হব এপিআই নথি জুড়ে ব্যবহারের কোনও সহজতা নেই বলে মনে হচ্ছে। তবে, পুরানো manস্টাইল সিনট্যাক্স কনভেনশন থেকে আধুনিক এপিআই / নেমস্পেস কনভেনশনগুলিতে প্রচুর ক্রস ওভার রয়েছে ।

সাধারণত, যে ধরণের ব্যক্তি এপিআই দিয়ে কাজ করে সেগুলির বিকাশের কিছুটা ব্যাকগ্রাউন্ড বা কমপক্ষে একটি 'পাওয়ার ব্যবহারকারী' থাকবে। এই ধরণের ব্যবহারকারীরা এ জাতীয় সিনট্যাক্স কনভেনশনগুলিতে ব্যবহৃত হয় এবং এপিআই ডকুমেন্টটি নতুন তৈরির চেষ্টা করার চেয়ে অনুসরণ করা আরও বেশি অর্থবোধ করে।

কোথাও এমন কিছু রহস্যজনক দলিল আছে যা মানুষকে এপিআই ডকুমেন্টেশন কীভাবে পড়তে হয় তা বলে?

সত্যিই কোথাও আশেপাশে কোনও স্ট্যান্ডার্ড, বা আরএফসি নেই, সুপারসেক্রেটসিন্ট্যাক্সডোক রয়েছে, তবে ইউনিক্স ম্যান পেজ সিঙ্কপোসিস ফর্ম্যাটের জন্য ~ 30 বছরের পুরানো ফাইল রয়েছে যা ব্যাপকভাবে ব্যবহৃত হয়।

এর কয়েকটি উদাহরণ (এবং আপনার প্রশ্নের উত্তর দেওয়া):

আন্ডারলাইন করা শব্দগুলিকে আক্ষরিক বিবেচনা করা হয়, এবং টাইপ করা হয় ঠিক যেমনটি প্রদর্শিত হয়।

একটি আর্গুমেন্টের চারপাশে স্কোয়ার বন্ধনী ([]) নির্দেশ করে যে আর্গুমেন্টটি alচ্ছিক।

উপবৃত্তাকার ... পূর্ববর্তী যুক্তি-প্রোটোটাইপ পুনরাবৃত্তি হতে পারে তা দেখানোর জন্য ব্যবহৃত হয়।

একটি বিয়োগ চিহ্ন দিয়ে শুরু হওয়া একটি যুক্তি - প্রায়শই কোনও ধরণের পতাকা যুক্তি বোঝাতে নেওয়া হয় এমনকি যদি এটি এমন কোনও অবস্থানে উপস্থিত হয় যেখানে কোনও ফাইলের নাম উপস্থিত হতে পারে।

প্রায় সমস্ত প্রোগ্রামিং সম্পর্কিত ডকুমেন্টেশন এ ধরণের সিনট্যাক্স কনভেনশন ব্যবহার করে পাইথন , ম্যান পেজ , জাভাস্ক্রিপ্ট লিবস ( হাইচার্ট ) ইত্যাদি,


অ্যাডোব এপিআই থেকে আপনার উদাহরণটি ভাঙা

fillPath
([fillColor]
[, mode]
[, opacity]
[, preserveTransparency] [, feather]
[, wholePath] [, antiAlias])

আমরা দেখতে পাচ্ছি fillPath()(একটি ফাংশন) alচ্ছিক আর্গুমেন্ট গ্রহণ করে fillColor, mode, opacity, preserveTransparency, feathe, wholePathবা antiAlias। কল করা হচ্ছে fillPath(), আপনি যে প্যারামিটারগুলির মধ্যে এটির থেকে যে কোনও জায়গায় যে কোনও জায়গায় যেতে পারেন। Alচ্ছিক কমাগুলির []অর্থ হ'ল যদি এই প্যারামিটারটি অন্যদের পাশাপাশি ব্যবহৃত হয় তবে এটির আলাদা করতে আপনার কমা প্রয়োজন। (সাধারণ জ্ঞান কখনও কখনও, অবশ্যই, তবে কখনও কখনও ভিবি এর মতো কিছু ভাষার স্পষ্টতই সেই কমাগুলি প্রয়োজন যা সঠিকভাবে কোন প্যারামিটারটি অনুপস্থিত রয়েছে তা বর্ণনা করতে পারে!)। যেহেতু আপনি ডকুমেন্টেশনের সাথে লিঙ্ক করেননি (এবং আমি এটি অ্যাডোবের স্ক্রিপ্টিং পৃষ্ঠায় খুঁজে পাচ্ছি না ) অ্যাডোব এপিআই কোন ফর্ম্যাটের প্রত্যাশা করছে তা জানার উপায় নেই। যাইহোক, বেশিরভাগ ডকুমেন্টেশনের শীর্ষে একটি কনভেনশনগুলির মধ্যে ব্যবহৃত ব্যাখ্যাগুলির শীর্ষে থাকতে হবে expla

সুতরাং, এই ফাংশনটি সম্ভবত বিভিন্ন উপায়ে ব্যবহার করা যেতে পারে:

fillPath() //Nothing passed
fillPath(#000000,RGB) // Black, in RGB mode
fillPath(#000000,RGB,50) // Black, in RGB mode, half opacity

//Now it gets tricky, this might ALSO be acceptable:
fillPath(#000000,50) // Black, no mode, half opacity

//OR
fillPath(#000000,,50) // Black, no mode, half opacity

আবার, এপিআই / প্রোগ্রামিং সম্পর্কিত সমস্ত নথি জুড়ে সাধারণত কিছু মান রয়েছে standards তবে প্রতিটি নথিতে সূক্ষ্ম পার্থক্য থাকতে পারে। পাওয়ার ব্যবহারকারী বা বিকাশকারী হিসাবে আপনি যে ডকুমেন্টগুলি / ফ্রেমওয়ার্ক / লাইব্রেরিগুলি ব্যবহার করার চেষ্টা করছেন তা আপনি বুঝতে এবং বুঝতে সক্ষম হবেন বলে আশা করা হচ্ছে।


5
ইউনিক্স ম্যান পেজ সংশ্লেষ ফর্ম্যাট লিঙ্কটি মারা গেছে - কারও প্রতিস্থাপনের লিঙ্ক আছে? @PenguinCoder আপডেট করুন: [উপর ভিত্তি করে unix.stackexchange.com/questions/17833/... (ইউনিক্স স্ট্যাক এক্সচেঞ্জ), এটা ঢিলেঢালাভাবে এ [ভিত্তি করে en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_Form (EBNF)
steviejay

ম্যান পৃষ্ঠার
সিনপোসিস

6

গতিশীল টাইপযুক্ত ভাষার জন্য এপিআই ডকস খুব সাবধানে হতে পারে না সাবধানতার সাথে লেখা না থাকলে, এটি সম্পর্কে খুব খারাপ লাগবেন না, এমনকি সবচেয়ে পাকা বিকাশকারীও এগুলি বোঝার চেষ্টা করতে খুব কঠিন সময় কাটাতে পারেন।

বন্ধনী এবং এই জাতীয় সম্পর্কে, সাধারণত একটি কোড কনভেনশন বিভাগ থাকে যা আক্ষরিক উদাহরণগুলির বাইরে সঠিক ব্যবহারের ব্যাখ্যা দেয়; যদিও ইবিএনএফ , রেজেক্স এবং রেলরোড ডায়াগ্রামগুলি প্রায় সর্বব্যাপী, তাই বেশিরভাগ স্বরলিপিগুলি বোঝার জন্য তাদের সাথে আপনার পরিচিত হওয়া উচিত।


3

বন্ধনী মানে সম্পত্তিটি .চ্ছিক। সচেতন থাকুন যদিও আপনি যদি এনটিএইচ র‌্যাঙ্কে কিছু সম্পত্তি সেট করতে চান তবে আপনাকে হয় শীর্ষস্থানীয় ব্যক্তির জন্য সম্পত্তি ঘোষণা করতে হবে বা সেগুলি অপরিজ্ঞাত হিসাবে ঘোষণা করতে হবে:

fillPath() //good
fillPath ( someFillColor ) //good
fillPath ( someFillColor, mode ) //good
fillPath ( undefined, mode ) //good
fillPath ( mode ) //bad
fillPath ( undefined ) //really bad

4
fillPath (mode)ঠিক আছে হতে পারে।
Anচ্ছিক

4
এমএমএমএম এটি সম্ভব তবে তবে স্ক্রিপ্টটি আমার জন্য কিছু করতে পারে তার চেয়ে শক্তিশালী কিছুতে নির্ভর করতে আমি পছন্দ করি: ডি
লুইক আইগন

1

কিছুক্ষণ আগে আমার এই একই প্রশ্ন ছিল এবং কেউ আমাকে বর্ধিত ব্যাকাস – নওর ফর্মের দিকে ইঙ্গিত করলেন ।

এটি বোধগম্য হয় কারণ সম্ভাব্য সীমাহীন ফলাফল তৈরি করতে প্রোগ্রামিং ব্যবহার করা যেতে পারে। ডকুমেন্টেশন প্রতিটি সম্ভাব্য ক্ষেত্রে একটি উদাহরণ প্রদর্শন করতে পারে না। সাধারণ ব্যবহারের একটি ভাল উদাহরণ আমি সহায়ক তবে আপনি একবার অন্তর্নিহিত বাক্য গঠনটি পড়তে পারবেন আপনি নিজের কোড তৈরি করতে সক্ষম।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.