খুব সতর্কভাবে
বৈশিষ্ট্য ব্রাঞ্চিং একটি বিকল্প তবে আমি এটি কিছুটা ভারী বলে মনে করি। এছাড়াও এটি গভীর পরিবর্তনগুলি সহজ করে তোলে যা নিয়ন্ত্রণের মধ্যে না রাখলে আপনার অ্যাপ্লিকেশনটির একদম দৃ .়তা সৃষ্টি করতে পারে। আদর্শভাবে আপনি আপনার মূল কোড বেসটি যতটা সম্ভব সাধারণ এবং জেনেরিক হিসাবে রাখার চেষ্টায় কাস্টমাইজেশনগুলি যথাসম্ভব চাপ দিতে চান।
এখানে আমি কীভাবে এটি করব যদিও আমি জানি না যে এটি ভারী পরিবর্তন এবং পুনরায় ফ্যাক্টরিংগুলি ব্যতীত আপনার কোড বেসে প্রযোজ্য কিনা। আমার অনুরূপ একটি প্রকল্প ছিল যেখানে বেসিক কার্যকারিতা একই ছিল তবে প্রতিটি গ্রাহকের জন্য খুব নির্দিষ্ট বৈশিষ্ট্যগুলির একটি সেট প্রয়োজন। আমি মডিউল এবং ধারকগুলির একটি সেট তৈরি করেছি যা আমি তারপরে কনফিগারেশনের মাধ্যমে সংগ্রহ করি (I la IoC)।
তারপরে প্রতিটি গ্রাহকের জন্য আমি একটি প্রকল্প তৈরি করেছি যা মূলত তাদের সাইটের জন্য সম্পূর্ণরূপে কনফিগার করা ইনস্টলেশন তৈরির জন্য কনফিগারেশন এবং বিল্ড স্ক্রিপ্ট ধারণ করে। মাঝে মাঝে আমি এই ক্লায়েন্টটির জন্য কাস্টম তৈরি কিছু উপাদান রাখি। তবে এটি বিরল এবং যখনই সম্ভব আমি এটিকে আরও জেনেরিক আকারে তৈরি করার চেষ্টা করেছি এবং এটিকে নীচে ঠেলে দিচ্ছি যাতে অন্যান্য প্রকল্পগুলি সেগুলি ব্যবহার করতে পারে।
শেষ ফলাফলটি আমার প্রয়োজনীয় কাস্টমাইজেশনের স্তরটি পেয়েছি, আমি কাস্টমাইজড ইনস্টলেশন স্ক্রিপ্টগুলি পেয়েছি যাতে আমি গ্রাহক সাইটে পৌঁছানোর সময় আমার মনে হয় না যে আমি সমস্ত সময় সিস্টেমে টিকেট করছি এবং যুক্ত হওয়া খুব বেশি গুরুত্বপূর্ণ বোনাস হিসাবে পেয়েছি রিগ্রেশন পরীক্ষাগুলি তৈরি করতে সক্ষম হবার জন্য সরাসরি বিল্ডে আবদ্ধ। এইভাবে যে কোনও সময় আমি একটি বাগ পেয়েছি যা গ্রাহক নির্দিষ্ট, আমি একটি পরীক্ষা লিখতে পারি যা এটি স্থাপন করার সাথে সাথে সিস্টেমটিকে দৃsert়ভাবে জানায় এবং এভাবে সেই স্তরে এমনকি টিডিডিও করতে পারে।
সংক্ষেপে:
- একটি ফ্ল্যাট প্রকল্প কাঠামো সহ ভারী মডুলারাইজড সিস্টেম।
- প্রতিটি কনফিগারেশন প্রোফাইলের জন্য একটি প্রকল্প তৈরি করুন (গ্রাহক, যদিও একাধিক একটি প্রোফাইল ভাগ করতে পারে)
- প্রয়োজনীয় কার্যকারিতা সেটগুলিকে আলাদা পণ্য হিসাবে জমা দিন এবং এটির মতো আচরণ করুন।
যদি সঠিকভাবে সম্পন্ন হয় তবে আপনার পণ্য সমাবেশে কয়েকটি কনফিগারেশন ফাইল বাদে সবগুলি থাকা উচিত।
কিছুক্ষণ ব্যবহার করার পরে আমি এমন মেটা-প্যাকেজ তৈরি শেষ করেছি যা বেশিরভাগ ব্যবহৃত বা প্রয়োজনীয় সিস্টেমগুলিকে একটি কোর ইউনিট হিসাবে একত্রিত করে এবং গ্রাহক সমাবেশগুলির জন্য এই মেটা-প্যাকেজটি ব্যবহার করে। কয়েক বছর পরে আমি একটি বৃহত টুলবক্স পেয়ে শেষ করেছি যা গ্রাহক সমাধান তৈরি করতে আমি খুব দ্রুত একত্রিত হতে পারি। আমি বর্তমানে স্প্রিং রুয়ের দিকে নজর দিচ্ছি এবং দেখুন যে আমি একদিন আশা করি আরও কিছুটা এগিয়ে যেতে না পারলে আমি আমাদের প্রথম সাক্ষাত্কারে গ্রাহকের সাথে সিস্টেমের প্রথম খসড়া তৈরি করতে পারি ... আমি মনে করি আপনি এটি ব্যবহারকারী চালিত বলতে পারেন বিকাশ ;-)।
আশা করি এটি সাহায্য করেছে
#ifdef
জন্য কাজ করে?