এর কাঠামোর জন্য কোনও অ্যাপ্লিকেশনটি আলগাভাবে জুড়ি দেওয়া সম্ভব?


14

ধরা যাক আমি একটি ওয়েব অ্যাপ্লিকেশন বিকাশ করছি। আমার প্রথম পছন্দটি হ'ল ফ্যাট-ফ্রি ফ্রেমওয়ার্ক (এফ 3) এবং এমভিসি প্যাটার্ন সহ পিএইচপি ব্যবহার করা। পরের বছর, আমি সিদ্ধান্ত নিতে পারি আমি জেন্ড ফ্রেমওয়ার্ক, বা এমনকি এএসপি.নেট এমভিসিতে যেতে চাই। আমার অ্যাপ্লিকেশনটি এমনভাবে ডিজাইন করার চেষ্টা করা কি এটির কাঠামোর সাথে looseিলে ?ালাভাবে মিলিত হয়েছে, বা কাঠামোটি এই বাস্তববাদী করার পক্ষে খুব অবিচ্ছেদ্য?

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


2
আপনার নিজস্ব অ্যাপ্লিকেশন ধারণার বিমূর্তকরণ
ভান হিলস

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

উত্তর:


29

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

এই সমস্ত সমস্যার মূল্য দেওয়ার জন্য ফ্রেমওয়ার্কগুলি পরিবর্তন করার ক্ষমতা রাখে? যেমনটি আমি বলেছিলাম, আপনি এটিকে কৌতূহলে পরিবর্তন করতে পারবেন না কারণ আপনাকে প্রক্সি ফ্রেমওয়ার্কটি সামঞ্জস্য করতে হবে, যা সরাসরি অ্যাপ্লিকেশন কোডটি সামঞ্জস্য করার চেয়ে আরও বেশি কাজ হতে পারে।


4
আপনার "প্রক্সি ফ্রেমওয়ার্ক" শব্দটি ব্যবহারটি আমার পক্ষে বিষয়টি স্পষ্ট করতে সহায়তা করেছে।
বড় ম্যাকলার্জহিউজ

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

5

কোন কাজ করতে পারেন.

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

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

আরও ইতিবাচক নোটে: আপনার প্রয়োগগুলি থেকে পৃথক কোনও প্ল্যাটফর্মে আপনার কয়েকটি পরীক্ষার (বিডিডি শৈলী) প্রকাশের কথা বিবেচনা করুন। যারা বড় লেখার পরে বেঁচে থাকতে পারে।


পিএইচপি থেকে .NET এ পরিবর্তন করা সম্ভবত আপনি বাস্তব হিসাবে বাস্তববাদী নয়। আমি খুব উচ্চ স্তরে, বিমূর্ত, সম্ভবত লুসিডে ভাবছি।
বিগ ম্যাকলার্জহিউজ

5

আমি একবার রবার্ট সি মার্টিনকে একটি বক্তৃতা দিতে দেখেছি যেখানে তিনি "আপনারা প্রথম সিদ্ধান্ত নেন পরে পরিবর্তন করা সবচেয়ে কঠিনতম" এর ধারায় কিছু বলেছিলেন।

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


এটা সত্যিই ভাল পরামর্শ!
বড় ম্যাকলার্জহিউজ

5

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

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

অন্যদিকে, ব্যবসায়িক বিধি এবং প্রক্রিয়াগুলি অ্যাপ্লিকেশন থেকে বাদ দেওয়া যেতে পারে। বিমূর্তনের শক্ত অংশটি যখন নিয়মগুলি সরাসরি কাঠামোর মাধ্যমে প্রয়োগ করা হয়; সুরক্ষা, অ্যাক্সেসযোগ্যতা এবং প্রক্রিয়া সিকোয়েন্সিং আপনার কাঠামোর দ্বারা প্রয়োগ করা হয় এবং এটি দেখতে সবচেয়ে কঠিন হতে পারে।

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


+1 টি। কোনও (ওয়েব) পরিষেবায় আপনার ব্যবসায়ের যুক্তি সরিয়ে আপনি কোনও অ্যাপ্লিকেশনকে এটি গ্রাস করতে দিতে পারেন, পিএইচপি এমভিসি অ্যাপ্লিকেশনটিকে কেবল আপনার ব্যবসায়িক যুক্তিতে একটি ওয়েব জিইউআইতে হ্রাস করে, পুরোটিকে পুরোপুরি প্রতিস্থাপন করা আরও সহজ করে তোলে।
কোডকাস্টার

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