কেন কোনও উন্নয়ন দল জিদ করবে যে ভিজ্যুয়াল স্টুডিওতে একাধিক প্রকল্পের একক সমাধান ব্যবহার করা "আন্তঃনির্ভরতা জটিলতা বাড়ায়"?


26

আমি একটি বাহ্যিক দল পরিচালনা করতে সহায়তা করছি যারা বিদ্যমান কিছু পণ্যের নতুন সংস্করণ বিকাশ করতে শুরু করেছে। .তিহাসিকভাবে, এই দলটি সর্বদা ভিজ্যুয়াল স্টুডিওতে প্রায় 30 টি মডিউলগুলির একক সমাধানে একটি একক প্রকল্পের একটি মডেল ব্যবহার করেছে যা একত্রিতযোগ্য বিল্ড তৈরি করতে একত্রিত হয়।

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

আমি জোর দিয়ে বলছি এটি আজেবাজে কথা এবং ভাল বিকাশের ধরণগুলি এ জাতীয় কোনও সমস্যা এড়াতে পারে।

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

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


5
দলটি যদি বাহ্যিক হয় তবে কিছু পরিবর্তন করার চেষ্টা করা শক্ত হবে। সমস্যার দিকে মনোনিবেশ করার পরিবর্তে আপনি নিজের ধারণাটি চাপানোর চেষ্টা করছেন। সমস্যাটি হ'ল "তারা সর্বদা আমাদেরকে তারিখের কোডে প্রেরণ করে না", তারা কি তাদের পছন্দমতো এই সমস্যাটি সমাধান করে? তারা কি আপনাকে সংস্করণ নিয়ন্ত্রণ সিস্টেমে অ্যাক্সেস দিতে পারে না?
আরমালকে

9
বকাঝকা লাগছে। এক বা ত্রিশটি সমাধানে প্রকল্পগুলি আর একে অপরের উপর নির্ভর করবে না। পৃথক সমাধানগুলিতে কোড রাখার কারণ হ'ল ফলশ্রয়ী গ্রন্থাগারটি একাধিক, পৃথক পৃথক স্থাপনযোগ্য বিল্ড দ্বারা ব্যবহৃত হয়। এটি আপনার পক্ষে কেসের মতো শোনাচ্ছে না।
ডেভিড আরনো

3
দেখে মনে হচ্ছে আপনার অনেকগুলি প্রযুক্তিগত সমস্যা রয়েছে যা আপনার চুক্তিতে পরিবর্তন এবং কাজের বিবৃতি দিয়ে সবচেয়ে ভাল সমাধান করা হয়েছে।
রস প্যাটারসন

9
একটি একক সমাধান তৈরি করার অর্থ এই নয় যে তাদের পৃথক সমাধানগুলি ছেড়ে দিতে হবে, কারণ একাধিক সমাধানে কোনও প্রকল্প থাকতে পারে।
এরিক tদ

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

উত্তর:


54

তাদের প্রকল্পগুলি কীভাবে গঠন করা যায় সে সম্পর্কে আপনাকে তাদের বলার দরকার নেই। পরিবর্তে, এটি একটি শক্ত প্রয়োজনীয়তা তৈরি করুন যে কোনও ত্রুটি না পেয়ে আপনি একটি একক স্ক্রিপ্ট চালিয়ে উত্স থেকে সিস্টেমটি তৈরি করতে পারেন। যদি সেই স্ক্রিপ্টগুলি ভিজ্যুয়াল স্টুডিও বা এমসবিল্ড বা অন্য কোনও সরঞ্জাম চালায় এবং যদি সেগুলি একবার বলা হয় তবে 50 বা 100 বার কোনও ব্যাপার নয়।

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

"সবকিছু যদি একটি একক সমাধানের ফাইলে রাখা হয় তখন মডিউলগুলির মধ্যে আন্তঃনির্ভরতা বাড়ানো" এর জবাব হিসাবে - এটি প্রমাণযোগ্য বোকামি , যেহেতু একটি সমাধানে প্রকল্পগুলি যুক্ত করা প্রকল্পগুলির মধ্যে কোনও নির্ভরতা পরিবর্তন করে না, তাই নির্ভরতাগুলি একটি প্রকল্পের ফলাফল are ফাইলটিকে অন্য উল্লেখ করে, যা সম্পূর্ণরূপে স্বতন্ত্র যে সমাধান থেকে কোন প্রকল্প ফাইলের উল্লেখ হয়। কোনও দলই দুজনকে রাখতে বাধা দেয় না - একক সমাধান যা সমস্ত প্রকল্পগুলিকে রেফারেন্স করে এবং পৃথক সমাধান প্রতিটি প্রত্যেকে কেবল একটি প্রকল্পের জন্য উল্লেখ করে।

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


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

কেবল যোগ করতে চেয়েছিলেন, "দ্য জোয়েল টেস্ট" স্টাফটি দুর্দান্ত এবং আমি ভাল চেহারা দেওয়ার পরামর্শ দিই। অনেক ধন্যবাদ!
DrMistry

3

এটি সংকলিত সমাবেশগুলি পুনরায় ব্যবহৃত হয় তার উপর নির্ভর করবে। যদি অ্যাসেমব্লির পুনরায় ব্যবহার না হয়, তবে "মডিউলগুলি" আলাদা রাখার কোনও আসল কারণ নেই। আসলে আমার অভিজ্ঞতায় এটি আরও একটি বাধা।

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

একাধিক প্রকল্প তৈরির পরেও প্রতিটি পণ্যকে তার নিজস্ব সমাধানে রাখা হয়। এইভাবে আমাদের কেবলমাত্র সমস্ত বিকাশিত পণ্যগুলিতে এর ভাগ করা কোডটি আপ টু ডেট রাখার জন্য লাইব্রেরির সমাধানটি তৈরি করতে হবে।


বিভাজিত প্রকল্পগুলির কোনওটিই অন্য কোথাও ব্যবহৃত হয় না, এটি হতাশার বিষয়। এগুলি সবই এই একক পণ্যটিতে ব্যবহৃত হয় এবং অন্য কোথাও হয় না!
ডাঃমিস্ট্রি

1

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

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

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

সুতরাং মূলটিতে কয়েকটি বিধ্বংসী টানুন অনুরোধগুলিতে আপনার দুর্দান্ত দৃষ্টি তৈরি করুন এবং পর্যালোচনায় নিজেকে রক্ষা করার জন্য প্রস্তুত করুন!


0

"একাধিক প্রকল্পের জন্য একটি একক সমাধান ব্যবহার করা আন্তঃনির্ভরতা জটিলতা বাড়িয়ে তোলে" - এই দৃ .় সত্যের একটি কর্নেল রয়েছে।

একটি একক সমাধান অন্য প্রকল্প থেকে কোনও প্রকল্পের রেফারেন্স তৈরি করে (যেমন কোনও প্রকল্পের কোড "পুনরায় ব্যবহার" যার দ্বারা "আন্তঃনির্ভরতা জটিলতার পরিচয় দেওয়া") সহজ হয়:

  • রেফারেন্সড অ্যাসেমব্লির জন্য আপনার পুরো ফাইল সিস্টেম / গ্লোবাল অ্যাসেম্বলি ক্যাশে ব্রাউজ করার পরিবর্তে, আপনি সমাধানটিতে প্রাসঙ্গিক প্রকল্পের একটি সীমিত সেট থেকে প্রকল্পটি নির্বাচন করতে পারেন; এবং,
  • উত্স কোড পড়ার সময় স্বেচ্ছাসেবী (বাইনারি) সমাবেশের চেয়ে সমাধানে রেফারেন্সড প্রজেক্টে ঝাঁপিয়ে পড়া আরও অনেক সহজ।

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

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