লাইব্রেরি বনাম কাঠামো বনাম এপিআই? [বন্ধ]


33

গ্রন্থাগার, কাঠামো এবং এপিআইয়ের মধ্যে পার্থক্য কী? এগুলি আমার কাছে একই রকম মনে হয়। আমি মানুষের এই কথাটি শুনতে শুনতে চাই।





2
@ জর্জি: আপনার উত্তর হিসাবে এটি জমা দেওয়া উচিত ছিল। যেহেতু এটি দাঁড়ায় এটি সীমান্ত স্প্যাম এবং পৃষ্ঠাটি বন্ধ করে দেয়।

2
@ সার্জিও - জার্গ ডব্লু মিটাগের এসও-তে 1171 চিন্তাশীল এবং সুনাম প্রাপ্ত উত্তর রয়েছে (এখানে 42 টি চিন্তাশীল এবং ভাল উত্তর পেয়েছে)। সে কঠিন হওয়ার চেষ্টা করছে না। তিনি এই প্রশ্নটি কতটা অপ্রয়োজনীয় তা দেখিয়ে পি.এসইর উন্নতির চেষ্টা করছেন (এখানে কোনও উত্তরই এখনও কোনও কাঠামোর স্বতন্ত্র বৈশিষ্ট্য উল্লেখ করে না উল্লেখ করে)।
কর্বিন মার্চ

উত্তর:


35

একটি গ্রন্থাগার হ'ল ফাংশন / অবজেক্টের সংকলন যা একটি নির্দিষ্ট উদ্দেশ্যে কাজ করে। আপনি বিভিন্ন প্রকল্পে একটি গ্রন্থাগার ব্যবহার করতে পারেন।

একটি কাঠামো হ'ল একটি অ্যাপ্লিকেশন তৈরিতে সহায়তা করার জন্য নিদর্শন এবং গ্রন্থাগারগুলির সংকলন।

একটি এপিআই হ'ল অন্য প্রোগ্রামগুলির জন্য সরাসরি অ্যাক্সেস ছাড়াই আপনার প্রোগ্রামের সাথে ইন্টারঅ্যাক্ট করার ইন্টারফেস।

এটিকে অন্য উপায়ে বলার জন্য, একটি অ্যাপ্লিকেশনটির অ্যাড-অন / পিস হিসাবে একটি গ্রন্থাগার, অ্যাপ্লিকেশনটির কঙ্কাল হিসাবে একটি কাঠামো এবং একটি অ্যাপ্লিকেশন যা অ্যাপ্লিকেশনটির বাহ্যিক-মুখী অংশ হিসাবে ভাবেন।


7
এটি কোনও কাঠামোর খুব ভাল সংজ্ঞা নয়। আমি কোনও ফ্রেমওয়ার্ককে সত্যই "নিদর্শন এবং গ্রন্থাগারের সংগ্রহ" বলব না
22-22 এ TheLQ

কাঠামোটি তৈরি করার মতো পরিবেশের মতো। +1
ক্লাইম

হ্যাঁ, আমি সেটার কথার জন্য কিছুটা ক্ষতি করেছিলাম। কারও কি আরও ভাল পরামর্শ আছে? অন্যান্য জ্ঞানী সম্পাদনা করতে নির্দ্বিধায়। আমি উইকিপিডিয়ায় নজর রেখেছিলাম, যা একটি কাঠামো বলে: "ফ্রেমওয়ার্কগুলি এমন একটি সফটওয়্যার লাইব্রেরির একটি বিশেষ ক্ষেত্রে যেগুলি একটি সু-সংজ্ঞায়িত অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস (এপিআই) এ মোড়ানো কোডটির পুনরায় ব্যবহারযোগ্য অ্যাস্ট্রাকশন", যা মনে হয় আরও বিভ্রান্তির কারণ হতে পারে সাহায্যের চেয়ে এই প্রশ্নের প্রসঙ্গ।
জিএসটো

3
একটি লাইব্রেরি হ'ল যখন আপনার কোডটি চার্জ হয় (আপনার কোডটি "লাইব্রেরিটি ব্যবহার করে") এবং একটি ফ্রেমওয়ার্কটি যখন চার্জ হয় (ফ্রেমওয়ার্কটি "আপনার কোড চালায়")। উদাহরণস্বরূপ, একটি কাঠামো একটি আদেশ দেয় যে কী জিনিস হওয়া উচিত (সুইং, সার্লেটস) যখন আপনি একটি লাইব্রেরির সাথে সিদ্ধান্ত নেন এটি কখন এবং কীভাবে ব্যবহৃত হয় (চিত্র রূপান্তর, এনক্রিপশন)। একটি এপিআই হ'ল সংযুক্ত ফাংশনের সংজ্ঞা যা আপনি কল করতে পারেন এবং এটি উভয় গ্রন্থাগার এবং ফ্রেমওয়ার্কের একটি অঙ্গ।
মার্টিন উইকম্যান

14

ভাল উত্তর এখন পর্যন্ত কিন্তু তারা একটি মূল পয়েন্ট মিস করে - একটি কাঠামো IoC ব্যবহার করে । আপনার কোডটি একটি ফ্রেমওয়ার্ক দ্বারা বেষ্টিত। এটি এর ভিতরেই থাকে। বিপরীতভাবে, আপনার কোড ঠিক ব্যবহার লাইব্রেরি বা API- টি। এটি এর বাইরে থাকে। আইওসি পার্থক্য।


অগত্যা সত্য নয়। একটি ফ্রেমওয়ার্ক আইওসি ব্যবহার করতে পারে এবং আপনার অ্যাপ্লিকেশনটি কোনও ফ্রেমওয়ার্কের মধ্যে থাকতে পারে, তবে এটি করার দরকার নেই। মূর্খতার সাথে ফ্রেমওয়ার্কগুলিতে উইকিপিডিয়া এন্ট্রি এটিকে একটি ফ্রেমওয়ার্কের 'স্বতন্ত্র বৈশিষ্ট্য' হিসাবে তালিকাভুক্ত করে এবং এই গবেষণামূলক প্রবন্ধটিকে " dirkriehle.com/computer-sज्ञान/research/ dissertation/…" উল্লেখ করে , তবে এই গবেষণায় নিজেই এই বাক্যাংশগুলি ' বিপরীতমুখী ' ধারণ করে না 'বা' আইওসি ', এবং প্রকৃতপক্ষে উল্লেখ করেছে "সাধারণত, অ্যাপ্লিকেশনগুলি কেবল একটি কাঠামোই নয়, বেশ কয়েকটি ব্যবহার করে।" (p26, সুত্র P9)
কার্ক Broadhurst

11
@ কির্ক ব্রডহর্স্ট-আসলে মার্টিন ফাউলারের কথা ভাবছিলেন : "নিয়ন্ত্রণের বিপরীত পরিবর্তন একটি কাঠামোকে একটি লাইব্রেরির চেয়ে আলাদা করে তোলে এমন একটি মূল অংশ (...) একটি কাঠামোটিতে আরও আচরণ সহ আরও কিছু বিমূর্ত নকশাকে মূর্ত করা হয়েছে use ব্যবহারের জন্য সাবক্ল্যাসিং বা নিজের ক্লাসে প্লাগ করে ফ্রেমওয়ার্কের বিভিন্ন জায়গায় আপনার আচরণ সন্নিবেশ করা দরকার The ফ্রেমওয়ার্কের কোডটি তখন আপনার কোডকে কল করে ... "যদি আমরা উপসংহারে পৌঁছে যাই যে আইওসি কোনও আলাদা বৈশিষ্ট্য নয়, তবে সেখানে নেই স্বতন্ত্র বৈশিষ্ট্য - তারা সব একই এবং এটি মজাদার নয়।
স্ক্যান্ট রজার

@ স্ক্যানটোগোজার, জাভা সংগ্রহের ফ্রেমওয়ার্ক আইওসি ব্যবহার করে না? মনে হচ্ছে না .......
পেসারিয়ার

3

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

একটি এপিআই (অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস) কিছু কার্যকারিতার ইন্টারফেস যা কোনও অ্যাপ্লিকেশনটিকে উপলব্ধ কার্যকারিতা অ্যাক্সেস করার অনুমতি দেয়। একটি এপিআই ইন্টারফেস হিসাবে উল্লেখ করা যেতে পারে। সিস্টেম, গ্রন্থাগার, ফ্রেমওয়ার্ক, প্রোগ্রাম এবং অ্যাপ্লিকেশন সহ অনেক স্তরে এপিআই বিদ্যমান। কোডগুলি প্রয়োগকারী কার্যকর করার আগে এপিআইগুলি সংজ্ঞায়িত করা উচিত।

এপিআইগুলির স্থিতিশীল হওয়া উচিত, যদিও এপিআই এর অংশগুলি বিভিন্ন কারণে অবচিত করা যেতে পারে। যত বেশি বিস্তৃতভাবে এপিআই ব্যবহৃত হয় এটির পরিবর্তন করা তত বেশি কঠিন। বেশিরভাগ জাভা ০.০ এপিআই এর সবকটি এখনও পাওয়া যায় না যদিও অনেকগুলি পদ্ধতি হ্রাস করা হয়েছে।

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

জাভা সংগ্রহ ফ্রেমওয়ার্ক বিভিন্ন ধরণের অবজেক্টের এপিআইয়ের একটি সংগ্রহ যা সংগ্রহগুলি পরিচালনা করতে ব্যবহার করা যেতে পারে। এটি বিভিন্ন সংগ্রহে এপিআইয়ের একটি শ্রেণিবিন্যাস সরবরাহ করে। জাভা সংগ্রহ ফ্রেমওয়ার্কে সোর্টার্ড ইন্টারফেস সেট ইন্টারফেস প্রসারিত করে যা কালেকশন ইন্টারফেসকে প্রসারিত করে। এই API গুলি বিমূর্ত ইন্টারফেস এবং প্রকৃত বাস্তবায়নের বিভিন্ন নাম রয়েছে। সংগ্রহ ফ্রেমওয়ার্ক সংগ্রহগুলি বাস্তবায়নকে সহজ করে তোলে এবং উন্নয়নের সময় পরিবর্তিত বাস্তবায়নকে সহজতর করে।

J2EE বিকাশ লক্ষ্য করে জাভা স্প্রিং ফ্রেমওয়ার্কে দেখা যায় ফ্রেমওয়ার্কগুলি ছোট ফ্রেমওয়ার্কগুলি দিয়ে তৈরি করা যেতে পারে। বসন্তে এক ডজনেরও বেশি ফ্রেমওয়ার্ক রয়েছে, যার মধ্যে অনেকগুলি নিজেরাই ব্যবহার করা যেতে পারে বা অন্যান্য ফ্রেমওয়ার্ক দ্বারা প্রতিস্থাপিত হতে পারে।

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


2

একটি কাঠামো গ্রন্থাগার থেকে এক ধাপ। যদি আপনার সরঞ্জামবাক্স একটি লাইব্রেরি হয় তবে আপনার কর্মশালার একটি কাঠামো হবে।

উইকিপিডিয়া বলেছেন

একটি এপিআই হ'ল বিমূর্ততা যা কোনও সফ্টওয়্যার সিস্টেমের উপাদানগুলির দ্বারা ব্যবহৃত ফাংশনগুলির সেটগুলির সাথে ইন্টারঅ্যাক্টের জন্য একটি ইন্টারফেস বর্ণনা করে

একটি এপিআই এবং একটি ইউজার ইন্টারফেসের মধ্যে গুরুত্বপূর্ণ পার্থক্যটি হ'ল একটি এপিআই অন্য সফ্টওয়্যার / পরিষেবাদিগুলিকে আপনার সমাধানটি প্রোগ্রামের মাধ্যমে ইন্টারঅ্যাক্ট করতে দেয়।

অ্যাপ্লিকেশনগুলির জন্য (ডিএল বা প্লাগইনগুলির মাধ্যমে) বা ওয়েবসাইট এবং পরিষেবাদি (আরইএসটি এবং ওয়েবসার্চের মাধ্যমে) উভয়ই এপিআই তৈরি করা যেতে পারে


দুর্দান্ত উপমা ...
সূর্যুকং

1

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

ফ্রেমওয়ার্কগুলি এক অর্থে কিছুটা বাল্কিয়ার হয়ে থাকে কারণ এটি প্রায়শই নিজের ভাষা তৈরি করতে পারে। jQuery একটি কাঠামোর একটি উদাহরণ যা এর নিজস্ব বাক্য গঠন রয়েছে এবং একটি অর্থে আমার কোডে প্রবেশের ক্ষেত্রে এটি আরও কিছুটা ওজন বহন করে। ফ্রেমওয়ার্কগুলি এমন এক প্ল্যাটফর্মও হতে পারে যা এটিকে এক অর্থে এপিআই-এর অনুরূপ করে তোলে, যেমন উইন 32 এপিআই বা। নেট ফ্রেমওয়ার্কগুলির মধ্যে একটি অ্যাপ্লিকেশন তৈরির জন্য অসংখ্য পদ্ধতি রয়েছে যাতে ফ্রেমওয়ার্কগুলিতে এপিআই এবং ফ্রেমওয়ার্ক হিসাবে দেখা যায় এমন এপিআই থাকতে পারে।

গ্রন্থাগারগুলি বাইনারি ফাইল হতে থাকে যা কোনও এপিআই বা ফ্রেমওয়ার্ক বাস্তবায়ন করে এবং তাই এগুলি হ'ল বিট যা আপনাকে কিছু ক্ষেত্রে একটি এপিআই বা ফ্রেমওয়ার্ক ব্যবহার করতে হয়। কমপক্ষে এটি আমি এই শর্তাদি এবং তাদের মধ্যে পার্থক্যগুলি দেখি।


1

একটি লাইব্রেরিতে যান এবং বই পড়া শুরু করুন। আপনি যদি অ্যাপ্লিকেশন হন তবে বইয়ের সংগ্রহটি লাইব্রেরি। তাক, আলমারি এবং এই সমস্ত কিছুর মিশ্রণটি ফ্রেমওয়ার্কটি গঠন করে। বই পড়ার টাস্কটি সম্পাদন করার সময় আপনি যে সমস্ত যোগাযোগে আসেন তা হ'ল এপিআই।


এটি একটি দুর্দান্ত উত্তর।
ম্যাগাস

0

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

একটি অ্যাপ্লিকেশন (অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস) হ'ল একটি অ্যাপ্লিকেশন, সিস্টেম বা প্রযুক্তির সাথে কীভাবে কাজ করবেন তার একটি সংজ্ঞা ('ইন্টারফেস')। এটি অপরিহার্যভাবে অন্যান্য ক্রিয়াকলাপের সাথে যোগাযোগ করার জন্য উপলব্ধ অপারেশনগুলি সংজ্ঞায়িত করে। একটি API করতে একটি লাইব্রেরী (যার অর্থ এপিআই একটি লাইব্রেরি আবৃত বা ক্লাস সেট করা হয়), কিন্তু পার্থক্য একটি API সবসময় একটি বহিস্থিত সিস্টেম রেফারেন্স যে - এটি আপনার ডাটাবেস, ওয়েব পরিষেবা, অন্য অ্যাপ্লিকেশন, অথবা অপারেটিং সিস্টেম নিজেই।

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


0

অ্যাপ্লিকেশনটি কাঠামোর উপর ভিত্তি করে লাইব্রেরি ব্যবহার করে তৈরি করা হয় এবং একটি এপিআইয়ের মাধ্যমে যোগাযোগ করে।

আপনি যদি কোনও অ্যাপ তৈরি করে থাকেন তবে কোনও অনলাইন চিত্র প্রক্রিয়াকরণ অ্যাপ্লিকেশন বলুন,

  • আপনি কিছু প্রাক লিখিত ইমেজ প্রসেসিং লাইব্রেরি ব্যবহার করতে পারেন।
  • অ্যাপ্লিকেশনটি তৈরি করতে আপনাকে গাইডড করে এমন কোনও কাঠামোর উপর আপনি জানেন।
  • আপনি বাইরের বিশ্বের সাথে ইন্টারেক্ট করার জন্য কোনওভাবে অ্যাপ্লিকেশনটি সরবরাহ করবেন..তাই আপনার অ্যাপ্লিকেশনগুলির এপিআই হবে বিশ্বের অন্যান্য অংশে।

আপনার আবেদনে যখন কোনও কল আসে

  • এটি ফ্রেমওয়ার্কের দিকনির্দেশনার সাথে আপনি কীভাবে ডিজাইন করেছেন তা এমনভাবে পরিচালনা করা হবে
  • লাইব্রেরি দ্বারা পরিচালিত কল প্রক্রিয়াজাতকরণ
  • এই ফাংশনগুলি আপনার এপিআই এর মাধ্যমে বাইরের বিশ্ব থেকে অ্যাক্সেস করা হবে

ফোন করা ব্যক্তির কাছে

এগুলি বিদ্যমান থাকার কারণগুলি:

  • লাইব্রেরি: আপনাকে চাকা পুনর্বহালকরণ থেকে বাঁচায়
  • কাঠামো: সিস্টেমের নকশা এবং হ্যান্ডলিংয়ের অপ্রত্যাশিত ফাঁদগুলি থেকে আপনাকে বাঁচায় যদি না ফ্রেমওয়ার্কটিতে ত্রুটি থাকে
  • এপিআই: বাস্তব বিশ্বের অ্যাক্সেস থেকে মূলকে ইন্টারফেস করে অ্যাপ্লিকেশনটির সুরক্ষা নিশ্চিত করে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.