আমার কাছে একটি বিশাল জাভা প্রকল্প রয়েছে এবং আমরা আমাদের বিল্ড চক্রের জন্য মাভেন ব্যবহার করি। এই একটি প্রকল্পটি ব্যাপকভাবে ব্যবহৃত হয় - অন্যান্য প্রকল্পগুলিতে, বিভিন্ন অ্যাপ্লিকেশনগুলিতে, যার মধ্যে কিছু রয়েছে এবং এটি অন্য কোথাও রয়েছে ... সত্যি বলতে কী, এটি কিছুটা গণ্ডগোলের বিষয় (বিভিন্ন বিট নির্দিষ্ট সময়ে বিভিন্ন সময়ে যুক্ত হয়েছে) উদ্দেশ্য), এবং আমি এটি কিছুটা পরিষ্কার করতে চাই। এছাড়াও, এটি সম্পূর্ণরূপে পরীক্ষা করা হয়নি (যথাযথ ইউনিট এবং ইন্টিগ্রেশন টেস্টিং ব্যতীত প্রচুর বিট যোগ করা হয়েছে), এবং এমন কিছু পরীক্ষা রয়েছে যা চালাতে বেশ সময় নেয় বা আসলে পাস হয় না ... (আহ-ওহ) - সুতরাং ম্যাভেন বিল্ড চক্রটিতে পরীক্ষাগুলি স্যুইচ অফ করা হয় (আবার, আহ-ওহ)।
আমি এই বৃহত প্রকল্পটিকে ছোট নির্দিষ্ট প্রকল্পগুলিতে পৃথক করার বিষয়ে ভাবছি, যেমন 'চূড়ান্ত' উপ-প্রকল্প (বা বেশ কয়েকটি উপ-প্রকল্প) বিভিন্ন উপ-প্রকল্পগুলির প্রয়োজন যা তা গ্রহণ করবে।
আমার চিন্তাভাবনাটি নিম্নরূপ:
- যদি আমি বড় প্রকল্পটিকে বিভিন্ন উপ-প্রকল্পে আলাদা করি, তবে এটি প্রতিটি প্রকল্পের দায়িত্ব কী তা তা পরিষ্কার করে দেয়।
- উপ-প্রকল্পগুলিতে বিভক্ত হয়ে আমি তারপরে প্রতিটি উপ-প্রকল্পের টেস্টিং স্বতন্ত্রভাবে পরিষ্কার করতে পারি এবং মাভেন বিল্ড চক্রের sub উপ-প্রকল্পের পরীক্ষাটি চালু করতে পারি।
এটি নির্মাণের সময়টিতে কী প্রভাব ফেলতে পারে সে সম্পর্কে আমি কিছুটা উদ্বিগ্ন।
- বৃহত প্রকল্পের উপর কোনও কাঠামো চাপিয়ে দেওয়া (অর্থাত্ ছোট ছোট ছোট ছোট ছোট প্রকল্পের মধ্যে) সংকলকটি কমিয়ে দেবে?
এছাড়াও, আইডিইগুলিতে এটির সম্পাদনার সময় কীভাবে প্রভাব ফেলতে পারে সে সম্পর্কে আমার কিছুটা উদ্বেগ রয়েছে (আমরা মূলত ইন্টেলিজ ব্যবহার করি)। ইন্টেলিজ প্রতিটি প্রকল্প নির্ভরশীল গাছের মাধ্যমে ঘুরে দেখবেন - যেমন সি যদি বি এর উপর নির্ভর করে এটি এ এর উপর নির্ভর করে এবং আমি এ পরিবর্তন করি তবে এটি বি তৈরির চেষ্টা করবে না যতক্ষণ না একটি সংকলন করে, ইত্যাদি। তাত্ক্ষণিকভাবে এটি সুবিধাজনক তবে আমি খুঁজে পেয়েছি যে - উদাহরণস্বরূপ, আমি এ এর একটি ইন্টারফেস পরিবর্তন করি যা বি এবং সি তে ব্যাপকভাবে ব্যবহৃত হয়, সেই পরিবর্তন থেকে সমস্ত ত্রুটিগুলি ঠিক করতে কিছুটা সময় লাগে ...
আরেকটি প্রশ্ন হ'ল ফ্যাক্টরি ক্লাস কীভাবে ব্যবহার করা যায়। প্রকল্পের কিছু দিক বাইরের জারের উপর নির্ভর করে। মাঝে মাঝে (কৃতজ্ঞতার সাথে প্রায়শই নয়) এগুলি আপডেট হয় এবং আমাদের স্থানান্তর করতে হয়। আমরা একটি কারখানার শ্রেণি ব্যবহার করে এটি পরিচালনা করি যা বাহ্যিক কোডের সঠিক সংস্করণগুলিতে নির্দেশ করে (যাতে আমাদের কোড বেস জুড়ে সমস্ত বাস্তবায়ন পরিবর্তন করতে হবে না)।
এই মুহুর্তে এটি বৃহত প্রকল্পের মধ্যে রয়েছে তবে আমি ভাবছি যে সাব-প্রকল্পগুলিতে স্যুইচ করে আমি নতুন বহিরাগত কোড প্রয়োগের জন্য একটি নতুন প্রকল্প বিকাশ করতে পারব, সাব-প্রকল্পটি পুরোপুরি কার্যকরী এবং পরীক্ষিত হয়েছে তা নিশ্চিত করতে এবং তারপরে ব্যবহারকারী প্রকল্পে নির্ভরতা / কারখানা শ্রেণীর স্যুইচ করুন। যাইহোক, বৃহত্তর প্রকল্প জুড়ে এটি ইন্টারফেসের বিস্তৃত ব্যবহার দ্বারা আরও জটিল হয়ে উঠেছে। উদাহরণ স্বরূপ
- উপ-প্রকল্প এ - এর ইন্টারফেস রয়েছে
- উপ-প্রকল্প বি - ইন্টারফেস এবং পুরানো বহিরাগত জারের জন্য A এর উপর নির্ভর করে
- উপ-প্রকল্প সি - বি (এবং এইভাবে এ এবং পুরাতন বাহ্যিক জার) এর উপর নির্ভর করে এবং এতে একটি ফ্যাক্টরি শ্রেণি রয়েছে যা বি এর ইন্টারফেসগুলির প্রয়োগগুলি ব্যবহার করে
আমার যদি বি এর বাহ্যিক জারটি পরিবর্তন করতে হয় তবে আমি এটি করতে পারি:
- B_ii উপ-প্রকল্প তৈরি করুন - আবার এ এর উপর নির্ভর করে এবং এখন নতুন বাহ্যিক জার
- একবার সম্পূর্ণরূপে কার্যকরী হয়ে গেলে, আমি সি এর নির্ভরতা বি_আইআইতে যুক্ত করতে এবং ইন্টারফেসগুলির নতুন বাস্তবায়নগুলি ব্যবহার করতে কারখানার শ্রেণি পরিবর্তন করতে পারি।
যখন এটি সমস্ত কাজ করছে, আমি তারপরে সি এর নির্ভরশীলতা বি এর উপর নির্ভরতা সরিয়ে ফেলতে পারি এবং যদি ইচ্ছা হয় তবে সাব-প্রকল্প বি সরিয়ে ফেলতে পারি
এটি কি এটি বোধগম্য উপায়?
সুতরাং, সাধারণভাবে, আমার প্রশ্নগুলি হ'ল:
- কারও কি বড় প্রকল্প ভাঙার অভিজ্ঞতা আছে? এমন কোনও টিপস / কৌশল আছে যা আপনি ভাগ করতে ইচ্ছুক?
- এটি আপনার বিকাশ এবং সময় তৈরিতে কী প্রভাব ফেলেছিল?
- এই জাতীয় প্রকল্পের ব্রেক আপের কাঠামোগত বিষয়ে আপনি কী পরামর্শ দিতে পারেন?