বিদ্যমান জাভা এপিআইয়ের বেশিরভাগ কার্যকারিতা প্রকাশ করার জন্য আমি একটি REST এপিআই তৈরি করছি। উভয় এপিআইই আমার সংস্থার অভ্যন্তরীণ ব্যবহারের জন্য; আমাকে বাহ্যিক ব্যবহারের জন্য ডিজাইন করতে হবে না। উভয় এপিআই-এর উপর আমার প্রভাব রয়েছে তবে আমি বিশ্রামটি বাস্তবায়ন করছি। স্থানীয় অ্যাপ্লিকেশনগুলির জন্য জাভা এপিআই ব্যবহার করা অবিরত থাকবে (এটি "অবসরপ্রাপ্ত" হচ্ছে না), তবে আরএসটি এপিআই উল্লেখযোগ্য নতুন বিকাশের জন্য ব্যবহৃত হবে।
জাভা এপিআই ক্লাসগুলির কয়েকটি হ'ল ডেটা (বৈশিষ্ট্যযুক্ত মটরশুটি, গেটার, সেটটার)। এবং এর মধ্যে কমপক্ষে কিছু REST এপিআই এর মাধ্যমে ডেটা হিসাবে (যা এক্সএমএল বা জেএসওনে মার্শাল করা হবে) প্রেরণে (কিছু আকারে) প্রেরণা বোধ করে। উদাহরণস্বরূপ, একটি শ্রেণি যা সার্ভার মেশিন সম্পর্কে তথ্য সঞ্চয় করে। এই ডেটা ক্লাসগুলির জন্য আমি নীচের পছন্দটির মুখোমুখি হয়েছি: আমি কি ...
- মূল জাভা ক্লাসটি (বা একটি সাবক্লাস) সরাসরি REST এপিআইতে প্রকাশ করুন বা or
- REST এপিআই এর জন্য একটি নতুন ডেটা ট্রান্সফার ক্লাস (ডিটিও প্যাটার্ন) তৈরি করবেন?
যে কোনও উপায়ে আমার কাছে REST ডেটা ট্রান্সফার ক্লাস থাকবে; প্রশ্নটি হ'ল অরিজিনালগুলি টিকিয়ে দেওয়া বা নতুন তৈরি করা (যা মূলগুলির অনুলিপিগুলির নিকটে হতে পারে)। অন্য পছন্দ থাকতে পারে, তবে আমি প্রধানত এই দুটি বিষয়ে ফোকাস করব।
# 1 এর জন্য যুক্তি:
- DRY (নিজেকে পুনরাবৃত্তি করবেন না)
- দ্রুত প্রয়োগ করা
- REST এপিআই আপগ্রেড করা সহজ
# 2 এর জন্য যুক্তি:
- জাভা এপিআই থেকে আলাদা করে যদি আরএসটি এপিআই এর সংস্করণ করা দরকার হয় তবে কী হবে? (এটি কিছুটা সম্ভবত
- জাভা ডেটা ক্লাসে যেমন বৈশিষ্ট্যগুলি অপসারণ, আচরণ যুক্ত করা, বা শ্রেণিবিন্যাসে পরিবর্তনগুলির মতো উল্লেখযোগ্য পরিবর্তন হয়? (এটিও কিছুটা সম্ভাবনা রয়েছে))
নীচের লাইনটি এটি ডিআরওয়াই (# 1) এবং ডিকোপলিং (# 2) এর মধ্যে কোনও ট্রেড অফের মতো বলে মনে হচ্ছে।
আমি # 1 দিয়ে শুরু করার দিকে ঝুঁকছি এবং তারপরে যদি সমস্যা দেখা দেয় তবে পরে # 2 এ চলে যাচ্ছেন, যা আপনার প্রয়োজনীয়তা প্রমাণ করতে পারবেন না তা তৈরি না করার চতুর গাইডলাইন অনুসরণ করে following এটা কি একটি খারাপ ধারণা; আমি যদি মনে করি যে আমি যেভাবেই সেখানে শেষ করতে পারি তবে কি # 2 দিয়ে শুরু করা উচিত?
আমার তালিকাগুলি থেকে কি বড় যুক্তি / পরিণতি অনুপস্থিত রয়েছে?