দুটি নির্ভরতা একই কার্যকারিতা সরবরাহ করে, বিভিন্ন নির্ভরতা দ্বারা প্রয়োজনীয়


9

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

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

আমি এগিয়ে যাওয়ার সর্বোত্তম উপায়টি কী তা নির্ধারণ করার চেষ্টা করছি এবং আপনি যে কোনও অন্তর্দৃষ্টি সরবরাহ করতে পারবেন তা স্বাগত জানাব।

আমি এতক্ষণ যা ভাবলাম তা চারটি বিকল্প:

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

কোন বিকল্পটি সবচেয়ে ভাল, বা "উপরের কোনওটিই নয়" বৈকল্পিক যা আমি অবগত নই?


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

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

সিমফনি 2 এবং তারা কীভাবে এই সমস্যাটি মোকাবেলা করেছে তা একবার দেখুন।
nietonfir

উত্তর:


7

কিছুই গ্রহণ করবেন না যে পৃথক প্রকল্পগুলি যতক্ষণ না তারা তাদের নিজস্ব স্পেসে কাজ করে (একে অপরের ক্যাশে দূষিত করে না) ততক্ষণ অতিরিক্ত কাজ করতে পারে। মতবাদ জেন্ডের ক্যাচিং রয়েছে জানে কিন্তু তারা জেন্ডের উপর নির্ভর করতে চায় না এবং বিপরীতে। সমস্ত লোক জেন্ড এবং মতবাদ ব্যবহার করতে চায় না।

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

অন্য স্তর তৈরি করা আদর্শ হবে তবে এটি প্রকল্পে অন্য একটি নির্ভরতা যুক্ত করবে, তাই রক্ষণাবেক্ষণের জন্য খুব ভাল নয়।

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

সুতরাং, প্রোগ্রামিং, রক্ষণাবেক্ষণ এবং অপারেশন দৃষ্টিকোণ থেকে, আমি কেবল তাদের একা রেখে দেব।


3

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

কেন কেবল "কনফিগারেশনকে আরও সুবিধাজনক করুন" দৃষ্টিভঙ্গি থেকে ইস্যুটি মোকাবেলা করবেন না?

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


0

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

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