"সর্বজনীন এপিআইগুলি চিরকালের জন্য রয়েছে: এটি ঠিক করার একমাত্র সুযোগ"?


20

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


2
আমি নীতিটি সমস্ত কোডে প্রসারিত করব। একই জিনিস একাধিকবার লেখার জন্য পর্যাপ্ত সময় নেই। নিখুঁত কোড লেখা একটি দক্ষতা যা শেখা যায়।
tp1

22
@ টিপি 1: নিখুঁত কোড লেখা এমন দক্ষতা যা আসল বিশ্বে নেই।
মাইকেল বর্গওয়ার্ট

4
@ মাইকেল মুরগওয়ার্ট: সঠিক কোন সংস্করণটি ব্যবহার করতে হবে তা বেছে নেওয়া দরকার।
tp1

1
আমি এটি বাস্তব বিশ্বে দেখেছি এবং এটি এপিআইয়ের ধরণের উপর নির্ভর করে। পাঠ শিখেছি: যে কোনও "জনসাধারণের মুখোমুখি" ওয়েব এপিআইতে প্রথম প্রয়োজনীয়তা হ'ল তারা এই এপিআইয়ের কোন সংস্করণ ব্যবহার করবে তা নির্বাচন করার জন্য এপিআই ব্যবহারকারীদের সক্ষমতা।
জোশ পেটিট

উত্তর:


32

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

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


2
"একটি কঠিন প্রযুক্তিগত সমস্যা এবং একটি কঠিন প্রযুক্তিগত সমস্যা উভয়ই" আপনি দু'বার "প্রযুক্তিগত" পুনরাবৃত্তি করেছিলেন।
লুস্কুবাল

12
@ লুইসুবল: কারণ এটি সত্যিই এক জঘন্য প্রযুক্তিগত সমস্যা।
মাইকেল বর্গওয়ার্ট

3
@ লুইসুবাল আপনার মানে একবার। একবার বারবার বলেছেন, দু'বার বলেছেন।
জো জে।

4
"সর্বজনীন উত্তর চিরকালের জন্য নয় ..."
ক্রিস

3
@ ক্রিস সত্যই নয় জাস্টিনের উত্তর এখন লুইস্কুবালের মন্তব্যের সাথে সামঞ্জস্যপূর্ণ নয়। :-)
সিকিক

12

উদ্ধৃতি লেখক হলেন জোশুয়া ব্লচ, বিবৃতিটি তার বাম্পার-স্টিকার এপিআই ডিজাইনের নিবন্ধ থেকে এসেছে:

হীরার মতো সর্বজনীন API গুলি চিরকাল থাকে। এটি ঠিকভাবে পাওয়ার জন্য আপনার কাছে একটি সুযোগ রয়েছে তাই এটি আপনার সেরাটি দিন।

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

  • আপনি যদি প্রোগ্রাম করেন তবে আপনি একটি এপিআই ডিজাইনার

    • ভাল কোডটি মডুলার - প্রতিটি মডিউলের একটি এপিআই থাকে
  • দরকারী মডিউলগুলি পুনরায় ব্যবহার করতে ঝোঁক

    • মডিউলটির ব্যবহারকারীরা একবার হয়ে গেলে, ইপিআই পরিবর্তন করতে পারে না
    • ভাল পুনঃব্যবহারযোগ্য মডিউলগুলি কর্পোরেট সম্পদ
  • এপিআই-এর বিবেচনায় কোডের মান উন্নত

স্লাইড উপসংহার এটিকে একটি সাধারণ পদ্ধতির হিসাবেও জোর দেয়:

  • এপিআই ডিজাইন একটি মহৎ এবং ফলপ্রসূ কারুকাজ

    • প্রচুর প্রোগ্রামার, শেষ ব্যবহারকারী, সংস্থাগুলি উন্নত করে ...

2
প্রযুক্তিগতভাবে হীরা মেটাস্টেবল। থার্মোডায়নামিকভাবে বলতে গেলে গ্রাফাইট কার্বনের আরও স্থিতিশীল রূপ।
অবধি

3

এপিআইগুলি সর্বদা পরিবর্তিত হয়, অন্যথায় সিস্টেম আপগ্রেডের বিন্দুটি কী হবে? কেবল ইন্টার্নাল বদলাচ্ছেন?

সিস্টেমের প্রতিটি সংস্করণ নতুন এপিআই এনে দেয়, পুরানো এপিআইগুলি অপ্রচলিত হয়ে যায় এবং অপ্রচলিত API গুলি অদৃশ্য হয়ে যায়।

প্রযুক্তিগতভাবে এবং যোগাযোগের দিক থেকেও API পরিবর্তন কেবলমাত্র যত্নবান হতে হবে।


যতক্ষণ না আপনি আপনার সমস্ত গ্রাহকের সাথে ভালভাবে মিলিত হতে পারেন এবং তারা তাদের ব্যবহারকারীদের সাথে কথা বলতে পারেন - উইন্ডোজ দেখুন: উইন্ডোজের অনেকগুলি পুরানো, অবজ্ঞাপূর্ণ, খারাপ এপিআই রয়েছে আধুনিক ব্যবহারকারীদের এমনকি প্রচুর পুরানো অ্যাপ্লিকেশন চালানোর মতো শেষ ব্যবহারকারী
জোহানেস

2

আমার মতামতটি একবার প্রকাশিত হবে, এপিআই-র 'সংস্করণ' চিরকালের জন্য, তবে আপনি একটি '2.0' এপিআই প্রকাশ করে এটিকে অবজ্ঞা করতে পারেন (বেশ কয়েকটি উদাহরণ যেখানে এটি ঘটছে - বর্তমানে, আমি স্ট্রভা সম্পর্কে ভাবতে পারি যারা মুক্তি পেয়েছে) তাদের পরিষেবাগুলিকে গ্রাস করতে উন্নয়নের জন্য একটি এপিআইয়ের একটি 2.0 সংস্করণ)।

সমস্যাটি সেই আসল এপিআই বিজ্ঞাপনটি অন্তর্নিহিত সমর্থন করে ... আমার ধারণা এটি পুরানো এপিআইর ব্যবহারের উপর নির্ভর করে এবং সেই এপিআই গ্রাহকদের কী মূল্য আপনার হাতে রয়েছে on

উইন্ডোজ 3.x এবং 9x ইত্যাদি বলার 'পুরানো দিনগুলিতে' ফিরে যাওয়া, একবার প্রকাশিত হলে, ওএস এপিআইগুলি সম্পন্ন হয়ে সেট হয়ে গেছে। এখন, ওএস আপডেটগুলি সর্বদা ধাক্কা দেওয়া হয়, সুতরাং নতুন এপিআই প্রকাশ করা যেতে পারে, তবে আমি মনে করি এতক্ষণ আপনি যখন কোনও নির্দিষ্ট ওএস ফ্লেভার (বড় রিলিজ) চালাচ্ছেন, সেই এপিআইগুলি কেবলমাত্র যোগ করা হবে, কখনও সরানো হবে না ... নাও হতে পারে যদিও 'পরের' বড় রিলিজের ক্ষেত্রে হোক।

হুম, সম্ভবত আমি মূল প্রশ্নের অভিপ্রায় থেকে বিপথগামী হয়েছিলাম।


1

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

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

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

গ্রিপিং হ্যান্ডে, কমপক্ষে একজন এপিআই সরবরাহকারী আছেন যিনি নিয়মিত এপিআইতে ব্রেকিং পরিবর্তনগুলি পরিচয় করিয়ে দেন এবং যাইহোক হাস্যকরভাবে সফল: ফেসবুক। তবে তারা পরিবর্তনগুলি খুব সাবধানতার সাথে পরিচালনা করে: একটি প্রকাশিত নীতিমালা রয়েছে , ব্রেকিং পরিবর্তনগুলি ঘোষিত হয় এবং কমপক্ষে 90 দিন আগে ব্যাখ্যা করা হয় এবং বিকাশকারীরা সেই সময়সীমার মধ্যেই এগুলি সক্রিয় করতে বেছে নিতে পারেন।


1

আপনার যদি এপিআইতে কোনও সংস্করণ নম্বর অন্তর্ভুক্ত করার দূরদৃষ্টি থাকে। হয় সংযোগ / ইনিশিয়ালেশন কল, বা, প্রতিটি কলের প্যারামিটার তালিকার শুরুতে কোথাও কোথাও, তারপরে আপনার এপিআই বিদ্যমান ক্লায়েন্টগুলিকে ব্যাহত না করে সময়ের সাথে বিবর্তিত এবং পরিবর্তন করতে পারে।


0

যদিও আমরা যা করি তা হ'ল একযোগে তাদের সর্বোত্তম করে তোলা, তবে সময় পরিবর্তন এবং উন্নতি হওয়ার পরে, অনেক সময় আমাদের তথ্য আপডেট করতে হবে, যেমনটি অনেক দৈত্য সরবরাহকারী করছেন, (যেমন ফেসবুক একাধিক আপডেট, টুইটার এক বড় ওআউথ এবং বেশ কয়েকটি মেজর দিকে ঝুঁকছেন, তবে সম্ভবত সমস্ত কিছু উন্নতিতে আসে তাই ঘন ঘন কোনও পরিবর্তন হয় না And হ্যাঁ দয়া করে বয়স্ককে সমর্থন করা বন্ধ করবেন না, ব্যথা হয় !! :)


-1

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

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

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